<% CurrentID = 2717 'CurrentID 表示当前页面在栏目表中存在的序号 %> <% ShowHeadPart CurrentID '显示head部分结束 %>


网络多媒体流技术专业站


本文章由 吴朝相 创作,版权所有,未经授权禁止复制或建立镜像。如果您有什么问题请发电子邮件给 soxin@21cn.com
,谢谢!

<% ShowLeft CurrentID '显示页面left部分 %>


流文件和一般视频文件的区别

整理 / www.souxin.com 搜新网 吴朝相

作者 / wqyuwss 、yaan2

  wqyuwss 在 3 月 20 日,在本站论坛发了一个帖子“请问版主,到底流文件和我们一般接触的视频文件有什么区别。比如是不是MPEG-2视频流用传送流形式打包就成了流文件? ” yaan2 马上迅速作了精彩的回答,当然 wqyuwss 也有来有往,一时刹是好看,下面是原文内容:

我是这样认为的: (jacob 3-22 19:29 阅读 5)
普通视频文件一般都要将整个文件下载到本地才能播放, 而流方式可以在线播放,就象rm(radio)和mp3的区别一样。 流编码方式不只mpeg2一种,可以是rm,mpeg4,qt,甚至mpeg1等,不过你说的mpeg-2到还没有听说……

似乎stream是和它的内容无关的 (yaan2 3-22 20:29 阅读 2)
也就是说,具体stream传送的是那种格式的视频流或音频流都可以,只是看软件让不让做罢了,比如M$的ASF就只能做MP4格式的stream就纯粹是软件方面的限制. 不过,可能VBR的流想要stream就比较难一些,因为要考虑到负荷平衡的问题,而像MPEG2这样CBR的流做stream就很容易了.

(wqyuwss 3-24 0:46 阅读 11)
不会吧,应该MPEG2更可以。因为它标准中系统部分的传输流格式就专门是针对网络或其他易错的环境而设计的,在实际中有很多用处,例如DVB。我觉得应该是文件中格式的问题,流媒体的文件应该加入了更多的纠错格式,而不像一般的情况。有对这个更了解的吗? 另外MPEG2也可以做成vbr的呀,只不过因为它的TM5验证模型中采用的是CBR的位率控制策略,而大部分厂家可能都是直接用这个验证模型,所以大部分的宣传都是说MPEG2的CBR控制,造成了大家的误导 而且VBR应该更支持网络流媒体,因为它是可变比特率的流。而CBR应该只是针对象硬盘、CDROM这类传输速率基本不变得场合的。 不论那一种软件,它是否支持流媒体,应该是他的算法决定的,也就是它的文件格式决定的。而我想问的是为了更好的支持流媒体,应该在算法上作那些更进一步的改进。可以举例子说一下吗?

(yaan2 3-24 9:12 阅读 3)
正因为VBR是可变bitrate,才说明它并不适合stream ,因为网络可提供的带宽是不可预见的,而VBR的比特率是可预见的,两者之间并不能达成什么默契,你不能指望网络在你需要更多比特率的时候就能给你更多的带宽.除非你用ATM.当然,这是针对比较复杂的网络环境而言. NO,stream似乎没有在纠错上花太多的功夫,可能是相对于不那么重要的内容而言,更有效地利用带宽才是stream的着重点吧.针对stream设计的容错方案应该是能够在错误发生后,迅速从后面的数据里恢复状态,而不是重新向服务器请求发送,后者在broadcast里也是根本不可能的,(在TCP协议层上的纠错除外),所以也就注定了VKI/MM4是一种完全不适合stream的格式.

(wqyuwss 3-26 1:31 阅读 5)
VBR是可变比特率,这样的话,随着图象内容的不同而采用不同的量化因子。我觉得应该更适用于网络吧? 比如在MPEG2中已经定义了数据分割和可分级性,这些如果与VBR流相互结合,应该更适用于网络流吧。 数据分割是在数据流中加入某种标志,将重要的数据放在标志之前,次要的放在之后,这样一旦网络拥挤,就只传重要的数据,否则全部传输。不知这样是否符合老兄的意见。 另外MPEG2中已经引入了可分级性,即空域和时域以及SNR分级,他们都可以根据网络的情况来发出请求,判断是否需要传输低质量的视频流。 所以我认为MPEG2也可以适用于网络流,可又似乎没有听说那个点播系统用到MPEG2的视频流,所以百思不得其解 还有yaan2老兄你说的VKI/MM4是一种什么样的格式呢?针对我的上述解答和这个小问题,可否给个回复。

(yaan2 3-26 15:40 阅读 12)
看来wqyuwss老兄是mpeg2的专家哦,我对mpeg2知之甚少,不过我猜想你所说的数据和分割和可分级性,从原理上说,前者类似于Progressive JPEG,后者类似于RealMedia的Multirate Stream,都是以牺牲质量的手段来换取stream的稳定发送,是吗? 如果是这样,那么问题在于: 1.VBR的问题还是没有解决,假设这样一个情况,一条网络连接能提供1Mb的带宽,一个stream服务器发送一个VBR的视频流,在绝大多数时候,视频流的bitrate只有100Kb上下,这个网络工作得很好,但某小一段时间里,视频流的bitrate达到了4Mb,为了能保持传送,服务器不得不运用数据分割和分级的手段,把这4Mb的bitrate砍到1Mb,OK,现在视频流得以继续传送,看起来万事大吉?NO!因为视频流的质量已经被砍得惨不忍睹.VBR是个不错的主意,对减小总的数据量很有帮助,但有一个前提:你的网络得能应付得了它随时可能而来的庞大胃口.这在小规模的网络中可能不成问题,但在internet上,这就会成为一个决定性的限制. 2.mpeg2本身就是以其质量立足的,如果丧失了质量的优势,那它与MPEG4,quicktime,Real等方案相比.唯一的优势就是mpeg2有成熟的解码chip了.不过如果想要mpeg2解码chip接受stream,一个能与tcp/ip打交道的cpu是少不了的,既然这样,还不如加强cpu的能力来支撑起一个linux架构,用软件来做解码核心,这样可供选择的codec就很多了. VKI/MM4是制作MPEG4文件的方法,Variable Keyframe Inserting/Multiple MPEG4(好像是这样拼的),大概算一种SuperVBR的mpeg4吧。

(wqyuwss 2001-3-27 23:28:49 阅读次数:9 )
yaan2老兄看来做这方面一定也有很长时间了吧。我只不过稍微了解一些,谈不上专家。还有很多问题没有搞清楚。分级性可以理解为渐进式传输,其主要目的也就是为了解决网络传输。数据分割则主要是针对纠正数据错误而实际的。这样即使传输时有了错误,利用前面传到的数据也可以恢复大部分图象。 另外我想你可能误解我说得VBR的意思了。从编码和解码的角度看,CBR指得是在解码数据的时候,输出到缓冲区的图象数据在单位时间内是不变化的,例如一个720*576大的图象序列,每一帧的压缩比几乎都接近100:1。而VBR则不然,对于运动变化剧烈的场景,可能压缩比要小很多;但对于缓慢变化或场景几乎不变的情况,压缩比会大很多。这就是两者的差别。更深入的讲就是量化因子的变化。而我说得分级性和数据分割只是为了适合网络或卫星传输(大部分是后者,因为后者应用MPEG2更多)而设计的工具,他既可以用于VBR编码,也可以用于CBR编码。 不过我明白你的意思,MPEG2的主要用处就是针对较大的比特率的情景。没有必要用于这种场合。我只不过一直不太明白,不知道是不是MPEG2只能用于大比特率的场合。经过一番讨论,我明白它实际上都可以用,即使在低比特率的环境(因为H.261,263的原理和他一样)也可以适用。 你对网络似乎蛮熟的。你知道realplayer的压缩原理以及他们在网络传输的原理吗。你提到real的Multirate Stream,你对原理这个清楚吗? .

 


本文章由 吴朝相 创作,版权所有,未经授权禁止复制或建立镜像。如果您有什么问题请发电子邮件给 soxin@21cn.com
,谢谢!