[詢問]關於AVC編碼的 交錯式TS 處理
发表于 : 2013-06-18 20:58
日前拿到了一些片原是ATX-HD的,該台是以264的編碼播送
眾所周知dgavcindex的花屏問題幾乎無法修正
而其他諸如dgindexnv,dgavcdecdi
一個是綁定平台必須有NV顯示卡和要花錢(15美金,破解版不在考慮範圍)
一個是要花15+10美金來買2個不同東西
開銷有點大,所以最後選擇使用FFMS2
但是這東西處理循序式影像是OK,交錯式影像卻有時會RP 而且為了確保處理過程都必須使用線性處理
這樣變得難以解交錯,且出來的幀數是原來的2倍,FPS也變成2倍
於是之後找上了LWLibavVideoSource來進行解碼
過程不再RP以及可以進行非線處理了
但或許是這東西也是基於FFMPEG進行修改的,所以有些(目前遇過3部,算多了)
影像FPS會提高為2倍,且幀數也增加為2倍
畫面並未解交錯或是依然殘留交錯(目前我分辨不出來是何種,但看起來像前者,大約是每10幀有4幀交錯)
所以我用
來消除其中一半的幀,並且確保畫面幀速為原速(29.970)
這樣處理下來是可以正常解交錯(比如用TIVTC或AAD)
並且出來的影像畫面正常,且速率也變為23.976
就結果來說好像是OK了,但是我對SelectEven()這一個處理步驟有些存疑
是否有了解LWLibavVideoSource運作方式的大大可以解釋下,FPS翻倍的問題
以及我這樣處理是否OK?是否只是這幾片剛好可這樣處理
眾所周知dgavcindex的花屏問題幾乎無法修正
而其他諸如dgindexnv,dgavcdecdi
一個是綁定平台必須有NV顯示卡和要花錢(15美金,破解版不在考慮範圍)
一個是要花15+10美金來買2個不同東西
開銷有點大,所以最後選擇使用FFMS2
但是這東西處理循序式影像是OK,交錯式影像卻有時會RP 而且為了確保處理過程都必須使用線性處理
代码: 全选
setmemorymax(3072)
LoadPlugin("C:\Users\eric888a\Desktop\MeGUI\tools\ffms\ffms2.dll")
FFIndex("C:\Users\eric888a\Desktop\XX.ts", demuxer="lavf")
FFVideoSource("C:\Users\eric888a\Desktop\XX.ts", seekmode=-1, threads=1)
於是之後找上了LWLibavVideoSource來進行解碼
代码: 全选
setmemorymax(3072)
LWLibavVideoSource("C:\Users\eric888a\Desktop\自由源\我妹.ts",cache=true, threads=0)
但或許是這東西也是基於FFMPEG進行修改的,所以有些(目前遇過3部,算多了)
影像FPS會提高為2倍,且幀數也增加為2倍
畫面並未解交錯或是依然殘留交錯(目前我分辨不出來是何種,但看起來像前者,大約是每10幀有4幀交錯)
所以我用
代码: 全选
SelectEven()
AssumeFPS(30000,1001)
這樣處理下來是可以正常解交錯(比如用TIVTC或AAD)
並且出來的影像畫面正常,且速率也變為23.976
就結果來說好像是OK了,但是我對SelectEven()這一個處理步驟有些存疑
是否有了解LWLibavVideoSource運作方式的大大可以解釋下,FPS翻倍的問題
以及我這樣處理是否OK?是否只是這幾片剛好可這樣處理