vlc:一款开源的强大媒体播放器,还可以作为流媒体服务器和客户端;官网为:http://www.videolan.org/vlc/
vlc支持多种媒体格式和网络协议,当然包括我最关心的RTSP+MPEG2-TS/UDP,
老实说在经历了从Darwin到live555然后的折腾,发现vlc在流媒体服务器方面是基于live555,
而解码方面是基于ffmpeg的;
vlc作为客户端就简单了:比如要在本机监听54321端口(目前我做实验用的port)上的UDP流,其实就是模拟On Demand Client(IPQAM+STB),只需简单命令:cvlc udp://@:54321即可;
作为服务端同样简单,不过值得一提的是vlc支持四种源:
1本地文件(file):也就是直接把本地的文件推流出去;
2光盘(Disc),基本同1;
3:网络接受的流,几乎相当于转发,不过可以把接受到的流转码成别的格式再推送出去;
4:就是从其它设备中捕获视频然后推送,目前还没用过,以后没事再试试;
比如要桌面上的一个名为LS.ts文件推送出去,命令如下:
-vvv 输出调试信息 --sout 输出目标&方式 例子中是udp方式地址127.0.0.1端口54321 ttl 12
vlc -vvv /home/mike/Desktop/LS.ts --sout udp:127.0.0.1:54321 --ttl 12
测试用例:先启动客户端cvlc udp://@:54321
再启动服务端
实vlc的强大是显而易见的,它还有很多其它的可用参数来满足你不同的需要,
所以在未来编写推流服务器和转码的时候会多多借鉴它的经验;
当然先前看过的Darwin,live555和现在才看的ffmpeg也是相当了不起的工程。
原文地址:http://blog.csdn.net/wujunokay/article/details/46291249