博客
关于我
流媒体视频直播方案
阅读量:798 次
发布时间:2023-04-05

本文共 1474 字,大约阅读时间需要 4 分钟。

流媒体视频直播方案

在视频直播领域,有不同的商家提供各种的商业解决方案,包括软硬件设备,摄像机,编码器,流媒体服务器等。本文将介绍如何使用一系列免费工具,打造一套视频直播方案。

视频直播方案的组成,可以分为4部分:

1)前端采集编码设备:提供直播信号源的采集和编码压缩功能,并将信号推送到直播流媒体服务器上。

2)直播流媒体服务器:负责直播流的发布和转播分发功能。

3)WEB服务器:实现直播节目在终端上的展现。

4)终端设备:包括PC和移动终端。

本文的操作基于Mac系统,由于使用的是跨平台的工具,因此前端的数据采集和编码操作在其他平台上类似。

编码和协议

1)网络协议:主要有3种

a. RTSP(Real Time Streaming Protocol)是用来控制声音或影像的多媒体串流协议,由Real Networks和Netscape共同提出的。

b. RTMP(Real Time Messaging Protocol):实时消息传送协议是Adobe公司为Flash播放器和服务器之间音频、视频和数据传输开发的开放协议。

c. HLS(HTTP Live Streaming):是苹果公司实现的基于HTTP的流媒体传输协议。

2)视频编码: Mpeg4, H264等

3)音频编码: Mp3, AAC等

4)视频分辨率: 标清通常指的是640×480(或768×480);高清指的是1280×720;全高清指的是1920×1080;超高清3840×2160

前端数据采集和编码

编码器有很多选择,如商业版的envivio,免费版的ffmpeg。

我们使用ffmpeg(Mac系统上内置)从Mac笔记本摄像头捕捉视频,视频编码选择h264,音频编码选择mp3,且将生成的传输流ts发布到服务器。

在mac终端下,执行:./ffmpeg -f avfoundation -i "0" -vcodec libx264 -preset ultrafast -acodec libmp3lame -f flv rtmp://192.168.1.100:1935/myapp/stream

服务器地址:"rtmp://192.168.1.100:1935/myapp/stream",我们接下来进行搭建。

服务器

流媒体服务器也有诸多选择,如商业版的Wowza。

我们选择的是Nginx,它是优秀的免费Web服务器,通过扩展的nginx-rtmp模块,可以支持流媒体播放和管理。

基于它对RTMP协议的良好支持,因此本文以RTMP协议为例,配置服务器环境。

服务器搭建主要步骤:

(1)下载与安装

cd /usr/build

git clone git://github.com/arut/nginx-rtmp-module.git

wget tar xzf nginx-1.2.4.tar.gz

cd nginx-1.2.4

./configure --add-module=/usr/build/nginx-rtmp-module

make

make install

(2)配置实时直播:

要支持RTMP,需要在nginx.conf (PREFIX/conf/nginx.conf)中添加rtmp{} 部分,如下:

rtmp {

server {    listen 1935;    ping 30s;    notify_method get;    application myapp {        live on;    }}

}

转载地址:http://xarfk.baihongyu.com/

你可能感兴趣的文章