当前位置: 代码迷 >> 多媒体/流媒体开发 >> 用AVI实现流媒体播放的4个挑战性的有关问题
  详细解决方案

用AVI实现流媒体播放的4个挑战性的有关问题

热度:8143   发布时间:2013-02-26 00:00:00.0
用AVI实现流媒体播放的4个挑战性的问题。
整个架构是,服务器生成AVI文件,客户端PULL这个AVI文件到缓存,然后播放器通过读取缓存来播放。之所以具有挑战性,是因为以下原因:

1.   服务器一生成AVI文件,客户端就开始播放,比如一个AVI文件应该有10000帧,当服务器声称10帧的时候,客户端就开始PULL这个AVI文件已经生成的部分,然后放到缓存里让播放器播放。所以可以说服务器生成过程和客户端播放过程基本同时进行,通过缓存机制来同步。
2.   服务器在生成完整的AVI文件之前,是不知道到底有多少帧,每一帧的大小不一样,所以在填写AVI文件头(header信息)的时候,有些数据不能确定。(我试过,其中有些数据可以填写假定值,有些填写了假定值AVI就不能被播放,这是其他3个问题的起因)
3.   有些文档说AVI文件可以不要index,但是我试过有 'rec '和没有 'rec '的情况,都不能没有index,大家能告诉我AVI在什么情况下可以不需要index吗?
4.   使用DirectShow来实现,具体是写一个Source   Filter和DirectShow已经有的AVI   Splitter连接,要实现IAsyncReader接口。我已经试过,只要有一个Source   Filter把AVI块发送给AVI   Splitter,AVI   Splitter自动回分离音频和视频,并且会找到对应的Transform   Filter,最后播放。

谢谢大家,请大家告诉我相关的一些知识和方案,如果100分不够,我可以再给。

------解决方案--------------------------------------------------------
用flv吧
------解决方案--------------------------------------------------------
的确有难度,不过为什么要先生成AVI再播放呢?自己开发网络流媒体一般不都是在循环以下步骤吗?祯采集——编码——发送——接收——解码——显示祯
------解决方案--------------------------------------------------------
如果是实时播放的话,不必先形成文件。


*********************************************
▄︻┻┳═一 ' ' ' ' ' ' '

昵称: softsoftsoft2008
Q Q: 79941308
MSN : luoshizhen2003@hotmail.com
*********************************************

------解决方案--------------------------------------------------------
可以再服务端缓存数据,一个线程发给客户端,一个线程写avi文件。
  相关解决方案