使用ffmpeg丢失音频质量的视频转换

时间:2015-02-11 10:01:33

标签: video ffmpeg

当我使用ffmpeg从wmv转换为mp4时,我的音质质量很差。我的ffmpeg命令如下:

ffmpeg -fflags +genpts+igndts -i "1.wmv" -c:v libx264 -preset fast -level 30 \
-qmin 38 -qmax 55 -movflags faststart -r:v 10 -vsync 2 -async 1 -map 0:v,0:a \
-map 0:a "1.mp4"

有人建议我如何在不失去任何质量的情况下转换视频?

4 个答案:

答案 0 :(得分:1)

您没有为音频比特率或质量设置任何选项,这意味着ffmpeg将选择配置的最佳AAC编码器(可能是libvo-aacenclibfaac),它将选择默认的音频比特率。

由于您正在使用有损编解码器转换已经压缩的内容,因此您将失去更高的质量。

尝试使用-b:a 192k或更高版本设置音频比特率。对于LC-AAC,通常128 kBit / s就足够了,但是如果您的源是压缩的。

您可能希望使用--enable-libfdk-aac配置/编译ffmpeg并使用-b:a libfdk-aac,并使用-vbr 4甚至-vbr 5。请阅读AAC encoding guide了解更多信息。

因此,例如,使用此命令。我建议您不要设置qminqmax,而应该使用CRF encoding。设置qminqmax后,您的视频质量受到太多限制:

ffmpeg -i "1.wmv" -c:v libx264 -preset fast -level 30 -crf 23 \
-c:a aac -strict experimental -b:a 192k \
-movflags faststart \
-r:v 10 "1.mp4"

我认为您确实希望将视频帧速率降低到10 fps。如果没有,请删除-r:v。我删除了flagsvsync / async选项,因为我认为它们对您的命令不是必需的。

答案 1 :(得分:0)

使你的qmin为10,qmax为38并使用-quality good。 Qmin和Qmax是控制媒体质量的产品。你也可以包括 - 为了更好的表现,你的命令很好。

ffmpeg -fflags +genpts+igndts -i "1.wmv" -quality good -c:v libx264 -preset fast -level 30 \ -qmin 10 -qmax 38 -movflags faststart -r:v 10 -vsync 2 -async 1 -map 0:v,0:a \ -map 0:a "1.mp4"

答案 2 :(得分:-1)

进行无损转换,请设置-acodec copy

答案 3 :(得分:-2)

ffmpeg -i source.mpg -sameq output.mp4

不需要复杂的代码,以上不会影响质量。