瀏覽單個文章
Shade
Senior Member
 
Shade的大頭照
 

加入日期: Oct 2002
您的住址: El's room
文章: 1,046
引用:
作者snic
sample 就由我提供吧...下載連結請Shade兄收pm

基本上這類檔案當我拉進VirtualDubMod以後...
下面訊息欄馬上就出現下面的錯誤訊息而且沒畫面(灌舊版XVID前提下)
Error decompressing video frame 0: An unknown error occurred (may be corrupt data). (error code -100)
接下來不管怎麼拉動滑桿就是沒有任何畫面...錯誤訊息都一樣
而且我還做個實驗...因為我以為是只有一開始的關係...
所以我隨便擷取影片中任一小段...結果都一樣不能開,錯誤訊息一樣!

新版的可以開,就用新版的開吧
去年的舊版已知有一些 bug,所以新版的有做了修正,舊版壓出來的東西新版大概都會回溯相容,用新版的都可以解,新舊通吃,但是新版壓出來的東西,用舊版的去解可能就會有問題。
1.0/1.0.1 是目前最穩定,已知 bug 最少的版本,所以壓縮的人應該趕快換到這一版。
沒有在做壓縮的人,只是在看影片的時候會用到解碼,也建議換到這一版,相容性會比較高。
或者使用 ffdshow 來解碼,解碼速度快,相容性更高,解碼品質可以和 XviD/DivX 完全一樣,附加功能又很強大,所以用 ffdshow 解碼是最好的選擇。

以前 ffdshow 有三個問題:
1. 前面提到的 iDCT 不同,使用者需要自行更改,現在 ffdshow 有自動偵測,會自動切換。當然不放心的話再手動自行指定也可以。
2. 解碼使用自訂 MPEG 量化矩陣壓縮的檔案,當自訂的量化矩陣 inter 量化係數小於 16 的時候,解碼會發生錯誤,畫面會破碎,這個是 libavcodec 的 bug,慶幸終於在今年某月間修正,現在已經沒有問題了。
3. 解碼 XviD + >1 B-frame + Packed Bitstream 會丟掉 B-frame 沒有解,造成畫面停頓。這個也在 ffdshow 的作者修改下,現在已經沒有問題了。

ffdshow 的相容性高:
以前 MPEG-4 Codec 在實作的時候,各家多少作錯了一些地方,有 bug,造成每一版壓出來的檔案彼此之間不相容。ffdshow 蒐集了各種各樣錯誤的作法,如果偵測到檔案是用這些錯誤的作法壓的,就會自動使用錯誤的作法來解碼,使播放能夠正常。
有時候網路上傳輸的檔案下載不完全,有部分資料毀損,一般解碼器播放到這些地方就會中斷,或者當掉。ffdshow 有實作 Error resilience/Error concealment,在這些地方還可以嘗試解碼,不會直接就掛掉。

所以建議更換到新版的 XviD 作壓縮的工作,使用 ffdshow 來解碼。

至於這個 sample 的壓縮設定
H.263 quantization
有 B-frame, Qpel
不過問題應該不在 Qpel。

XviD 舊版已知有一個小錯誤,就是 DC 沒有按照 MPEG-4 standard 的規定作 clip。這個小錯誤會造成某些檔案無法被正確解碼,會直接當掉。
新版的 XviD 已經修正這個錯誤,完全符合 MPEG-4 的標準。
我不知道舊版的去解新版的會不會因此掛掉,我猜測這個檔案的問題可能是這個。
DivX 5.1.1 已知也有這個錯誤沒有修正,5.2 我就不清楚。
ffdshow 有針對這個錯誤作對應的處理,解碼的時候如果偵測到錯誤的 DC CLIP,會自動放過,不要當掉
舊 2004-07-22, 07:02 AM #34
回應時引用此文章
Shade離線中