名侦探柯南事务所

标题: [求助]在播放某些AVI的时候有点问题 [打印本页]

作者: キルア    时间: 2004-6-6 03:03
标题: [求助]在播放某些AVI的时候有点问题
总是有这样的一个信息= =+
作者: sammyweed    时间: 2004-6-6 10:13
标题: 回复:
如果你是正常的FTP下载的话可能是解码器的问题,装个新的FFDSHOW

如果你这个文件是BT下载的,不排除是文件没完全下载完,文件出错的可能性
作者: Nicole    时间: 2004-6-6 22:26
标题: 回复:
很正常~~记得是早期的压制码的关系~~~往往都是视频开始的第1贞~~不影响播放~~
作者: キルア    时间: 2004-6-6 23:41
标题: 回复:
怎样压制才能避免这个情况= =
作者: PowerK6    时间: 2004-6-7 01:51
标题: 回复:
packed bitstream 是 DivX 设计的,因为他们发现在 AVI 里面放 B-frame,会造成严重的影音不同步的问题,为了要解决这个问题,所以他们设计了 packed bitstream。

AVI当初设计的时候并没有考虑会有 B-frame ,它的sequence order是循序的,也就是
1 2 3 4 5 6 7 8
I B P B P B P B ....

然而播放的时候,读入 2B 并不能立刻解码播放,要等下一个 3P 被读进来解码完毕以后,才能解码 2B,因为 B-Frame是双向参考的,2B需要参考它后面的 3P,在 3P 还没有解码完之前,我们也就无法解码 2B。

因此就会造成一个解码的 lag,解码的延迟,所以解码会变成这样

代码:------------------------------------------------------------------------
1 2 3 4 5 6 7 8
I B P B P B P B ....  <-- 输入
I B P B P B P B ....  <-- 输出
-----------------------------------------------------------------------------

往后 delay 一个 frame,在 3 的时间点,读入 3P,于是便可以输出 2B。
所以用 VFW Codec(xvidvfw.dll) 去解码这种 AVI,第一个画面会显示英文「警告,无法输出画面,因为 B-frame解码延迟」。

用 DirectShow Filter(xvid.ax) 播放时,XviD 的 DShow 有设计过,不会输出这个画面,所以我们看不到,而 VFW Codec 因为 VFW 限制的关系,一定会输出这个画面。但是不管有没有这个画面,都会延迟一个 frame,所以会造成影音不同步,由于只有差距一个 B-frame,所以不注意听的话可能不会察觉,但是仔细听的话就会发现。


DivX 的设计者为了解决这个问题,提出了packed bitstream,把 B-frame 和它要参考的 P-frame 包在一起,变成下面这个样子

--------------------------------------------------------------------------------
1  3 2       5 4       7 6
I [P|B] [n] [P|B] [n] [P|B] ....
--------------------------------------------------------------------------------

[n] 是 null,空的 frame。

解码器遇到 packed bitstream,就知道 P 跟 B 是包在一起的,中间有一个特殊设计的 | 会区分开来,B-frame 可以实时解出来,而后面的 [n] 则显示先前解出来的 P-frame。

这样就破解了 AVI 之中无法处理 B-frame 的限制。

也许有人会想,就算不用 packed bitstream,我把声音也跟着往后 delay,不就可以解决了吗。确实,这样就不会有影音不同步的问题,但是还是有许多兼容性的问题,在不同 player 上,会发生各种奇怪的现象,例如画面显示的顺序错乱等等。
而且 XviD 的 B-frame 不只一个,它可以
I B B P B B ....

甚至还可以
I B P B B P B P P B B B ....

lag 更乱。

所以,出现这个画面的原因就是压制者在使用B-Frame的情况下没有开启packed bitstream,导致解码延时。

有兴趣的人可以看看Doom9的这个帖子




欢迎光临 名侦探柯南事务所 (https://bbs.aptx.cn/) Powered by Discuz! X2.5