热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

海康IPC+NVR+EasyDarwin+EasyPusher+VLC实现Web实时播放RTSP视频 用ffmpeg+nginx实现web播放rtsp视频,原理是将rtsp转码成r

海康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:[email protected]/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)

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

修改后保存文件即可

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

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

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

 

二、使用EasyPusher推送RTSP源

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

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

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

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

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

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

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

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

-u:rtsp流源,即我们通过NVR访问IPC的rtsp协议地址  rtsp://admin:[email protected]/h264/ch33/main/av_stream

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

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

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

 

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

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


推荐阅读
  • 秒建一个后台管理系统?用这5个开源免费的Java项目就够了
    秒建一个后台管理系统?用这5个开源免费的Java项目就够了 ... [详细]
  • 如何将TS文件转换为M3U8直播流:HLS与M3U8格式详解
    在视频传输领域,MP4虽然常见,但在直播场景中直接使用MP4格式存在诸多问题。例如,MP4文件的头部信息(如ftyp、moov)较大,导致初始加载时间较长,影响用户体验。相比之下,HLS(HTTP Live Streaming)协议及其M3U8格式更具优势。HLS通过将视频切分成多个小片段,并生成一个M3U8播放列表文件,实现低延迟和高稳定性。本文详细介绍了如何将TS文件转换为M3U8直播流,包括技术原理和具体操作步骤,帮助读者更好地理解和应用这一技术。 ... [详细]
  • Spring 切面配置中的切点表达式详解
    本文介绍了如何在Spring框架中使用AspectJ风格的切面配置,详细解释了切点表达式的语法和常见示例,帮助开发者更好地理解和应用Spring AOP。 ... [详细]
  • 本文介绍了几种常用的图像相似度对比方法,包括直方图方法、图像模板匹配、PSNR峰值信噪比、SSIM结构相似性和感知哈希算法。每种方法都有其优缺点,适用于不同的应用场景。 ... [详细]
  • 最详尽的4K技术科普
    什么是4K?4K是一个分辨率的范畴,即40962160的像素分辨率,一般用于专业设备居多,目前家庭用的设备,如 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • javascript分页类支持页码格式
    前端时间因为项目需要,要对一个产品下所有的附属图片进行分页显示,没考虑ajax一张张请求,所以干脆一次性全部把图片out,然 ... [详细]
  • 本文详细介绍了 InfluxDB、collectd 和 Grafana 的安装与配置流程。首先,按照启动顺序依次安装并配置 InfluxDB、collectd 和 Grafana。InfluxDB 作为时序数据库,用于存储时间序列数据;collectd 负责数据的采集与传输;Grafana 则用于数据的可视化展示。文中提供了 collectd 的官方文档链接,便于用户参考和进一步了解其配置选项。通过本指南,读者可以轻松搭建一个高效的数据监控系统。 ... [详细]
  • 如何使用 `org.apache.tomcat.websocket.server.WsServerContainer.findMapping()` 方法及其代码示例解析 ... [详细]
  • 在对WordPress Duplicator插件0.4.4版本的安全评估中,发现其存在跨站脚本(XSS)攻击漏洞。此漏洞可能被利用进行恶意操作,建议用户及时更新至最新版本以确保系统安全。测试方法仅限于安全研究和教学目的,使用时需自行承担风险。漏洞编号:HTB23162。 ... [详细]
  • Java Socket 关键参数详解与优化建议
    Java Socket 的 API 虽然被广泛使用,但其关键参数的用途却鲜为人知。本文详细解析了 Java Socket 中的重要参数,如 backlog 参数,它用于控制服务器等待连接请求的队列长度。此外,还探讨了其他参数如 SO_TIMEOUT、SO_REUSEADDR 等的配置方法及其对性能的影响,并提供了优化建议,帮助开发者提升网络通信的稳定性和效率。 ... [详细]
  • 使用YUM命令的实用示例与详解
    本文详细介绍了使用YUM命令的实用示例,包括如何自定义YUM仓库、创建和配置自定义的repo文件,以及通过YUM命令安装HTTPD软件包的具体步骤。此外,还提供了相关命令的详细解释和常见问题的解决方案,帮助用户更好地理解和使用YUM工具。 ... [详细]
  • 优化后的标题:深入探讨网关安全:将微服务升级为OAuth2资源服务器的最佳实践
    本文深入探讨了如何将微服务升级为OAuth2资源服务器,以订单服务为例,详细介绍了在POM文件中添加 `spring-cloud-starter-oauth2` 依赖,并配置Spring Security以实现对微服务的保护。通过这一过程,不仅增强了系统的安全性,还提高了资源访问的可控性和灵活性。文章还讨论了最佳实践,包括如何配置OAuth2客户端和资源服务器,以及如何处理常见的安全问题和错误。 ... [详细]
  • 本文详细介绍了在CentOS 6.5 64位系统上使用阿里云ECS服务器搭建LAMP环境的具体步骤。首先,通过PuTTY工具实现远程连接至服务器。接着,检查当前系统的磁盘空间使用情况,确保有足够的空间进行后续操作,可使用 `df` 命令进行查看。此外,文章还涵盖了安装和配置Apache、MySQL和PHP的相关步骤,以及常见问题的解决方法,帮助用户顺利完成LAMP环境的搭建。 ... [详细]
  • Python 程序转换为 EXE 文件:详细解析 .py 脚本打包成独立可执行文件的方法与技巧
    在开发了几个简单的爬虫 Python 程序后,我决定将其封装成独立的可执行文件以便于分发和使用。为了实现这一目标,首先需要解决的是如何将 Python 脚本转换为 EXE 文件。在这个过程中,我选择了 Qt 作为 GUI 框架,因为之前对此并不熟悉,希望通过这个项目进一步学习和掌握 Qt 的基本用法。本文将详细介绍从 .py 脚本到 EXE 文件的整个过程,包括所需工具、具体步骤以及常见问题的解决方案。 ... [详细]
author-avatar
手机用户2602886747
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有