前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >监控摄像头RTSP协议对接腾讯云直播

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

原创
作者头像
tylerliu
发布2019-01-23 17:37:30
21.8K6
发布2019-01-23 17:37:30
举报
文章被收录于专栏:腾讯云迁云技术团队专栏

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方式安装即可。

代码语言:javascript
复制
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,需要通过源码编译形安装。

安装必须的组件

代码语言:javascript
复制
yum -y install openssl openssl-devel

下载nginx-rtmp-module源码

代码语言:javascript
复制
git clone https://github.com/arut/nginx-rtmp-module.git

下载nignx源码

代码语言:javascript
复制
wget http://nginx.org/download/nginx-1.14.2.tar.gz
tar zxvf nginx-1.14.2.tar.gz 
cd nginx-1.14.2/

编译和安装

代码语言:javascript
复制
./configure --prefix=/usr/local/nginx  --add-module=../nginx-rtmp-module  --with-http_ssl_module 
make 
make install 

4.对接测试配置

1)开通腾讯云直播

开通服务

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

推流后控制台进行观看

2)nginx-rtmp配置

创建nginx本地文件存放目录

代码语言:javascript
复制
mkdir -p /mnt/share/html/hls

rtmp配置

代码语言:javascript
复制
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;
    }
  }
} 

检查配置是否正确

代码语言:javascript
复制
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf 

启动nginx

代码语言:javascript
复制
/usr/local/nginx/sbin/nginx   

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

代码语言:javascript
复制
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf -s reload

3) ffmpeg拉摄像头的视频流

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

代码语言:javascript
复制
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, 如果成功,可以看到:

代码语言:javascript
复制
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

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 2. 实现方案
  • 3.软件安装
    • 1) ffmpeg安装
      • 2) nginx-rtmp安装和配置
      • 4.对接测试配置
        • 1)开通腾讯云直播
          • 2)nginx-rtmp配置
            • 3) ffmpeg拉摄像头的视频流
              • 3) 检测
              • 5.参考
              相关产品与服务
              云直播
              云直播(Cloud Streaming Services,CSS)为您提供极速、稳定、专业的云端直播处理服务,根据业务的不同直播场景需求,云直播提供了标准直播、快直播、云导播台三种服务,分别针对大规模实时观看、超低延时直播、便捷云端导播的场景,配合腾讯云视立方·直播 SDK,为您提供一站式的音视频直播解决方案。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档