基于live555的视频直播
一直很想做流媒体的直播,最近花时间看了有关live555的有关代码,这里隆重的推荐两篇:
http://blog.csdn.net/nkmnkm(道长的文章,分析的很不错)
http://blog.csdn.net/gavinr(这里面的文章容易让人理清思路)
其实刚入门的时候,看这两篇帖子也比较吃力,我们先看看live555编译之后文件夹下的内容,帮助理解。
1)、在mediaSever目录下面有个live555MediaServer.exe,这是live555自带生成的服务器端,我们可以做一个简单的测试:
将一个264文件比如test.264拷贝到exe文件所在的目录下(就是mediaSever目录下);
双击打开这个exe服务器端;
在另外一台机器上打开vlc,使用“媒体-->打开网络串流”,输入服务器的dos窗口中的URL,比如:rtsp://192.168.1.110/filename,这个filename就是你拷贝的视频文件的名称,然后就可以进行播放了
2)、还有一个目录就是testProgs,这里面的代码都是实例代码,对于改写你自己需要的程序一定会有很大的借鉴作用,编译live555之后会产生testOnDemandRTSPServer.exe,这也是一个服务器端,还有很多别的可以自己慢慢研究,后面设计的基于live555的直播的服务端就是借鉴于testOnDemandRTSPServer.cpp来改写的。
基于live555的直播也是在网上找了很多资料,看了很多前辈的博文,这里使用directshow采集摄像头视频,然后使用x264进行编码,服务器端参考testOnDemandRTSPServer.cpp进行改写,实现了直播,上图:
后期工作:
这里使用的是directshow采集的视频,没有加音频采集,后期可以继续加入音频采集部分,然后进行编码,在testOnDemandRTSPServer.cpp中通过sms->addSubsession加入音频流;
directshow不可以跨平台,所以可以考虑所以opencv进行采集视频;
网上有基于live555开发的RTSP客户端,有机会可以研究一下