Research

Audio/video processing & streaming programming & research related stuffs.


随着视频相关技术的进步和新产品的出现,人们对于在网络中实现直播的需求也越来越多。本文给出一个在网络中实现直播的解决方案,本方案可以用于把直播电视引入到网络中,也可以用于直播会议,讲座等,也就是实现“现场直播”。 方案采用当前网络中比较流行的视频格式,也就是flash。很多视频分享站点都采用flash,国际上比如Google的Youtube视频分享站点,国内比如土豆。 方案尽可能避免采用商业软件,至少避免采用付费软件,尽可能采用开源的产品。用到的产品有: 3.1 red5 0.9.0 wordpress 3.0.1 wordpress plugin – Flash Video Player 5.0.4 还需要一个采集卡或者摄像头。 第一步要做的就是依次安装上述软件,如果想实际运营,比较理想的是把Adobe Flash Media Live Encoder,red5以及wordpress分别安装在不同的计算机或者服务器上,如果仅仅是为了测试,这样的安装就没有什么必要了。然后在 wordpress上安装Flash Video Player插件。 第二步当然是启动Adobe Flash Media Live Encoder,red5以及wordpress三个服务。 第三步启动实时内容注入,这是在Adobe Flash Media Live Encoder上完成的。无非是选择视频采集设备,音频采集设备,在输出配置中的FMS URL一栏,填入如下内容:rtmp://ip.of.the.red5/oflaDemo,在Stream一栏填入:livestream。然后启动编码。 第四步在wordpress的管理页面新建一个Post,并加入如下内容,且内容需要用中括号括起来: flashvideo streamer=rtmp://ip.of.the.red5/oflaDemo file=livestream type=video / 最后用浏览器打开wordpress中刚刚加入的那个Post,会看到一个Flash播放器,开始播放。 ok? 顺便提一下,如果是点播,那么只是file=…的文件名不一样,比如oflaDemo就提供了avatar.flv等多个flv视频用于点播测试,在streams目录里。

一个基于flash的直播电视解决方案


11
这个清明节多请了两天假,就为了回老家戒烟。在老家上网又不大方便(因为老家正常一年到头也只有过年的时候才有人),闲着真的好无聊,又加上前阵子左思右想想出路,陷入第二个“大学时期”,结果睡眠不足,导致牙痛,牙痛又引发喉咙痛,头也痛,浑身无力,回家那天又开了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 欢迎下载使用,若您有任何问题,请不啬赐教,谢谢。

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


5
这个版本没有修改功能代码,但修复了一个重要的、会导致EzStreamSvr挂起的问题,问题在于BGCPro界面库,其在特定情况下会直接使整个程序挂起,原因未明。再加上前阵子我把我的环境升到了Win7,而使用了BGCPro界面库的程序变得相当的丑陋(WinXP下还是挺好看的),因此就直接把BCGPro界面库给废掉了。 BTW: 1. 想当年为了找这个界面库也找了N久,刚做上去的时候还觉得挺不错的,没想到会变成现在这样,所以,现在看来,这种所谓的美观真不见得完全必要,至少在这个阶段。 同时,我也会考虑再做一版没有界面的EzStreamSvr,这样的话,又可以重新启动多OS(Windows/Linux)的支持,看啥时候有时间吧。 2. 新的环境下没安装Installshield,所以暂不提供安装包的EzStreamSvr,若要使用请下载绿色版,下载地址:http://rg4.net/p/ezstreamsvr/EzStreamSvr.Green.rar

EzStreamSvr 更新至3.2.0.202



10
由于之前的版本在Windows 7下面跑总是有问题(视频采集的原因),恰好前两天安装了Windows 7,所以今天就把代码再稍微改了一下下,终于,EasyRTMP也可以支持Windows 7了。 此外,由于EasyRTMP/EzStreamSvr/EasyDSS等等工程其实有很多很多的代码都是重复了,为了日后维护的方便,特地把许多功能独立成一个个的DLL,这样,每个工程都可以使用,同时,万一发现什么问题,也可以只改一个DLL就可以了,不需要所有的工程都去改一遍。所以,这也是一个大变革(对于软件工程而言,并不是针对功能)。 建议大家下载新的程序使用。 下载地址:http://rg4.net/easyrtmp 介绍说明:http://rg4.net/easyrtmp    

EasyRTMP更新到1.3.0.41


3
这几天发了神经又想来搞Android了,实在不知道该做什么,所以就从播放器入手,着手开始把EasyPlayer的代码移植到Android下,到目前为止的确有这么一个版本出来了,但这个版本未做任何优化,无论是ffmpeg解码的汇编指令,也未使用NEON指令,解码后的播放都是由JNI callback到Java来实现的,因此其效率之差可想而知,不过,用老婆的手机(Sumsung 9001)播放QVGA的音视频还算流畅,这起码也算是点安慰,下一步将先把音视频播放部分搞一搞。 先把这个版本放上来。 下载地址:http://rg4.net/easyplayer 介绍说明:http://rg4.net/easyplayer

EasyPlayer for Android 预览版 v 0.1 发布


3
前两天发现EzStreamSvr在以Relay模式下分发高清的视频(300万像素,解析度为1920*1280)时,若对视频进行预览,会导致EzStreamSvr挂掉,现已修复这个问题。 除这个问题外,本版本还解决了一些其他的小问题,就小在此详述了。 欢迎大家随时回报使用中发生的任何问题,问题请寄到:EzStreamSvr {a} rg4.net。在此表示万分感谢。 下载地址:http://rg4.net/ezstreamsvr 介绍说明:http://rg4.net/ezstreamsvr

EzStreamSvr 更新到3.3.2.183




EasyRTMP - 基于RTMP H.264的视频监控平台
  一直在搞视频监控系统,既然可以支持RTMP,为什么不做 一个基于RTMP的视频监控系统呢?所以我想,闲着也是闲着,就在EasyRTMP的基础上搞了这么一个东西,把大华的8路 H.264硬件压缩卡采集数据,用RTMP流发布,这样就可以让视频监控的客户端也无需安装任何插件,兼容所有Flash播放器平台。CentOS实现, 在ATOM CPU + 1G内存上完全不卡, 整机功耗只有30W。 更多关于EasyRTMP的介绍可浏览网页:http://rg4.net/easyrtmp

EasyRTMP – 基于RTMP H.264的视频监控平台


1
相关更新说明:从功能上讲主要是加入了relay的功能,使EzStreamSvr也可以变成一个纯粹的分发服务器,您可以使用下面这样的命令来实现和测试relay的功能: rtsp://180.128.12.227/relay.sdp?url=rtsp://root:pass@180.128.12.225/play1.sdp 其中: 180.128.12.227:指EzStreamSvr的IP地址。 rtsp://root:pass@180.128.12.225:554/play1.sdp: relay 源的请求命令。 root:pass:可选。若是视频源不需要认证,则可省略(省略后为:rtsp://180.128.12.225/play1.sdp) 180.128.12.225:视频源的IP地址 554: 视频源的端口 play1.sdp:视频源的rtsp地址。 具体相关修改: V 3.3.1.152 (2011-10-30) Seperate EzStreamSvr some OS independent functions to independent DLLs. a. libEasyRTP b. libEasyRTPMux c. libEzCodec d. libTsMux Extend demo license to 2012-06-30 Add relay support for EzStreamSvr(Support MPEG4/H.264 Video only). Change socket mode to […]

EzStreamSvr 更新至3.3.1.152



1
V 3.1.0.77 (2011-10-16) 功能:EzStreamSvr录像功能支持多种主流容器:MP4,FLV,AVI,MKV等(但存在一个问题:由于音视频同步的问题未 解决,现在变成了只支持录视频,等日后搞定了再来fix this issue)。 功能:水印功能弃用DirectShow Filter,改以ffmpeg的libavfilter替代,以使此功能可移植到各种平台。 界面:其实前阵子变戏法一样,一直在变界面,就是想找一个简单的、好看的、与功能代码可脱离的界面库,试了无数个,始终不满意。现在想想其实我真的很无聊,界面本不应该是我关注的重点,却浪费了这么多时间,所以,就此打住。 少废话,先上个图。 下载地址:http://rg4.net/ezstreamsvr 这个版本最大的一个问题是因为加了界面库和皮肤,所以,文件一下子变大了很多了。下载要注意了,可能要老半天,呵呵。

EzStreamSvr 更新至3.1.0.77


2
EzStreamSvr For DSS版本更新到2.3.0.31。 新的版本已经可以支持将视频录制成AVI文件。无论前端的视频源是MPEG-4格式,还是H.264格式,现在我们都可以将之录制成一个标准的AVI视频,让一个普通的播放器(如:Windows自带的Media Player)就可以回放录制下来的视频。 由于加了录像功能,因此在配置文件格式及界面上也有了一点小小的调整,主要是加入与录像设定相当的配置及界面。 新界面如下: 欢迎大家下载使用。 下载地址:http://rg4.net/p/ezstreamsvr/EzStreamSvrDSS.rar

EzStreamSvr For DSS现在支持将视频录制成AVI文件


4
完整文档下载:http://rg4.net/p/ezstreamsvr/EzStreamSvr.For.DSS.UserMannual.doc 产品说明:http://rg4.net/archives/171 前言 EzStreamSvr for DSS special version可以说是EzStreamSvr标准版和Darwin Streaming Server的一个扩展,因此本说明文档将主要分两部分,第一部分讲是的Darwin Streaming Server的安装和配置;第二部分才是关于EzStreamSvr for DSS special version的安装、配置和使用。 若您对本文档及本文档中所作的描述有任何的看法、意见或建议,希望您能不吝赐教。在此我表示万分感谢。 一、Darwin Streaming Server安装 由于是安装在Windows上,我采用的是Darwin Streaming Server 5.5.5,若是您没有此版本,可到RG4.NET (http://rg4.net ) – 流媒体开发论坛下载。 以下是安装步骤: 1. 下载 下载地址:http://rg4.net/p/easydss/DarwinStreamingSrvr5.5.5-Windows.exe 2. 安装 2.1 Perl 安装(可选) 由于Darwin Streaming Server安装Perl的支持,所以,若是您的电脑上原本没有安装Perl的话,在进行DSS安装前您还必须先安装Perl。但若是您的电脑上已经有安装Perl,则过跳过此环节。 Perl的安装文件您可以到其官方网站下载,也可以直接从罗索工作室下载。罗索工作室下载地址: http://rg4.net/p/easydss/ActivePerl-5.10.0.1004-MSWin32-x86-287188.msi ActivePerl的安装直接依据其安装向导,Next, Next, Next即可搞定。 2.2 DSS安装 注意事项: a. 如果您的电脑上有安装一些所谓的“安全软件”,如:360,QQ电脑管家等等,请先将它们统统退出。 […]

EzStreamSvr for DSS安装说明使用手册



3
EzStreamSvr的标准版本是一个独立的、完整的、视频直播的流媒体服务器。 考虑到许多人对Darwin Streaming Server的认可程度,EzStreamSvr又出现了一个支线版本:EzStreamSvr for DSS。它可以让EzStreamSvr的视频直接发布到某一台Darwin Streaming Server,再经由Darwin Streaming Server分发到各种支持流媒体的终端上,使其可以把视频发布到Darwin Streaming Server,以撑大容量,扩充性能。 此版本与标准版EzStreamSvr有相当的不同,甚至可以说,她是EzStreamSvr与罗索工作室的另一个产品EasyDSS(详请可浏览网页:http://rg4.net/easydss )的结合身。 以下是这个版本的架构图: 下载地址: 安装版:http://rg4.net/p/ezstreamsvr/EzStreamSvrDSS.rar 绿色版:http://rg4.net/p/ezstreamsvr/EzStreamSvrDSS.Green.rar 安装说明及使用手册请浏览网页: http://rg4.net/archives/185  

EzStreamSvr 发布一个支线版本:EzStreamSvr for DSS


这个周末本应该是一个难熬的周末,妈妈带女儿去看生病中的外婆,老婆跟团去舟山祭拜普陀山,于是剩下我孤家寡人一个,好不凄惨。不过,这样带来的好处是也没人来管我的,也就意味着又可以玩通宵了,呵呵。 这两个通宵的结果还是比较显著的,我把EzStreamSvr一下子从2.1升到了3.0。当然这不是随便乱升的,肯定是加了不少得意之作,诸如支持录像,支持所有参数的设定等等。 不废话了,上图。 若想一睹为快,请到此处下载。 下载地址:http://rg4.net/ezstreamsvr

EzStreamSvr 更新到3.0.0.54


2
EasyRTMP其实跟EzStreamSvr差不多,它也是一个视频直播系统,只不过,EzStreamSvr是基于RTSP + RTP技术的,而EasyRTMP则是基于RTMP的。 EasyRTMP走的是Red5/FMS的解决方案,此方案最大的一个特点是客户端只要有Adobe Flash就可以了,而事实上Flash可以说是全世界装机量最高的一个软件(注意:没有之一),只要是台电脑、是个智能手机,不管你用的是什么操作系统,都有Flash,或者都可以有Flash,因此,也就是说要看EasyRTMP直播出来的视频不需要安装任何的客户端软件。 下载地址: EasyRTMP v1.0: http://rg4.net/p/easyrtmp/EasyRTMP.rar Client Flash: http://rg4.net/p/easyrtmp/client.rar 注意: 要想让整个系统工作起来,您还必须安装一个Red5 Server 或者 FMS Server。 Demo版本只能放5分钟的实时视频,若超过5分钟,您必须重新点击EasyRTMP.exe中的Start按钮,才能继续实时视频直播(也即Demo版本您必须每5分钟点一次Start)。 Live Demo: 在RG4.NET有放一个demo,但Red5服务器不一定长时间开着,若有需要观看Demo效果,您可以打开网页: http://rg4.net/p/easyrtmp/client/live.html 并: a. 在其中的Server处填入您的Red5/FMS 服务器地址。如:rtmp://rtmp.rg4.net/live b. 在Stream处填入0_320x240,然后点击Play。注:0_320×240的格式意义:第一个0代表第一个摄像头;320×240代表EasyRTMP捕捉并编码出来的视频解析度为320×240。 这样您就可以观看到EasyRTMP Public到Red5/FMS的实时视频。 意见反馈: 若您对EasyRTMP有任何的问题,欢迎随时与我们取得联络。

EasyRTMP 1.0发布