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

加入日期: Oct 2002
您的住址: El's room
文章: 1,046
FPSCHK Dec60 AVI60 都是在同一個網頁上下載
http://www.geocities.co.jp/SiliconV...Sunnyvale/3109/

FPSCHK 和 Dec60 在「過去的遺物」裡面。

script 像下面這樣:
LoadPlugin("mpeg2dec.dll")
LoadPlugin("decomb.dll")
LoadPlugin("loadpluginex.dll")
LoadPluginEx("dec60.dll")
Mpeg2Source("120fps.d2v")
Telecide()
Dec60(idxfile="120fps.idx",deint=false)

由於 Dec60 是 Avisynth 2.0x 的 plugin,必須用 LoadPluginEx 才能在 2.5x 版載入。
loadpluginex.dll 在 warpsharp 的包包裡面有附
http://www.geocities.co.jp/SiliconValley-PaloAlto/2382/

Telecide 是 Decomb 的 function,經過 Telecide 後,畫面會還原回 30fps progressive 的畫面,
其中 24p 的部分每五張會有一張重複的,30p 的部分則正常。
本來 Telecide 之後我們會用 Decomb 的另外一個 function Decimate(cycle=5)(我前面寫成 circle,打錯了),把每五張重複的那一張刪除,但是 24p/30p 混合的情況,我們要保留所有 30p 的畫面,只有 24p 的部分才要刪除重複畫面,所以不能用 Decimate,要改用 Dec60。
Dec60 會根據 FPSCHK 分析 .d2v 檔得到的 .idx 索引,刪除 24p 部分重複的那一張,保留 30p 全部的畫面。
然後依照一般的程序送進去壓縮。
壓好的 AVI 再送給 AVI60 去插 null frame,AVI60 會依照索引檔,24p 的部分每一張後面插入四張 null frame,30p 的部分每一張後面插入三張 null frame。
然後就大功告成。
AVI60 只是插入 null frame,不影響你用 Avisynth 處理的結果。

這個方法有兩個缺點:
1. FPSCHK 光靠分析 .d2v 檔,得到的結果不十分正確,通常是不正確的,需要手動指定插入的 pattern,這個請自行研究。
2. 只能用 Decomb 做 IVTC,而 Decomb 做 IVTC,結果並不完美。
可以想辦法和 TMPGEnc 結合,利用 TMPGEnc IVTC 的結果,這個也請自行研究 :P

或者是用 sswroom 兄說的方法,將 24p/30p 切成多段,分開來做,缺點 sswroom 兄已經提過,特別要注意影音不同步的問題,這個很麻煩。
至於不能使用 B-frame,我沒有試過,也許可以用下面的方法解決,將分開處理的 IVTC 好的 24p 和 30p 的部分重新結合在一起,再送進去壓縮,指定 24p/30p 交接的那一張 frame 為 keyframe,DivX 有 EKG 這個工具可以指定 keyframe,XviD 有 StatsReader,dev-api-4 有 Zone 這些工具可以指定 keyframe,或者用其他可以設定 keyframe 的工具壓縮,這樣 24p/30p 交接處的 GOV 自然會變成
... B P B P P I ...

會變成 closed GOV,I 前面一定是 P,這樣壓好以後應該就可以再分割,分別送給 AVI60 插 null frame,然後再結合起來。
以上只是推測,我沒有這樣做過。

讓 Avisynth 讀取 tpr 的方法,Avisynth 有 LoadVFAPIPlugin 的 function,可以讀取任何 VFAPI 的檔案,你只要寫這樣的 script:
LoadVFAPIPlugin("c:\Program Files\Pegasys Inc\TMPGEnc Plus 2.5\TMPGEnc.vfp", "TMPGSource")
TMPGSource("120fps.tpr")
FlipVertical()

即可。

至於 TMPGEnc 如何直接選用 120fps,恐怕沒有辦法直接選用 :P
詳細做法還是請 sswroom 兄來寫好了
舊 2003-08-16, 05:53 PM #79
回應時引用此文章
Shade離線中