我尝试使用 ffmpeg 将我的 flv 文件转换为 mp4 以在 iOS 设备上播放它们,但转换后的视频质量比原始视频差得多。
这是我使用的命令:
ffmpeg -i input.flv -ar 22050 output.mp4
Run Code Online (Sandbox Code Playgroud)
如果有人能为我提供 flv 到 mp4 转换的最佳设置,我将不胜感激。
Dan*_*tts 47
根据 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
Run Code Online (Sandbox Code Playgroud)
-copyts
是否copy timestamps
有助于音频同步。
如果这不起作用,请尝试强制使用音频和视频编解码器。这将重新编码文件:
ffmpeg -i input.flv -c:v libx264 -crf 23 -c:a aac -b:a 160k output.mp4
Run Code Online (Sandbox Code Playgroud)
如果您只想更改音频或视频编解码器,您可以使用-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
我在顶部建议的命令中获取有关采样率的信息。