問題描述
我想使用 ffmpeg 將 mp4 視頻文件轉換為 avi 但質量相同,即使它占用更多空間。如果我隻是這樣做:
ffmpeg -i file.mp4 file.mp4.avi
生成的 avi 文件非常 low-quality 和像素化。如何在保持視頻和音頻質量的同時進行這種轉換?
最佳答案
每當您從一個編解碼器轉碼到另一個編解碼器(視頻或音頻)時,您總是會損失一點質量,但如果您隻想從 MP4 容器類型更改為 AVI 容器,也許可以避免這種情況。如果您沒有理由轉碼,codec:copy
可能會有所幫助(它應該更快)。
如果您必須轉碼,因為您需要使用特定的視頻編解碼器,我希望您可以使用上麵 zetah 在他的評論中的建議並使用 -sameq
開關。或者,您可能希望使用 qscale
選項手動設置質量。數字越小質量越好,但文件占用的空間也越大。
上次我對視頻進行轉碼時,我使用了 qscale=8.0
,但我建議您嘗試找到與輸入質量相匹配的最佳值。
Marty Jay 很有幫助地提到,sameq 意味著與輸入中的量化器相同,這可能不會產生相同的質量。他引用的文章提到使用 multi-pass 轉換,這是在不犧牲質量的情況下實現更好壓縮的好方法。
次佳答案
我的解決方案:
ffmpeg -i filename.mp4 -vcodec copy -acodec copy filename.avi
享受!!
第三種答案
這是我不時使用的 2-pass(高級簡單配置文件)。
第 1 關:
ffmpeg -i file.mp4 -vcodec mpeg4 -vtag XVID -b 990k -bf 2 -g 300 -s 640x360 -pass 1 -an -threads 0 -f rawvideo -y /dev/null
通過 2:
ffmpeg -i file.mp4 -vcodec mpeg4 -vtag XVID -b 990k -bf 2 -g 300 -s 640x360 -acodec libmp3lame -ab 128k -ar 48000 -ac 2 -pass 2 -threads 0 -f avi file.avi