EzStreamSvr 更新至3.4.0.212, 现在可以支持大华的DVR了

这个清明节多请了两天假,就为了回老家戒烟。在老家上网又不大方便(因为老家正常一年到头也只有过年的时候才有人),闲着真的好无聊,又加上前阵子左思右想想出路,陷入第二个“大学时期”,结果睡眠不足,导致牙痛,牙痛又引发喉咙痛,头也痛,浑身无力,回家那天又开了3个钟头的车,后来在床上躺了几天,用老婆的话讲,就是当了几天“皇帝”(这皇帝真不好当)。

再后来就又捡起这个EzStreamSvr搞了起来。

由于来问这个EzStreamSvr怎么做的人更多的还是视频监控行业的人,而国内的视频监控行业设备基本上都还是大华、海康的设备为主,所以,就想让EzStreamSvr也可以支持大华、海康等的设备。

不过,问题是包括大华、海康在内的、国内的这些设备,跟国外的许多视频监控的设备完全不一样。国外的基本上所有的协议都是走标准的,如:视频走HTTP或RTSP+RTP协议,命令走HTTP协议;而国内的这些所谓的大厂家,全都是直接基于TCP/UDP搞一套私有协议, 搞的乱七八糟,完全没有什么兼容性和开放性可言,更有甚之,海康早期的设备(8000系列的DVR和6000系列的DVS连视频打包都搞了一套自己的东西)。

为了解决这个问题,我只有再重新将EzStreamSvr再单独增加了一个模块来完成接入,当然,与此同时,必然的是,我也只有用他们提供的SDK来完成这个接入。

到现在为止,终于完成了一个版本,但由于时间关系,只能支持大华系列的DVR和DVS,理论上讲可以支持大华所有系列的设备。现在这个版本先放上来,跟大家分享。

这样,EzStreamSvr已经可以支持三种模式的多媒体源:

1. 从服务器采集音视频,编码后进行分发、录像和实时浏览。
2. 从标准的RTSP/RTP/RTCP的流媒体源接入视频,并进行分发、录像和实时浏览。
3. 从诸如大华,未来也可以支持海康,等任何非标准的媒体源接入视频,并进行分发、录像和实时浏览。

与上述三种模式对应的命令分别为:

1. rtsp://127.0.0.1/live.sdp
2. rtsp://127.0.0.1/relay.sdp?url=rtsp://113.196.162.124:554/user=admin&password=&channel=1&stream=0.sdp?real_stream
3. rtsp://127.0.0.1/dvr.sdp?ip=222.220.17.22&port=37777&channel=1&user=admin&pass=admin&devicelib=DH

其中:
127.0.0.1 –> EzStreamSvr的IP地址。
live.sdp, relay.sdp和dvr.sdp –> 分别对应三种不同的视频源接入模式。
后面的参数 –> 接的是视频源的具体参数, 至于具体的每一个参数的意思,我想,你懂的,呵呵(不懂再来问我)。

注意事项:

考虑到安装包越来越大,如果把VC运行库等加进去,整个安装包会超过50M,所以,我暂时把这些依赖库从安装包里拿掉了。若您在安装后发现无法打开程序,请自己去下载安装VC运行库。下载地址:http://www.microsoft.com/downloads/zh-cn/details.aspx?familyid=9b2da534-3e03-4391-8a4d-074b9f2bc1bf

这个版本我还是做了两个包,一个的安装包,一个是绿色的直接解压缩后就可以用的。安装包比较大,有25M;绿色包小一点,但也有16M。两个版本没什么区别,安装包只是让人看上去专业一点,呵呵。为了节省我网站的流量,我建议下载绿色包。

产品主页:http://rg4.net/ezstreamsvr
安装包下载:http://rg4.net/p/ezstreamsvr/EzStreamSvr.7z
绿色包下载:http://rg4.net/p/ezstreamsvr/EzStreamSvr.green.7z
技术支持:service{a}rg4.net

欢迎下载使用,若您有任何问题,请不啬赐教,谢谢。

Author: Jacky Wei

I am a programmer, welcome to my blog: http://rg4.net.

11 thoughts on “EzStreamSvr 更新至3.4.0.212, 现在可以支持大华的DVR了”

  1. hi,您好,看了您的文章,受益匪浅,但,有个问题想咨询一下您,大华、海康之类的SDK提供的流均为其私有协议,转换为转准RTSP流的过程,能透漏点技术实现吗?

    我的想法是通过其回调函数,通过其播放库解析出YUV帧,然后重组为RTSP流,但这似乎太过麻烦,不知您实际中是如何做的~

    还有,您的EzStreamSvr ,转发大华海康的,我没有测试成功,不知如何操作的~~~

    如能得到您的回复,万分感谢。 sun#chengchenginfo

    1. Dear Sun,
      对于诸如大华海康之类的设备,如果是先解码再编码的话,这种解决方案在许多情况下都是不适用的,尤其是当你想把这个量撑大的话,更会是个大问题。
      而事实上,无论是大华还是海康,他们都有一套独立的拆帧SDK,利用该SDK即可将其码流转成一个个标准的H.264的frame,这样你即可以直接将其video组成一个个相应的rtp包来进行streaming,之前我在做EzStreamSvr的时候的做法就是如此。

      FYR

      1. 嗯,与您的想法类似,我也觉得解码再编码太过麻烦且产品体量是很大的问题,不过您说的难道不是这样?

        而事实上,无论是大华还是海康,他们都有一套独立的拆帧SDK,利用该SDK即可将其码流转成一个个标准的H.264的frame,这样你即可以直接将其video组成一个个相应的rtp包来进行streaming,之前我在做EzStreamSvr的时候的做法就是如此。

        的确,无论大华&海康,都有拆帧的SDK,可以拆出YUV的帧,有可以拆成标准的H.264的帧的API?亦或者说 YUV格式的帧就是H264?所以直接可以对其streaming ?

        其实我是视频行业新手入门,问题可能比较浅显,还望见谅。

        1. Dear Sun,

          我指的拆帧SDK是指将其packet stream拆成一个个H.264的frame,只要有标准的H.264/H.265的frame即可以自行组成标准的rtp packet,然后streaming出去。.

          1. 非常感谢您回复我,我再去试试,应该能找到~~~我琢磨着应该找到这俩api了,谢谢。

        1. 我说的拆帧是指将海康大华他们私有的frame格式转成一个个标准的H.264的frame,中间不涉及解码,也不涉及编码。

  2. 三年前我的笔记本硬盘出现故障,且无法修复,结果导致之前写的许多东西(包括EzStreamSvr)都丢失了,搞得我心灰意冷的,后来一直都没有再去重写一遍。回头有空的话,我倒是想再来写一遍,并将其开源出来。

  3. hi,还是要继续求助啊~~~他们的流有时候貌似可以直接被FFMpeg识别,但有时候又不行。。。蛋痛~请问您说的,拆帧 API,您还有印象吗?希望给俺指导指导啊~

    1. 那个拆帧API是海康、大华的一个独立的库,没有包含在其网络SDK开发包里。需要单独问他们要的。正常用其网络SDK发过来的包用ffmpeg是无法解码的(至少我了解到的情况是这样)。

      BTW:他们有的IPC已经支持ONVIF协议,如果你用ONVIF或者是RTSP/RTP的方式将其接进来则是可以直接用ffmpeg来解的。

Leave a Reply

Your email address will not be published. Required fields are marked *