clubaudition 發表於 2011-5-22 18:31:50

Avisynth之ts拼接處理的寫法(影像破格損毀修復)

本文章最後由 clubaudition 於 2011-5-22 18:48 編輯



在此以名偵探柯南動畫來做Demo
狀況:
錄影的時候出了點小問題 導致OP部分幀破格 這種情形是無法修復的 所以採用拼接的方式 至於怎麼拼呢 繼續看下去
修復的方向思考:
將上一集的OP的這個部分的幀數給抓出來 然後轉嫁覆蓋到最新這集OP上
等於是
01.ts_片段+02.ts_o片段+02.ts (以下假設為01.ts .02.ts) 3合一的拼接完成 偷懶一點可以整個OP部分移花接木
但是會有音軌對不上的窘境
為什麼呢 因為名偵探柯南雖然這一期的OP相同 但是最前面的柯南口白部分是不同的 其實是很少人會注意到這方面 可以呼弄過去
但是碰到厲害的一下子就抓出來了 為了避免遇上挑毛病的人 必須要影片跟音軌接的完美無暇.
運氣比較好的是 剛好破格的幀 並不屬於口白範圍 所以音軌部分就不需要這麼麻煩了 可以直接使用最新這集的.

開始分別為分離分析影片參數 先做好基本的avs編輯 剪接掉廣告那些部分保持本片
接下來我們先開始尋找01.ts的幀數 此範圍要剛好等於 02.ts的破格幀 多一幀 少一幀都不可以
找到以後先分別trim (xxx,xxx) 起來做好準備

01.ts 自動分析出來的avs
LoadPlugin("C:\Program Files\MeGUI\tools\dgindex\DGDecode.dll")
DGDecode_mpeg2source("F:\work\01.d2v", info=3)
LoadPlugin("C:\Program Files\MeGUI\tools\avisynth_plugin\ColorMatrix.dll")
ColorMatrix(hints=true, interlaced=true, threads=0)
LoadPlugin("C:\Program Files\MeGUI\tools\avisynth_plugin\TIVTC.dll")
tfm(order=1).tdecimate(mode=1,hybrid=1)
crop( 0, 4, 0, 0)

LanczosResize(1280,720)

02.ts 自動分析出來的avs
LoadPlugin("C:\Program Files\MeGUI\tools\dgindex\DGDecode.dll")
DGDecode_mpeg2source("F:\work\01.d2v", info=3)
LoadPlugin("C:\Program Files\MeGUI\tools\avisynth_plugin\ColorMatrix.dll")
ColorMatrix(hints=true, interlaced=true, threads=0)
LoadPlugin("C:\Program Files\MeGUI\tools\avisynth_plugin\TIVTC.dll")
tfm(order=1).tdecimate(mode=1,hybrid=1)
crop( 0, 4, 0, 0)

LanczosResize(1280,720)

假設抓好的破格幀 trim(2527, 2589)

然後我們可以開始拼接為
SetWorkingDir("C:\Program Files\AviSynth 2.5\plugins\")
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\\ColorMatrix.dll")
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\TIVTC\TIVTC.dll")
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\DGDecode.dll")

v1 = DGDecode_mpeg2source("F:\work\02.d2v", info=3).tfm(order=1).tdecimate(mode=1,hybrid=1).crop( 0, 4, 0, 0).LanczosResize(1280,720).trim(0, 2333)
#02.ts 影片開始至破格幀 轉換至PC上播放可加ConvertToYV12() (usr tv --> pc conversion)
v2 = DGDecode_mpeg2source("F:\work\01.d2v", info=3).tfm(order=1).tdecimate(mode=1,hybrid=1).crop( 0, 4, 0, 0).LanczosResize(1280,720).trim(2527, 2589)
#01.ts 影片 破格幀的範圍 此為02.ts 毀損幀的部分利用01.ts來補
v3 = DGDecode_mpeg2source("F:\work\01.d2v", info=3).tfm(order=1).tdecimate(mode=1,hybrid=1).crop( 0, 4, 0, 0).LanczosResize(1280,720).trim(2397, 35719)
#02.ts 破格幀以後的本片

v4 = v1 + v2 + v3

return v4

這個avs的結果預覽播放 就是24:49 不多不少剛剛好 (柯南每一集都是24:49)


大致上就這樣囉 可能很多人看了霧煞煞 可以自己用繪圖的方式 以線段來表示影片的段落就比較能明白了
其實MeGUI預設的.tfm(order=1).tdecimate(mode=1,hybrid=1) 這樣的反交錯方式是錯誤的
不能用於所有的HDTV的 這部分就不多談了 得先學會用肉眼去判斷出影片的格式 (術語 幾爛 幾幀)
反交錯弄得不對 成品就會有分23.976或是29.976 這是非常關鍵的地方 掌握好這部分才能轉出好的反交錯影片.

-小小經驗僅供參考 歡迎有興趣的交流討論謝絕發問.

Hiritsuki 發表於 2011-5-22 22:45:27

那也只有固定的OPED可以這樣...

clubaudition 發表於 2011-5-23 01:24:31

就是阿 如果剛好這周換了新OP.ED 那就沒得補 只能選擇cut或是保留
通常都會cut了 破格通常跑不了幾幀
頁: [1]
查看完整版本: Avisynth之ts拼接處理的寫法(影像破格損毀修復)