我尝试使用 ffmpeg 将我的 flv 文件转换为 mp4 以便在 iOS 设备上播放它们,但转换后的视频质量比原始视频差很多。
这是我使用的命令:
ffmpeg -i input.flv -ar 22050 output.mp4
如果有人能为我提供 flv 到 mp4 转换的最佳设置,我将不胜感激。
答案1
根据 FLV 中使用的编解码器,您可能只需将其重新包装在 mp4 容器中即可。您需要H.264
视频MPEG4 simple profile
和AAC
音频。您可以使用ffmpeg -i input.flv
我不确定仅使用 H.264/MPEG4 Simple + AAC 是否足够好,或者是否有受支持的编解码器的特定选项。测试起来很容易:
尝试使用
ffmpeg -i input.flv -c copy -copyts output.mp4
-copyts
是copy timestamps
。这将有助于音频同步。
如果这不起作用,请尝试强制音频和视频编解码器。这将重新编码文件:
ffmpeg -i input.flv -c:v libx264 -crf 23 -c:a aac -b:a 160k output.mp4
如果您只想更改音频或视频编解码器,则可以使用-c:a copy
或-c:v copy
复制您想要保留的编解码器。
为了提高转码时使用的视频质量,您可以使用较低的 CRF 值,例如低至 18 的任何值。为了获得较小的文件,请使用较高的 CRF,但请注意,这会降低质量。
为了提高音频质量,请选择更高的比特率(上例中为 160k)。
音频和视频质量都会因源的质量而有所不同。请注意,对于任何原始源,您能做的事情是有限的 - 最多只能得到与源相同的质量。尝试不同的质量级别和/或比特率绝对是值得的。
有关 FFMPEG aac 编码的更多信息(我一直指的是 ffmpeg 网站上描述的“本机”编码器)。
关于问题中建议的 ffmpeg 命令......
-ar
指的是音频采样率。我建议不要乱动这个参数。如果你想玩音频编码,请调整比特率(-b:a 160k
上面),然后让编码器根据该比特率选择要做什么。
不过,就背景而言,CD 质量是 44100Hz 采样;典型视频使用 48000Hz。
您可能注意到,原始问题示例中的 22050 是 CD 质量采样率的 1/2。如果您要下变频 CD 材料,这将是一个不错的选择。如果您从 48KHz 源开始,我会改用 24Khz。(但同样,我建议只选择一个目标比特率,并让编码器在需要时更改采样率。)
ffmpeg -i
您应该从我在上面建议的命令中获取有关原始材料采样率的信息。