當前位置: 首頁>>技術教程>>正文


使用 ffmpeg 將 mp4 轉換為相同的 high-quality avi 文件?

問題描述

我想使用 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

參考資料

本文由Ubuntu問答整理, 博文地址: https://ubuntuqa.com/zh-tw/article/12273.html,未經允許,請勿轉載。