- 直播协议介绍:RTMP、HLS、HDL(HTTP-FLV)、RTP
- 直播软件介绍及安装
- 播放本地视频、远程视频流、rtmp 直播、hls直播
- 采坑总结
- RTMP协议是Adobe的专利协议,需要浏览器安装FlashPlayer,底层基于TCP,基于RTMP的直播一般内容延迟在2~5秒
- HDL(HTTP-FLV)使用HTTP协议流式的传输媒体内容。相对于RTMP,HTTP更简单和广为人知,而且不担心被Adobe的专利绑架。内容延迟同样可以做到2~5秒,打开速度更快,因为HTTP本身没有复杂的状态交互。所以从延迟角度来看,HTTP-FLV要优于RTMP。
- HLS即Http Live Streaming,是由苹果提出基于HTTP的流媒体传输协议。HLS有一个非常大的优点:HTML5可以直接打开播放;这个意味着可以把一个直播链接通过微信等转发分享,不需要安装任何独立的APP,有浏览器即可,所以流行度很高HLS。则有5~7秒的内容延迟
- RTP协议,RTP和它们有一个重要的区别就是默认是使用UDP协议来传输数据,而RTMP和HTTP是基于TCP协议传输。选择RTP进行直播则可以做到1秒内的直播延迟。但就目前所了解,各大CDN厂商没有支持基于RTP直播的,所以目前国内主流还是RTMP或HTTP-FLV。
nginx 版本不在 1.3.14 - 1.5.0 之间
# cd to NGINX source directory & run this:
./configure --add-module=/path/to/nginx-rtmp-module
make
make install
nginx 版本在 1.3.14 - 1.5.0 之间,需要引入 http_ssl_module
# cd to NGINX source directory & run this:
./configure --add-module=/path/to/nginx-rtmp-module --with-http_ssl_module
make
make install
增加nginx 调试日志
#For building debug version of nginx add --with-debug
./configure --add-module=/path/to-nginx/rtmp-module --with-debug
make
make install
检测是否安装成功
sudo /usr/local/nginx/sbin/nginx -s reload
/usr/local/nginx/sbin/nginx -V
如下:
nginx version: nginx/1.12.1
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-18) (GCC)
built with OpenSSL 1.0.1e-fips 11 Feb 2013
TLS SNI support enabled
configure arguments: --add-module=/opt/app/nginx-rtmp-module-master --with-debug
则安装成功!
设置场景,选择来源
- 视频捕获设备,一般都是摄像头进行推流
- 显示器捕获,就是选择显示器进行推流
- 选择媒体源,一般就是选择本地视频文件,进行推流
通过二进制yum 安装[仅限于cent 6.5,其他版本请自行安装]
sudo rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el6/x86_64/nux-dextop-release-0-2.el6.nux.noarch.rpm
sudo yum install ffmpeg ffmpeg-devel -y
ffmpeg -re -i /home/buyf/live/record/2345-1536202257.flv -loop 1000 -vcodec libx264 -vprofile baseline -acodec aac -ar 44100 -strict -2 -ac 1 -f flv -s 1280x720 -q 10 rtmp://192.168.132.128:1935/localRTMP/local
VLC 进行播放视频流
VLC - 媒体-打开网络串流 ,写入串流地址
rtmp://192.168.132.128:1935/localVideo/123.mp4
VLC - 媒体-打开网络串流 ,写入串流地址
rtmp://192.168.132.128:1935/remoteRTMPStream
#OBS-流-自定义媒体服务器URL
URL: rtmp://192.168.132.128:1935/localRTMP
流名称: 2345
http 访问:http://192.168.132.128:9510/web/rtmp.html
#OBS-流-自定义媒体服务器URL
URL: rtmp://192.168.132.128:1935/hls
流名称: 2345
http 访问:http://192.168.132.128:9510/web/rtmp.html
- nginx 采用多个worker 进程,出现访问不稳定,增加rtmp_auto_push on; 将流推送到不同worker 进程