海康sdk协议接口_海康sadp搜索不到设备

海康sdk协议接口_海康sadp搜索不到设备海康威视RTSP转RTMP协议,使ChromeSafari上可以直接播放。

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定
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>
<video
    id="my-player"
    class="video-js"
    controls
    preload="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

Jetbrains全家桶1年46,售后保障稳定

必须要放在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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/234132.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • zencart 引用模板语句「建议收藏」

    zencart 引用模板语句「建议收藏」例如引用:head模板:&lt;?php/***preparesanddisplaysheaderoutput**/if(CUSTOMERS_APPROVAL_AUTHORIZATION==1&amp;&amp;CUSTOMERS_AUTHORIZATION_HEADER_OFF==’true…

  • java递归生成树形菜单_java递归无限层级树

    java递归生成树形菜单_java递归无限层级树java递归实现权限树(菜单树)省市县多级结构

  • 组合模式解决什么问题_组合模式实例

    组合模式解决什么问题_组合模式实例组合模式 Composite动机模式定义实例结构要点总结笔记动机在软件某些情况下,客户代码过多地依赖于对象容器复杂的内部实现结构,对象内部实现结构(而非抽象接口)地变化将引起客户代码地频繁变化.带来代码地维护性,扩展性等弊端如何将”客户代码与复杂地对象容器结构”解耦?让对象容器自己来实现自身地复杂结构,从而使得客户代码就像处理简单对象一样来处理复杂地对象容器模式定义将对象组合成树形结构以表示”整体-部分”地层次结构.Composite使得用户对单个对象和组合对象地使用具有一致性(稳定)实例树形

  • Mybatis的RowBounds分页「建议收藏」

    Mybatis的RowBounds分页「建议收藏」RowBounds分页不再使用SQL实现分页1.接口List<User>getUserByRowBounds();2.mapper.xml<selectid=”getUserByRowBounds”resultMap=”UserMap”> select*frommybatis.user</select>3.测试@TestpublicvoidgetUserByRowBounds(){ SqlSessionsqlSession=

  • 程序员15k什么水平_初级码农

    程序员15k什么水平_初级码农前言大家好啊,我是秃顶的码哥!又是一年一度的高校毕业季,不少计算机专业的大学生已经踏上了求职之路,码哥我也想起了那天夕阳西下的奔跑,那是我逝去的青春啊!还记得我们那批同学毕业时,一起憧憬自己拿到15k、20K薪资的情景,但实际上,我们中绝大大部分的同学工作好几年了,还只是个拿几千工资的低级码农。现在码哥作为一枚已经秃顶的互联网行业老油条,下面就和大家分享一下如何避免成为低级码农的个人经验吧!以下几点如果你都能做到,月薪20k其实并不难哦!第一、多看计算机相关的书籍。读书一直是世界上性价比

  • WinHTTP Web Proxy Auto-Discovery Service 服务处于 停止 状态「建议收藏」

    WinHTTP Web Proxy Auto-Discovery Service 服务处于 停止 状态「建议收藏」WinHTTPWebProxyAuto-DiscoveryService服务处于停止状态还有,我的服务器没有使用WEB代理和防火墙客户端。但是有一天早上来发现全部电脑都无法上网。PINGISA都不通。重新启动后正常。我检查系统日志里面有3条关于WEB代理的日志:1。TheWinHTTPWebProxyAuto-DiscoveryServicehas…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号