Centos7 将rtsp 转流成rmtp 流

更新yum源为阿里源 并安装python3 修改pip 的源地址为 清华源

yum install wget -y && wget https://download.szhcloud.cn/shell/sysinstall.sh && bash sysinstall.sh

安装 ffmpeg (标准安装)

yum install wget -y && wget https://download.szhcloud.cn/shell/ffmpeg.sh && bash ffmpeg.sh

安装 nginx(标准安装  包含 rmtp 推流服务器拓展)

yum install wget -y && wget https://download.szhcloud.cn/shell/nginx.sh  && bash nginx.sh 

放行防火墙的 80,443,1935,3306,21 端口

yum install wget -y && wget https://download.szhcloud.cn/shell/firewall.sh && bash firewall.sh   安装 RMTP 基本服务 注意此过程较复杂 没有写成一键脚本 首先在 /www/website/ 目录下 新建视频串流文件目录 如 m3u8.test.iw3c.best
mkdir /www/website/m3u8.test.iw3c.best 

然后在 /www/conf/website/ 目录下 新建 m3u8.test.iw3c.best.conf

复制如下代码,注意修改 m3u8.test.iw3c.best 为自己的域名或服务器的地址信息

server
{
    listen 80;

    server_name m3u8.test.iw3c.best;
    index index.html index.htm default.htm default.html;
    root /www/website/m3u8.test.iw3c.best/;
    
  
    
    #ERROR-PAGE-START  错误页配置,可以注释、删除或修改
    error_page 404 /404.html;
    #error_page 502 /502.html;
    #ERROR-PAGE-END

    location / {
        add_header Cache-Control no-cache;
        #防止跨域问题
        add_header 'Access-Control-Allow-Origin' '*';
        add_header 'Access-Control-Allow-Credentials' 'true';
        add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
        add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
        autoindex on;
        autoindex_exact_size off;
        autoindex_localtime on;    
    } 
   
     location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
    {
        return 404;
    }
    
    #一键申请SSL证书验证目录相关设置
    location ~ \.well-known{
        allow all;
    }
    
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
        expires      30d;
        error_log off;
        access_log /dev/null;
    }
    
    location ~ .*\.(js|css)?$
    {
        expires      12h;
        error_log off;
        access_log /dev/null; 
    }
    access_log  /www/logs/m3u8.test.iw3c.best.log;
    error_log  /www/logs/m3u8.test.iw3c.best.error.log;
} 

接着 修改nginx 的主配置文件 /usr/local/nginx/conf/nginx.conf

在文件的最后加上下面的代码 ,注意修改 m3u8.test.iw3c.best 的位置


rtmp {
    server {
        listen 1935; 
        chunk_size 4000;
        application rtmplive {
            live on;
            record off;
            

            hls on;
            hls_path /www/website/m3u8.test.iw3c.best/;         #视频流hls切片文件目录(自己创建)
            hls_fragment 5s;                                    #hls单个切片时长,会影响延迟
            hls_playlist_length 30s;                            #hls总缓存时间,会影响延迟
 
            meta on;                                            #如果http-flv播放时首帧出现问题,可改为off
            
        }
    }
}

最后执行 systemctl reload nginx.service 重新加载nginx 的配置文件 PS:可以通过

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

检查nginx 的配置文件是否存在错误

执行 服务端转流的命令 注意:192_168_254_3 为自定义的服务端转流的流名称
rtsp 的流地址 格式为rtsp://用户名:密码@ip地址:端口号/编码名称/通道号/main/av_stream

ffmpeg -i "rtsp://admin:xhzcx1314@192.168.254.3:554/h264/ch1/main/av_stream" -vcodec copy -acodec copy -f flv "rtmp://127.0.0.1:1935/rtmplive/192_168_254_3"
点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注