目录
下载nginx及其依赖库
编译nginx
配置环境
配置PATH
配置rtmp
启动nginx
推流、拉流测试
一些可用的rtmp直播源
ffmpeg推流
拉流播放
相关命令
nginx有一些依赖库需要安装
PCRE
PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。nginx的http模块使用pcre来解析正则表达式
download:https://ftp.pcre.org/pub/pcre/
zlib
zlib库提供了很多种压缩和解压缩的方式,nginx使用zlib对http包的内容进行gzip
download:http://www.zlib.net
openssl
OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。
nginx不仅支持http协议,还支持https(即在ssl协议上传输http)
download: https://www.openssl.org/source/
下载nginx:http://nginx.org/en/download.html
下载nginx-rtmp-module: https://github.com/arut/nginx-rtmp-module
解压上面下载的代码库, 如下所示, 在编译nginx时需要指定依赖库的路径:
./configure --prefix=/usr/local/nginx --add-module=../nginx-rtmp-module-master --with-debug --with-pcre=../pcre-8.43 --with-zlib=../zlib-1.2.11 --with-openssl=../openssl-1.0.2s
make
make install
由于linux环境的不同, 在编译过程中也会爆出各种各样的错误,大多是因为依赖库不存在或版本不符合要求,遇到这种问题,需要安装相应的依赖库即可。
vim /etc/profile
export PATH=/usr/local/nginx/sbin:$PATH
vi /usr/local/nginx/conf/nginx.conf
在nginx.conf中添加如下内容
rtmp {
server {
listen 1935;
chunk_size 4000;
application live {
live on;
record off;
allow play all;
}
}
}
chunk_size: 指定音视频传输过程中每个传输块的大小
live: 为配置的应用名称, 我们可以配置多个应用。
live on:打开此应用
record off:关闭录制
allow play all:允许所有人发起请求
nginx -c /usr/local/nginx/conf/nginx.conf
其他命令:
nginx: 启动nginx服务, 与nginx -c nginx.conf效果相同
nginx -s stop: 强制退出, 内部使用kill命令强制杀死进程
./nginx -s quit: 温和退出, 待nginx进程处理任务完毕进行停止
./nginx -s reload:重新启动
验证:
出现以上画面代表nginx启动成功
湖南卫视,rtmp://58.200.131.2:1935/livetv/hunantv
香港财经,rtmp://202.69.69.180:443/webcast/bshdlive-pc
美国2,rtmp://media3.scctv.net/live/scctv_800
韩国GoodTV,rtmp://mobliestream.c3tv.com:554/live/goodtv.sdp
美国1,rtmp://ns8.indexforce.com/home/mystream
韩国朝鲜日报,rtmp://live.chosun.gscdn.com/live/tvchosun1.stream
美国中文电视,rtmp://media3.sinovision.net:1935/live/livestream
中国教育电视台1直播(rtmp://pub1.guoshi.com/live/newcetv1)[失效]
中国教育电视台3直播(rtmp://pub1.guoshi.com/live/newcetv3)[失效]
香港电视台直播(rtmp://live.hkstv.hk.lxdns.com/live/hks)
北广传媒移动电视直播(rtmp://www.bj-mobiletv.com:8000/live/live1)
中石化网络电视台直播(rtmp://wowza.sinopectv.cn:1935/live/sinopec)[暂时无法访问]
东莞电视台(rtmp://ftv.sun0769.com/dgrtv1/mp4:b1)
绍兴新闻综合(rtmp://www.scbtv.cn/live/new)
ffmpeg -i rtmp://58.200.131.2:1935/livetv/hunantv -c copy -f flv rtmp://localhost:1935/live/hunantv
1. ffplay播放:
ffplay rtmp://localhost:1935/live/hunantv
2. VLC播放
下载开源播放器VLC,配置如下:
3. 网络播放器播放
http://bbs.chinaffmpeg.com/1.swf
https://www.wowza.com/testplayers
1、拉流转推
ffmpeg -i 拉流地址 -acodec copy -vcodec copy -f flv 推流地址
2、将文件当作源推送到RTMP服务器
ffmpeg -re -i test.mp4 -c copy -f flv rtmp://server/live/streamName
参数解释
-r 以本地帧频读数据,主要用于模拟捕获设备。表示ffmpeg将按照帧率发送数据,不会按照最高的效率发送
3、将直播文件保存至本地
ffmpeg -i rtmp://server/live/streamName -c copy test.flv
4、合流
ffmpeg -i [rtmp://input1] -i [rtmp:// input2] -c:v copy -c:a copy -f flv [rtmp://output]
[rtmp://input1] 合流地址
[rtmp://input2] 合流地址2
[rtmp://output] 推流地址
注:切记一定要在流地址上加双引号