借助腾讯云公网推流拉流,ubuntu下ffmpeg实现视频直播

自定义实现如下场景:

无人机A搭载高清相机巡查,将视频实时传送到云端(腾讯云)B1,地面工作C从云端B1获取视视频并实时处理,将目标检测出来做好标记(打上框),将处理后的视频流推送到云端B2,客户从B2拉流观看处理后的结果。

Step1.首先准备无人机(大疆精灵),腾讯云两套对应推流和拉流地址:T1(推流1)和 L1(拉流1),T2(推流2)和L2(拉流2)。

Step2.在无人机中设置推流地址T1,用L1测试成功与否。

step3.地面linux服务器C要从L1拉流获取数据,逐帧处理或抽帧处理,处理完用fmpeg推送到T2。展开来说:

      1>python 中调用opencv读取rtmp视频流

        cap = cv2.VideoCapture(rtmp_url)

     2>使用nginx推流服务器,在配置文件中设置推流地址T2

      vim /usr/local/nginx/conf/nginx.conf 

user  thsw2; #换成服务器主机名
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}
rtmp
{
    server
    {
        listen 1935;
        chunk_size 4096;
        application live
        {
            live on;
            # 本地保存live格式文件,也可以注释掉,不保存视屏
            recorder rec1{
                record all;
                record_unique on;
                record_path /home/XXXX/data/video_live_bak;
                record_suffix -%Y-%m-%d-%H_%M_%S.flv;
            }
            # 转推腾讯云T2
            push rtmp://demopush.yunhengzhizao.cn/live/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX;

        }
    }
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       8081;
        location /stat{
                rtmp_stat all;
                rtmp_stat_stylesheet stat.xsl;
        }
        location /stat.xsl{
               root /home/XX/module/nginx-rtmp-module-master;#自己的地址
        }
    }

    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
   
}

      step4:采用python 调用ffmepg推流   

command=['ffmpeg',
                '-y',
                '-f', 'rawvideo',
                '-vcodec','rawvideo',
                '-pix_fmt', 'bgr24',
                '-s', "{}x{}".format(OutVideoW,OutVideoH),# 图片分辨率

                '-r', str(OutVideoFps),# 视频帧率
                '-i', '-',
                #'-c:v', 'libx264',
                '-pix_fmt', 'yuv420p',
                #'-preset', 'ultrafast',
                '-f', 'flv',
                rtmpUrl]

     这一步可以参考网上ffmepg推流方法。

step6.在拉流地址L2上获取视频,约有10+秒的延时,待解决。

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值