海康IPC+NVR+EasyDarwin+EasyPusher+VLC实现Web实时播放RTSP视频

用ffmpeg+nginx实现web播放rtsp视频,原理是将rtsp转码成rtmp格式,再用flash插件播放

由于项目硬件条件有限,转码基本就不考虑了,因此只能直接播放获取到的rtsp流,并且整个网络环境只能有一个外网IP,因此思路就是能否通过NVR去找同一网段内的IPC,如何搭建NVR和IPC的环境这里就不作介绍,必须保证NVR可以看到网段内各摄像头,以及关闭平台接入功能(这个是重点,我就一直卡在这里很久,具体原因未知,希望有懂的大神能指教)

通过NVR查找IPC地址如下:

rtsp://admin:12345@192.168.1.101/h264/ch33/main/av_stream

这个IP地址是NVR的(我的NVR是旧版的,所以访问地址也只能有旧的地址),格式和直接访问IPC没什么不同,需要注意的是在旧版NVR中,ch33是IP通道的第一个通道,我们在NVR的通道设置中是可以设置IPC的通道编号的

一、准备

1.EasyDarwin

下载地址:http://pan.baidu.com/s/1sluDEPn(下载里面的.rar文件包即可,另一个是linux的)

2.EasyPusher

下载地址:https://codeload.github.com/EasyDarwin/EasyPusher/zip/master

3.VLC

下载地址:http://sw.bos.baidu.com/sw-search-sp/software/c2904cc7121e0/vlc_2.2.4.0.exe

二、启动EasyDarwin服务

EasyDarwin服务是一个转发服务,可接受RTSP源并将其转发到指定地址

将下载到的rar文件解压,进入文件夹后进入EasyDarwin文件夹

1)配置EasyDarwin

进入解压后的文件夹-->EasyDarwin文件夹-->打开easydarwin.xml文件,这是EasyDarwin的配置文件,我们主要进来配置EasyDarwin的端口:

ctrl+f找到如图所示节点,并配置两个端口(确保两个端口未被占用,查看方法cmd:netstat -a)

修改后保存文件即可

2)双击EasyDarwin文件夹中的start.bat,出现如下界面,说明EasyDarwin服务启动成功

这时,EasyDarwin就可接受RTSP源,并转发出去,那么下一步就是将源推送到EasyDarwin服务了

二、使用EasyPusher推送RTSP源

搭建好EasyDarwin,这一步就将RTSP源推送到EasyDarwin,我们使用EasyPusher进行推送

下载EasyPusher源码后,使用vs2010打开其中的EasyPusher_RTSP,编译后,找到EasyPusher_RTSP\Debug\EasyPusher_RTSP.exe这个文件

这个文件就是一个推送RTSP源的工具,我们要做的就是在自己的项目中用代码打开这个文件并传入参数,实现RTSP源的推送(我只是个会C#的小白)

使用c#打开.exe文件很容易,使用ProcessStartInfo类,在System.Diagnostics命名空间下,我们需要注意的是arguments参数的填写:

-d:接受推送的服务IP地址,即我们在上一步中启动EasyDarwin服务的电脑的IP地址

-p:接受推送的服务端口,即我们在上一步中配置的EasyDarwin的rtsp_port的端口号

-n:流名称,我们可为每一个rtsp流起一个唯一的名称,这个随意取

-u:rtsp流源,即我们通过NVR访问IPC的rtsp协议地址  rtsp://admin:12345@192.168.1.101/h264/ch33/main/av_stream

执行以上代码,我们可看到如下界面启动

到这一步,说明我们推送的流已经成功到达EasyDarwin,我们可以通过访问EasyDarwin访问到IPC的rtsp流,访问地址就是rtsp://easydarwin服务IP:easydarwin服务端口/流名称,如rtsp://192.168.15.28:554/ipc1,将此地址放到vlc中播放,测试是否成功

到此,使用EasyDarwin系列工具搭建rtsp视频直播完成

注意:如果同时有多个rtsp源需要转发,可打开多次EasyPusher,也可自行修改EasyPusher_RTSP的源码实现,由于我不会c++,因此只能用前一种方式了,希望有c++大神能帮助修改源码,实现多源转发

音视频开发(16)---海康IPC+NVR+EasyDarwin+EasyPusher+VLC实现Web实时播放RTSP视频相关推荐

  1. 音视频开发(15)---IPC+NVR+路由器+ffmpeg+nginx实现网页/Android/IOS的HLS直播

    海康IPC+NVR+路由器+ffmpeg+nginx实现网页/Android/IOS的HLS直播 研究摄像头直播有一个月了,最终领导决定使用HLS协议进行摄像头实时预览,原因是HLS对移动端和Web端 ...

  2. 大华海康摄像头人家自己是怎么在web上播放视频的

    最近处理安防视频,怎么把摄像头视频在web上展示费了很大功夫,当然这一篇不是讲解我是怎么显示的,而是回答当时领导问我的一个问题,人家大华自己是怎么显示的? 我们知道大华海康大部分摄像头只对外提供rts ...

  3. 大华、海康SDK对接,使用javacv+流媒体服务实现实时播放和回放

    最近需要对接大华和海康摄像头,用SDK的方式,实现登录.OSD设置.预览.回放等功能,其他的功能都还好,实时预览和回放,里面涉及的东西太多了,对于刚接触摄像头开发相关的小伙伴来说,简直要崩溃,而且这方 ...

  4. html页面上使用vlc,【JSJQuery】使用VLC在html中播放rtsp视频

    本文系统: windows10 64位 本文浏览器: IE11 本文 VLC 版本: 使用 vlc-2.2.8-win32.exe 版本 下载 使用说明: 使用 vlc-2.2.8-win64.exe ...

  5. 海康设备NVR、IPC取rtsp流格式

    ★目前海康录像机.网络摄像机,网络球机的RTSP单播取流格式如下(车载录像机不支持RTSP取流): rtsp://用户名:密码@IP:554/Streaming/Channels/101 →录像机示例 ...

  6. Python Gstreamer播放rtsp视频(含音频)(海康IPCAM)

    Python Gstreamer播放rtsp视频(海康IPCAM) 播放思路详见博客:Python Gstreamer播放rtsp视频流(海康IPCAM) 元件连接图解:   这里开始想使用tee分流 ...

  7. 基于ffmpeg+SDL 实时播放摄像头视频

    基于ffmpeg+SDL 实时播放摄像头视频 基本流程 udp接收rtp数据流接收一帧数据后,转换为NAL单元送去解码 (这里特别说明一下,我本次用的接口是支持从连续数据流中自动分割出一个个NAL的, ...

  8. 浏览器播放rtsp视频,基于nodeJs

    浏览器播放rtsp视频,基于nodeJs 1:安装ffmpeg,并且配置环境变量. 下载地址:http://ffmpeg.zeranoe.com/builds/ 或者: 百度云链接:https://p ...

  9. VLC插件在浏览器下(IE11)实现播放rtsp视频直播流

    VLC插件 最近项目用到需要在浏览器上播放视频流,尝试了很多种方式去解决,包括使用ffmpeg转码成rtmp播放,websocket结合webrtc等方式,但是效果都不是很好,而且存在一定的丢包和搭设 ...

最新文章

  1. 面试官:关于Spring就问这13个
  2. python 客户端应用程序_创建python Web服务和C#客户端应用程序的最佳方法 - c#
  3. gitlab服务器邮箱配置
  4. ajax(jquery)前后台传数组(Springmvc后台)
  5. 笔记本电脑没有鼠标怎么拖动_适合办公鼠标要如何选择?除了便携更需要这些...
  6. python基础应用_【复习】mysql+python基础应用(20190815)
  7. python 发起HTTP请求
  8. .NET6之MiniAPI(七):中间件
  9. python3基础3--数据类型--数据运算--表达式if -else-while-for
  10. IDEA的常用配置一键导入及优化内存
  11. 关于技术问题的请教和解决步骤
  12. pythonlog数组_Numpy掩码式数组详解
  13. 考研倒计时一幕刷屏!网友:这一定是最接近梦想的人!
  14. eclipse的代码突然变成红色块或绿色块
  15. 湿敏电阻CM-R / HR202应用 原理图 IO输出交流 AD采样
  16. 基于Linux通用GPIO接口的操作函数
  17. win10打开计算机代码,win10打开应用提示0xe06d7363错误代码
  18. 美眉都是可爱的…… (美图)
  19. .Bear勒索病毒如何删除它 .Bear后缀文件如何恢复(Dharma家族)
  20. 用遗传算法求解TSP问题

热门文章

  1. 【STM32】 定时器---正交解码编码器模式详解
  2. php unset数组,php unset 数组不管用
  3. 【MyBatis-Plus】第一章 快速入门
  4. 一次性计划任务at与周期性计划任务crontab
  5. 用EnumMap代替序数索引
  6. A8下超级终端调试问题
  7. Android AES加密算法及事实上现
  8. 笔记:J2EE核心模式(待补充)
  9. CoffeeScript 学习笔记
  10. 英语阅读测试,很神奇吧~