瀏覽單個文章
lwb
Power Member
 

加入日期: Nov 2000
您的住址: 台灣桃園
文章: 644
既然你都已經點名了
我只好做一些實驗看看
把用ATI PLAYER預約錄影的MPEG檔(31分鐘,406900554bytes,約1600bytes/s)用TMPEG重新壓成符合VCD格式的MPEG檔
在經過幾個小時的壓縮後
結果發現——你說的沒錯

奴論是使用內建的Mpeg Audio Encoder或是外掛tooLAME壓縮聲音的部分都會產生聲音每隔一段時間就中斷一次的情形

因為我以前都是用TMPEG做AVI->MPEG的轉換
很少用它來做MPEG->MPEG的轉換,所以竟然沒發現這個重大的問題

不過既然在轉換AVI->MPEG的過程不會出問題
於是開始追查斷音的來源
在重複做了好個小時壓縮的實驗後,我歸納出下列結果:

用TMPEG壓縮AVI檔案成為VCD規格的MPEG檔使用內建聲音壓縮->正常
用TMPEG壓縮AVI檔案成為VCD規格的MPEG檔使用外掛tooLAME->正常
用TMPEG重新壓縮用TMPEG產生的MPEG檔成為VCD規格的MPEG檔使用內建聲音壓縮->正常
用TMPEG重新壓縮用TMPEG產生的MPEG檔成為VCD規格的MPEG檔使用外掛tooLAME->正常
用TMPEG重新壓縮用XingMPEGEncoder產生的MPEG檔成為VCD規格的MPEG檔使用內建聲音壓縮->正常
用TMPEG重新壓縮用ATI-TV Wonder產生的MPEG檔成為VCD規格的MPEG檔使用內建聲音壓縮->斷音
用TMPEG重新壓縮用ATI-TV Wonder產生的MPEG檔成為VCD規格的MPEG檔使用外掛tooLAME>斷音

由以上結果,我推測斷音不是由壓縮引擎產生的
因為即使是使用同樣的影片內容,只要事先轉成AVI檔,就能正常壓縮
所以我猜測斷音的來源可能是由VFAPI Plug-In產生
(在Option->Environmental Setting...裡)
因為TMPEG開啟AVI和MPEG檔案是用不同的Plug-In
開啟AVI用AVI2(OpenDML)或AVI VFW
而開啟MPEG檔一定是用DirectShow Multimedia File Reader
所以我猜測斷音是在檔案讀出後就產生了

為了進一步證實我的想法,我再度用TMPEG打開一個TV Player錄的MPEG檔案
然後用File->Output to File->Wave File
將聲音使用VFAPI Pug-In解開後存成.wav檔
果然,在這個Wave檔中就有斷音的現象

至於為什麼會發生斷音,我就不清楚了
只能歸納出一些目前用TMPEG壓縮後會發生斷音的檔案的共通點

1.使用ATI-TV Wonder內建的程式錄成的MPEG檔
2.不符合VCD標準
3.只有單聲道,沒有立體聲
...(可能還有其他理由)

至於真正的理由為何,就留給其他人實驗過濾條件吧
我已經花了十幾小時在做壓縮的實驗了,饒了我吧

至於解決的方法,目前至少有兩種:
1.使用其他的壓縮程式:例如使用Flask MPEG + bbMPEG(都是自由軟體),一個程式負責解碼,另一個負責編碼
或是使用現成的商業軟體(如PWI,LSX Mpeg Encoder,XingMpegEncoder)
這個方法有很多人都會,所以我沒試

2.繼續使用TMPEG,但避免使用DirectShow Multimedia File Reader
這個方法我已經試出來了
但因為我實在是太累(已經頭痛了)
所以現在不想詳細解說
不過可以給一些提示
就是使用avisynth(其實不會很麻煩)
如果真的對這個方法很有興趣想要知道的話
就回文章吧,我看到後再找時間寫


------------------

我也只是一個新手罷了,所以請大家多多指教
 
舊 2000-12-23, 05:20 PM #2
回應時引用此文章
lwb離線中