car-eye server 开发之 Nginx RTMP server

姜磊
2023-12-01


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



 类似资料: