流媒体

实时流媒体编程

http://www.ibm.com.sixxs.org/developerworks/cn/linux/l-mdst/

顺序流传输

顺序流传输采用顺序下载的方式进行传输,在下载的同时用户可以在线回放多媒体数据,但给定时刻只能观看已经下载的部分,不能跳到尚未下载的部分,也不能在传输期间根据网络状况对下载速度进行调整。由于标准的HTTP服务器就可以发送这种形式的流媒体,而不需要其他特殊协议的支持,因此也常常被称作HTTP流式传输。顺序流式传输比较适合于高质量的多媒体片段,如片头、片尾或者广告等。

实时流传输

实时流式传输保证媒体信号带宽能够与当前网络状况相匹配,从而使得流媒体数据总是被实时地传送,因此特别适合于现场事件。实时流传输支持随机访问,即用户可以通过快进或者后退操作来观看前面或者后面的内容。从理论上讲,实时流媒体一经播放就不会停顿,但事实上仍有可能发生周期性的暂停现象,尤其是在网络状况恶化时更是如此。与顺序流传输不同的是,实时流传输需要用到特定的流媒体服务器,而且还需要特定网络协议的支持。




用live555和ffplay搭建流媒体环境

相信很多朋友和我一样,想做实时解码播放之类的程序,可是又不知道如何得到视频流。ffmpeg是一个很好的音视频库,现在网上用ffmpeg解码播放本地文件的程序有很多,而且有很详细的讲解。可是关于流式解码播放的却很少。
用live555可以很方便的搭建一个流媒体服务器,live555在vc6下的源代码,这里有:

这分工程中的vc6-live555就是我们要的东东了,当然这分工程里还有很多实例,也同样值得很好的研究。网上有很多讲解live555配置及工程源代码的资料,可以找来看看。
打开vc6-live555下面的live555.dsw编译,编译可以一次性通过,并会在bin目录下生成live555MediaServer.exe文件,我们可以拖几个媒体文件到这个目录下,注意一定要和live555MediaServer.exe放在同一目录。之后运行live555MediaServer.exe可执行文件:

黑框提示 rtsp://10.22.76.47/<;filename>,表示我们的媒体服务器已经建好了。换一台机子,在cmd下运行ffplay.exe
用下面的形式:
ffplay.exe rtsp:/;/10.22.76.47/1.mpg
这样就会弹出一个视频播放画面了。

到这里,我们就建起了一个流式环境了。想调用ffmpeg编写解码实时流的程序也可以很好的实现。遗憾是live555只支持几种视频格式。。。

   写在前面的话: 开源的好东西真是太多了,就ffmpeg来说就包含太多东西了,即有音视频的编解码(当然其中很多重要的编码器如X264、XVID也是别人的),又有流媒体传输(主要是利用LIVE555),还有播放显示等(主要利用SDL技术),可以看出,ffmpeg自己主要的东西还是解码器。所以你做音视频处理方面要找参考也就知道找谁了。当然还有利用这些技术做成的了些开源的产品如VLC,MPLAYER,LINPHONE,它们都是是非常有价值的利用对象。

 目标: 做一个简单的H264播放器,能播放H264文件,网络流媒体并保存成h.264文件。

   方法: 学习SDL编程,仔细分析ffplayer.c,参考ffplayer.c进行修改。

   计划:SDL学习-2天,ffplayer.c分析-2天,ffplayer.c播放流媒体分析-2天,ffplayer.c保成             264文件-2天 

 过程:

             2009.12.25-学习了其使用方法,并实验了example1和imagetest两个程序。

             2009.12.26-学习了其中的event 、keyboard event and multithread。

             2009.12.27-找到了一个ffmpeg sdl tutorial,主要在学习其中的文件读取。

             2009.12.28-纠结,是用JRTPLIB,还是用ffmpeg自带的函数呢,是乎都不大好。就先用她了,TSRTP。

             2009.12.29

             2009.12.30

             2009.12.31

             2010.1.1-(完成)新年庆祝! 


 结果:

 总结: 

 

<uses-permission android:name=”android.permission.RECORD_AUDIO”></uses-permission>总结说明:

  • Android SDK中对视频开发方面提供了很大的方便,但是在使用的过程中发现,这些类封装的都很高层,很多地方估计也无法满足开发人员的需求,主要体现在缺少对文件流操作等底层接口,我们只能通过控制状态来控制文件流,缺少这方面操作增加了Android视频开发的难度,比如说增加其他编码器等。
  • Android T-Mobile G1可以在线看Youtube视频,然而我们在开发中却发现,其无法播放FLV格式的视频,这就有些不明白了?估计在未来应该会支持的,FLV是当前最流行的流媒体格式,如果不支持对用户在Android上直接看这些FLV视频会有很大的影响。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值