Title:海康NVR设备RTSP协议转RTMP协议
Date: 2017-10-17
Author: kagula

环境:
[1]海康NVR设备  型号为DS-7808N-E2/8P
[2]CentOS7 
[3]Chrome 61.0.3163.79
[4]Safari 5.1.7

内容概要
   海康NVR设备上的RTSP协议转RTMP协议,Chrome等浏览器上就能直接看海康威视视频。
本文分为三个部份:Nginx配置和安装,ffmpeg配置和安装,运行和测试。

内容
第一部份:Nginx的安装、配置和使用
[1-1]nginx-rtmp-module模块

为了增加对rtmp的支持,下载nginx-rtmp-module解压到/root/download/nginx-rtmp-module
配置和编译nginx的时候要用到。
[1-2]安装nginx的依赖
yum  -y install openssl openssl-devel
yum -y install pcre-devel
[1-3]下载nginx-1.10.3.tar.gz源码包并解压
进入到nginx解压路径后,使用下面的命令配置nginx及其module
 ./configure --prefix=/usr/local/nginx  --add-module=/root/download/nginx-rtmp-module  --with-http_ssl_module 
[1-4]编译并安装
make
make install
[1-5]配置nginx对rtmp的支持
vim /usr/local/nginx/conf/nginx.conf
加入下面的配置
rtmp {
  server {
    listen 1935;
    application hls {
      live on;
      hls on;
      hls_path /tmp/hls;
      hls_fragment 1s;
      #hls_playlist_length 3s;
    }
  }
}

live on; 开启实时
hls on; 开启hls
hls_path;           
          http://xxx/hls這個地址可以用來推流和拉流,其中xxx是你的ip地址或域名。
          它会被映射到/tmp/hls本地路径下。
          ts文件存放路径,使用绝对路径
hls_fragment 5s; 每个TS文件包含5秒的视频内容

[1-6]启动nginx
/usr/local/nginx/sbin/nginx
启动时可能会遇到端口占用的问题,如果之前nginx已经启动了,先把进程停止
nginx -s quit
如果nginx起来后,修改了配置文件
使用/usr/local/nginx/sbin/nginx -s reload重启nginx服务

[1-7]检查服务是否已经启动
netstat -ntlp
看到1935和80端口已经在侦听状态

第二部份:FFMPEG的安装、配置和使用
[2-1]下載

wget http://ffmpeg.org/releases/ffmpeg-3.4.tar.bz2
然後再解壓縮。

[2-2]安装依赖
yum install nasm

[2-3]安装&配置
配置
./configure --enable-shared --prefix=/usr/local/ffmpeg
make
可能需要几分钟
make install
現在ffmpeg已經被安裝到了/usr/local/ffmpeg路徑下。

添加动态库文件搜索路径
vim /etc/ld.so.conf
把/usr/local/ffmpeg/lib路径添加到ld.so.conf中的最後一行。
使用下面的命令让修改生效
ldconfig

[2-4]使用
使用前先验证rtsp源是否可以播放
可以使用EasyPlayer播放器验证视频源
rtsp://admin:nuoke123456@192.168.2.226:554/Streaming/Channels/101
EasyPlayer可以从下面网址下载
https://github.com/EasyDarwin/EasyPlayer/releases/tag/v2.0.17.0709

确定视频源没问题后使用下面的命令转码
./ffmpeg -f rtsp -rtsp_transport tcp -i rtsp://admin:nuoke123456@192.168.2.226:554/Streaming/Channels/101 -codec copy -f flv -an rtmp://192.168.109.129:1935/hls/test
-f rtsp 输入流是rtsp协议
-rtsp_transport tcp 输入流是tcp协议
-i rtsp://admin:nuoke123456@192.168.2.226:554/Streaming/Channels/101 指定输入流
-f flv 输出流为flv格式
-an rtmp://192.168.109.129:1935/hls/test 指定推送地址
如果推送成功的话/tmp/hls路径下会生成多个tls文件和test.m3u8文件。

第三部份:测试和运行
[1]可以用PotPlayer播放器测试RTMP数据源是否正确
[2]用Chrome、Safari浏览器测试RTMP数据源是否能正确播放

rtmp.html的清单

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link href="http://vjs.zencdn.net/5.19/video-js.min.css" rel="stylesheet">
<script src="http://vjs.zencdn.net/5.19/video.min.js"></script>
</head>
<body>
<videoid="my-player"class="video-js"controlspreload="auto"data-setup='{}'><source src='rtmp://192.168.109.129:1935/hls/test' type='rtmp/flv'/>  </p>
</video>
<script type="text/javascript">var options = {};var player = videojs('my-player', options, function onPlayerReady() {videojs.log('Your player is ready!');// In this context, `this` is the player that was created by Video.js.this.play();// How about an event listener?this.on('ended', function() {videojs.log('Awww...over so soon?!');});});</script>
</body>
</html

必须要放在Web服务器上才能正确运行,本地用chrome打开这个html文件是没用的。
我把它放在了/usr/local/nginx/html路径下,这是我Nginx的document root路径.
使用chrome访问 http://192.168.109.129/rtmp.html可以直接看到视频。

备注
[1]RTSP数据源可以适配到adobe的FMS、Wowza、800li media server。
[2]海康的莹石云,提供RTMP视频流服务!
[3]防火墻打開了1935 tcp端口,rtmp視頻還是不能播放,
可以用下面的命令暫停,
systemctl stop firewalld.service

参数资料
[1]最新海康摄像机、NVR、流媒体服务器、回放取流RTSP地址规则说明
http://blog.csdn.net/xiejiashu/article/details/71786187
[2]EasyDSS流媒体服务器出现no compatible source was found for this media问题的解决
http://blog.csdn.net/xiejiashu/article/details/72371149

扩展阅读
[1]Mac直播服务器Nginx配置对HLS的支持
http://www.cnblogs.com/jys509/p/5653720.html
[2]Ubuntu下使用Python-opencv获取海康威视RTSP码流教程
http://blog.csdn.net/hui3909/article/details/53435379

海康NVR设备RTSP协议转RTMP协议相关推荐

  1. 使用GB28181从海康NVR设备上获取实时视频

    本人现在已经不做音视频方向了,所以大家的一些疑问可能无法解答,相关资料基本都在下载链接中,希望可以帮助到大家. 正文: 最近在调研使用GB28181协议获取海康NVR设备上的实时视音频数据,真的是搞了 ...

  2. 海康NVR中INVITE请求一直返回 400 Bad Request

    最近对接海康NVR设备一直返回 400 Bad Request 如下: 首先我查询了via/from/to/subject/contact确认都没问题,然后测试总是出现下问题 INVITE sip:4 ...

  3. p6s与onvif_[海康NVR]关于NVR与ONVIF协议的问题

    1. 如果使用RTSP连接我司的设备网络串流的格式是什么? 答:使用第3方的播放器通过RTSP连接我司设备的URL格式可去公司网站下载 如果是通过公网需要将RTSP端口开放(默认是554),这个端口在 ...

  4. 海康nvr 使用28181协议配置说明

    以海康nvr为例,见下图 需要设置内容: 本地SIP端口,设备使用此端口访问服务器 SIP服务ID,服务器唯一识别符,用以区分服务器 SIP服务器地址,端口,设备连接的服务器ip和端口 SIP用户认证 ...

  5. LiveGBS国标流媒体平台-海康NVR摄像机自带物联网卡摄像头注册GB/T28181国标平台看不到设备的时候如何抓包及排查

    GB/T28181国标流媒体平台海康大华宇视华为等硬件NVR摄像机注册到LiveGBS国标平台看不到设备的时候如何抓包及排查 1.设备注册后查看不到 1.1.是否是自带物联网卡的摄像头 1.2.关闭萤 ...

  6. live555作为RTSP流媒体服务器RTSPServer时解决对接海康NVR时G711音频不能正常播放的问题

    live555作为NVR内置的流媒体服务器RTSPServer在对接海康NVR,视频正常,音频不能正常播放, 但VLC可以正常播放. 经过问题的分析,发现live555作为NVR流媒体服务器输出视频为 ...

  7. 视频融合平台EasyCVR各项数据正常,却无法用海康NVR接入是什么原因?

    EasyCVR视频融合云平台开放度高.兼容性强.可支持灵活拓展与第三方集成,目前已经成为安防市场主流的视频能力层服务平台.平台可支持多协议.多类型的设备接入,包括国标GB28181.RTSP/Onvi ...

  8. 国标服务器GBServerPlatform对接海康NVR的操作说明

    这一篇文章介绍QuickGBLink开发的国标服务器如何对接海康NVR(网络硬盘录像机),主要讲解相关的操作步骤. (GBT28181平台软件下载地址:https://github.com/Quick ...

  9. 海康大华RTSP转HLS直播

    海康RTSP地址: 老版本: rtsp://username:password@<ipaddress>/<videotype>/ch<number>/<str ...

最新文章

  1. Briefings in Bioinformatics:微生物基因组学和功能基因组学相关软件和数据库的研究进展
  2. c中gets函数使用可能导致缓冲区溢出
  3. 设计模式学习(六):重构与模式,推荐书籍(完)
  4. [JLOI 2012]树
  5. 三十一、R语言基本语法(上篇)
  6. Codeforces Round #529 (Div. 3) F. Make It Connected(最小生成树)
  7. android sdk build-tools_从零开始仿写一个抖音App——视频编辑SDK开发(一)
  8. 【HDU - 6186】CS Course(按位与,按位或,按位异或的区间统计,二进制拆位)
  9. 开发人员,请爱护你的身体
  10. Schedulerx2.0工作流支持数据传输
  11. Angular实现灵活的动态创建组件指令
  12. zynq开发系列4:EMIO连接按键控制MIO连接的灯
  13. 电力系统继电保护Matlab实验,电力系统继电保护原理及仿真
  14. 详细版【循环神经网络RNN】(邱锡鹏)
  15. appium的滑动操作总结
  16. android自动修音,唱吧自动一键修音软件-唱吧自动修音app8.8.6 安卓手机版下载_东坡手机下载...
  17. 天文竞赛怎么用计算机,师范生教学技能大赛!计算机设计大赛!主持礼仪风采大赛!天文台活动预告!民宿企划竞赛!舞蹈大赛!...
  18. nodeBB项目的目录结构简介(nodeBB系列三)
  19. uniapp微信授权+获取手机号+解密手机号(带图详解)
  20. python遍历循环和无限循环结构_Python --- 程序的循环结构

热门文章

  1. tf.gather tf.gather_nd 和 tf.batch_gather 使用方法
  2. 一路对标顶级产品,奇遇XR为何仍不见起色?
  3. 网红“Cat.1”的诞生: 芯片厂/模组厂/运营商为何集体“示爱”?
  4. Linux设备驱动程序设计(一)
  5. 正则抓取猫眼TOP100电影的海报
  6. 减法公式运算法则_减法的运算法则是什么
  7. 8万字政务云数据中心解决方案2022(word)
  8. 直销单轨制系统的优势和奖金制度介绍
  9. 微信小程序wx.request电脑端正常,手机端失败解决方法。
  10. Jmeter性能测试【应用场景、性能测试流程、搭建测试环境】