car-eye 开源团队平台开始是基于RTSP协议开发的。在做好了RTSP和RTMP推送和播放两端的库和demo之后,我们决定启动RTMP服务器的开发。nginx RTMP是俄罗斯战斗民族开发一个高性能的RTMP服务器,现在已经停止维护。他的强大在于Nginx的稳定性和高并发性。先将代码下载下来并开始编译:
https://github.com/Car-eye-team/Car-eye-RTMP-server/tree/master/source
全部东西都在里面了。
开始编译配置:
./configure --prefix=/opt/nginx --add-module=../nginx-rtmp-module --with-pcre=../pcre --with-openssl=../openssl --with-zlib=../zlib --with-http_stub_status_module
make
make install 产生文件。记得在编译之前需要安装GCC等工具
修改nginx.conf 支持RTMP。
rtmp_auto_push on;
rtmp { #支持RTMP服务
server {
listen 1935;
chunk_size 4096;
application vod { #支持点播功能
play /opt/video/vod;
}
application live {
live on; #支持直播功能
hls on; #支持hls功能。
wait_key on; #对视频切片进行保护,这样就不会产生马赛克了。
hls_path /opt/video/hls; #切片视频文件存放位置。
hls_fragment 10s; #每个视频切片的时长。
hls_playlist_length 60s; #总共可以回看的事件,这里设置的是1分钟。
hls_continuous on; #连续模式。
hls_cleanup on; #对多余的切片进行删除。
hls_nested on; #嵌套模式。
}
#record keyframes;#录制flv文件
#record_path /tmp;
#record_max_size 128K;
#record_interval 30s;
#record_suffix .flv;
}
}
将一些测试程序拷贝到nginx安装目录。并开始测试如,nginx 源码目录有一个test目录,拷贝到安装目录。并再次修改
nginx.conf
location /stat { #显示服务器rtmp链接状态
rtmp_stat all;
rtmp_stat_stylesheet stat.xsl;
}
location /stat.xsl { #显示服务器rtmp链接状态
root /opt/nginx/nginx-rtmp-module-1.2.1;
}
location /live { #支持hls功能
types {
application/vnd.apple.mpegurl m3u8;
video/mp2t ts;
}
alias /opt/video/hls;
expires -1;
add_header Cache-Control no-cache;
}
location /rtmp-publisher {
root /opt/nginx/nginx-rtmp-module-1.2.1/test;
}
location / {
root /opt/nginx/nginx-rtmp-module-1.2.1/test/www;
}
重新加载配置文件 sudo ./sbin/nginx -s reload
直播测试使用obs推流 rtmp://192.168.12.178/live/livestream hls请求 http://192.168.12.178/live/livestream/index.m3u8 vlc请求 rtmp://192.168.12.178/live/livestream 点播测试 rtmp://192.168.12.178/vod/test.flv 访问ngixn负载状态 http://192.168.12.178/nginx_status 访问rtmp链接状态 http://192.168.12.178/stat jwplayer 直播rtmp http://192.168.12.178/index.html rtmp 例子 香港卫视 rtmp://live.hkstv.hk.lxdns.com/live/hks 直播rtmp file: "rtmp://192.168.12.178/live/livestream" 点播rtmp file: "rtmp://192.168.12.178/vod/test.flv"
注意IP地址为自己的机器的IP
有关源码可以从car-eye 开源github上下载
https://github.com/Car-eye-team/Car-eye-RTMP-server car-eye 开源技术交流群:590411159