2015-06-08 268 views
1

我正試圖執行算法將yuvj420p轉換爲yuv420p。兩種格式之間的區別是範圍值。從yuvj420p轉換爲yuv420p格式

yuvj420p [0-255]和YUV420P [16-239]

我想知道如何將值適應新的範圍。

回答

3

有點晚了,但爲了將來的參考,萬一它幫助任何人,這裏是如何處理與FFmpeg這個問題。

從After Effects導出未壓縮的AVI時,有時FFmpeg轉換似乎缺少對比度,就好像該範圍正在壓縮一樣。添加

-pix_fmt yuvj420p 

...在使用libx264進行編碼時,可以解決這個問題。然而,在webm(VP8)等不支持這種像素格式的格式中,我發現options of the scale filtergraph允許我調整範圍,而保留在yuv420p中,這可能對您的情況更有幫助,並且在任何情況下yuvj420p可能不受支持。嘗試添加此標誌:

-vf "in_range=mpeg:out_range=full" 

從文檔:

in_rangeout_range:設置輸入/輸出的YCbCr樣品範圍。

這允許覆蓋自動檢測值,並允許 強制使用輸出和編碼器的特定值。如果未指定 ,則範圍取決於像素格式。

所以,在我的情況下,整個命令結束這樣看:

ffmpeg -i master.mp4 -c:v libvpx -crf 12 -vf "scale=300:-1:in_range=mpeg:out_range=full, crop=300:168" -b:v 1M -c:a libvorbis -b:a 64k -ac 1 output_from_mp4_ranged.webm