其實如果認定你看的DVD是正確比例
那
DAR=1.333=4:3=傳統電視長寬比值
FAR=1.5=3:2=NTSC高寬比值
AVICodec測得的解析度應該會是 720*480(標準NTSC DVD-Video)
但實際player播放時是 640*480 ※因為DAR=4:3,高(480)不變的話寬就是640
所以請用
BilinearResize(640 ,480)
做最後輸出
Q:FAR,PAR,DAR如何计算
A:用 GSpot Codec Information ^^
至於變形問題先要了解一下
FAR 影格比例 (Frame Aspect Ratio)
- the width to height ratio of the pixel count, as internally stored in compressed form.
(也就是壓製時的視訊影格 寬及高 的比值)
PAR 像素比例 (Pixel Aspect Ratio)
. Multiply this by fame aspect ratio (FAR) to get display aspect ratio (DAR).
(PAR 與FAR 相乘 就可得到 顯示的高寬比DAR)
DAR (螢幕)畫面比例 (Display Aspect Ratio)
- the width to height ratio of the display screen, as measured inches or cm, not pixels.
(這個值告訴player此片是什麼顯示比例,大部分的電腦/TV 螢幕的DAR都為4:3)
那這些有何用
.player(播放器)是一個Decoder與修飾filter的總成
.decoder只會參考FAR(其實這是個虛有值,實際記錄的還是 width、height)
又壓製時(Encoder)會先调用decoder,而不像player會智慧的使用 修飾filter及參考PAR、DAR
所以才會造成看與壓製出來 高、寬不一樣
回到主題 "怎樣调整才能保證畫面不變形"
1.就前言 FAR x PAR = DAR
2.在 AVI(用AVI泛指大多數影音檔)裡其 PAR 一定是 1.000
(這是虛擬值因為我們假定不去在意使用者用什麼像素比例的螢幕)
3.在 DVD(非低解析度)裡其 FAR 也是固定的 (當然 PAL與NTSC 是不同的)
4.(假設電視與電腦螢幕比一樣)則 DVD的FAR*PAR 就要等於 AVI的FAR*PAR
因此 我們壓製AVI時就要调整 FAR(到此有點廢話連篇 ^^||)
就是壓製時請调用 resize filter
resize時的高寬值如何設定呢?
首先看您要 固定高 還是 固定寬
藉由 (固定的寬/高)值 * (寬高/高寬)比 = (高/寬)值
即可知道 resize時的 [高][寬]值
我們常可看到
Crop(X,Y,W,H)
Lanczos3Resize(newW,newH).AddBorders(BW1,BH1,BW2,BW2)
這種組合方式
Q:又是怎麼一回事呢?
A:原因在於要將字幕顯示在黑邊上,而所觀賞用的螢幕是非16:9的電腦銀幕
※從AVI還原回TV觀看用的VOB比較麻煩這裡就不討論了
=========
回到樓主另一個問題
Q:用XVID編碼後變為1.500,1.000,1.333,畫面明顯變扁
A:因為 1.5* 1.0 ≠ 1.333,所以畫面才會變形,除非您用PAR=0.888的螢幕