专栏首页腾讯云售中交付解决方案专栏监控摄像头RTSP协议对接腾讯云直播
原创

监控摄像头RTSP协议对接腾讯云直播

1. 需求与目标

传统监控高清摄像机ip camera(如: 海康,大华等)遵循监控行业标准,一般只支持rtsp传输协议,互联网直播通用标准为rtmp协议,将这些摄像机视频流引入互联网直播是一个较共性需求,如:咖啡连锁企业通过摄像头将咖啡制作过程直播出去;监控景点直播;户外楼宇直播等。

典型摄像头(海康威视ds-2cd1221-i3网络监控摄像头)配置:

自主搭建完整可商用的互联网直播平台研发和维护成本巨大,我们一般采用成熟的直播云平台,如:腾讯云直播平台。对接腾讯云直播需要解决的问题:

1、 摄像头的RTSP协议数据采集。

2、 采集到的数据本地可以处理,并可通过RTMP协议推送流到腾讯云进行互联网直播。

2. 实现方案

以上面海康摄像头为例:

1)通过rtsp协议获取到摄像头的直播数据,形如: rtsp://admin:12345@192.168.1.5:554/h264/ch1/main/av_stream

2)通过ffmpeg从摄像头拉取rtsp视频数据流实现采集,并转发到nginx-rtmp

3) nginx-rtmp转推rtmp流到腾讯云实现互联网直播

3.软件安装

软件环境信息: - 操作系统:Centos 7.2 - ffmpeg版本:2.8.15 - nginx版本:1.14.2

1) ffmpeg安装

采用yum方式安装即可。

sudo yum localinstall --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpm https://download1.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-7.noarch.rpm
yum -y install ffmpeg

2) nginx-rtmp安装和配置

nginx默认不带nginx-rtmp-module,需要通过源码编译形安装。

安装必须的组件

yum -y install openssl openssl-devel

下载nginx-rtmp-module源码

git clone https://github.com/arut/nginx-rtmp-module.git

下载nignx源码

wget http://nginx.org/download/nginx-1.14.2.tar.gz
tar zxvf nginx-1.14.2.tar.gz 
cd nginx-1.14.2/

编译和安装

./configure --prefix=/usr/local/nginx  --add-module=../nginx-rtmp-module  --with-http_ssl_module 
make 
make install 

4.对接测试配置

1)开通腾讯云直播

开通服务

进入控制台,选择接入码接入方式,生产推流地址

推流后控制台进行观看

2)nginx-rtmp配置

创建nginx本地文件存放目录

mkdir -p /mnt/share/html/hls

rtmp配置

vi /usr/local/nginx/conf/nginx.conf
#文件末尾追加
rtmp {

server {

    listen 1935;  #监听的端口  

    chunk_size 4000;

    # rtmp推流请求路径 
    application hls {   
        live on;
        hls on;
        # 本地保存hlv格式文件
        hls_path /mnt/share/html/hls; 
        hls_fragment 10s;
        # 转推腾讯云
        push rtmp://2490.livepush.myqcloud.com/live/rtsptest?bizid=2490&txSecret=d39774d3ce88ad218fe54eb84783a5af&txTime=5C1281FF;
    }
  }
} 

检查配置是否正确

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

启动nginx

/usr/local/nginx/sbin/nginx   

(可选)再次修改配置后重启nginx

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

3) ffmpeg拉摄像头的视频流

通过ffmpeg从远端摄像头拉取rtsp流,转换成flv格式,推到本地nginx-rtmp

ffmpeg -i "rtsp://admin:12345@192.168.1.5:554/h264/ch1/main/av_stream "  -f flv -y  "rtmp://127.0.0.1:1935/hls"

3) 检测

按照上面配置后,可以进行两步检测。

1)检测ffmpeg从摄像头拉流到nginx-rtmp, 如果成功,可以看到:

cd /mnt/share/html/hls
#注:该目录每10秒生产一个HLV格式的ts文件
[root@VM_16_62_centos hls]# ll
total 63840
-rw-r--r-- 1 nobody nobody 10797592 Dec 13 17:57 mystream-0.ts
-rw-r--r-- 1 nobody nobody 10873544 Dec 13 17:57 mystream-1.ts
-rw-r--r-- 1 nobody nobody 10555072 Dec 13 17:57 mystream-2.ts
-rw-r--r-- 1 nobody nobody 10884260 Dec 13 17:58 mystream-3.ts
-rw-r--r-- 1 nobody nobody 10913212 Dec 13 17:58 mystream-4.ts
-rw-r--r-- 1 nobody nobody 10848916 Dec 13 17:58 mystream-5.ts
-rw-r--r-- 1 nobody nobody   378256 Dec 13 17:58 mystream-6.ts
-rw-r--r-- 1 nobody nobody  268 Dec 13 17:58 mystream.m3u8
[root@VM_16_62_centos hls]# 

** 2)检测是否推送到腾讯云,如果推送成功,控制可以看到“直播状态”为直播中。**

5.参考

  1. ffmpeg安装:https://rpmfusion.org/Configuration
  2. nginx安装:http://www.nginx.cn/install
  3. nginx-rtmp-module配置:https://github.com/arut/nginx-rtmp-module
  4. 腾讯云直播:https://cloud.tencent.com/document/product/267

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • RPM包制作方法

    最近有同学问我制作RPM包相关的问题,我发现我以前做过,但是忘记记录了,现在记录一下:

    用户3765803
  • 实践 | Kubernetes守护进程集之DaemonSet

    启动滚动更新,必须设置DaemonSet的.spec.updateStrategy.type属性为RollingUpdate,也可以在.spec中设置.spec...

    云原生生态圈
  • Nginx超详细的常用操作命令

    还可以查看对应的pid文件,可以看到对应的master进程的进程编号,表示服务启动了

    用户4919348
  • 工具系列 | 视频监控RTSP转HLS解决方案

    由于公司业务,需要实现基于WEB访问监控摄像头实时流的预览,经过各种百度,补充了不少相关知识,了解到了很多大神的实现方法,也因为很多过时的帖子,而踩了不少的坑。

    Tinywan
  • Nginx 2.nginx.conf配置,负载均衡,使用ssl实现https

    写在前面:你需要先安装好nginx,你可以先看看https://cloud.tencent.com/developer/article/1623611

    大大刺猬
  • mac上nginx+jetty负载均衡部署一览

    曾经在windows上进行编程,因为linux系统在服务器端应用比较广泛,专门学了shell脚本,在笔记本上装过一个deepin(linux发行版)进行开发,d...

    java达人
  • supervisor简单使用

    Supervisor 是用Python开发的一套通用的进程管理程序,是Linux/Unix系统下的一个进程管理工具。可以很方便的监听、启动、停止、重启一个或多个...

    dogfei
  • 搭建rtmp直播流服务之1:使用nginx搭建rtmp直播流服务器(nginx-rtmp模块的安装以及rtmp直播流配置)

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    eguid
  • windows下nginx的安装使用及解决80端口被占用nginx不能启动的问

    这篇文章主要给大家介绍了关于windows下nginx的安装使用,以及如何解决80端口被占用导致nginx不能启动的问题,文中介绍的非常详细,对大家具有一定的参...

    习惯说一说
  • nginx配置ssl证书实现https

    SSL证书是数字证书的一种,类似于驾驶证、护照和营业执照的电子副本。因为配置在服务器上,也称为SSL服务器证书。SSL 证书就是遵守 SSL协议,由受信任的数字...

    掌上编程

扫码关注云+社区

领取腾讯云代金券