我试图使用ffmpeg将我的flv文件转换为mp4,以便在iOS设备上播放这些文件,但转换后的视频的质量比原始视频差得多。
这是我使用的命令:
ffmpeg -i input.flv -ar 22050 output.mp4
如果有人可以为我提供从flv到mp4转换的最佳设置,我将不胜感激。
我试图使用ffmpeg将我的flv文件转换为mp4,以便在iOS设备上播放这些文件,但转换后的视频的质量比原始视频差得多。
这是我使用的命令:
ffmpeg -i input.flv -ar 22050 output.mp4
如果有人可以为我提供从flv到mp4转换的最佳设置,我将不胜感激。
Answers:
根据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 libfaac -q:a 100 output.mp4
为了提高视频质量,您可以使用较低的CRF值,例如任何低至18的文件。要获得较小的文件,请使用较高的CRF,但是请注意,这会降低质量。
要提高音频质量,请使用更高的质量值。对于FAAC,100
是默认设置。
这是关于问题中建议的ffmpeg命令的几点想法。
-ar
指音频采样率。我建议您不要对此一无所知,除非您对它有所了解。如果要播放音频编码,请调整比特率(例如-b:a 128k
),然后让编码器选择要执行的操作。
如果您确实走了这条路...
CD质量为44100Hz采样; 典型的视频使用48000Hz。
您可能会注意到,原始问题示例中的22050是cd质量采样率的1/2。如果您要向下转换CD资料,这是一个不错的选择。如果您从48KHz信号源开始(您可能是这样;同样,在视频文件中这比44100更为常见),我会改用24Khz。可能无关紧要,但是听起来可能会好一点,并使用更少的CPU进行转换。
ffmpeg
不再支持libaac
。 这个问题建议使用ffmpeg
的本机AAC编码器通过 -c:a aac
或Fraunhofer FDK AAC编解码器通过 -c:a libfdk_aac
(需要ffmpeg
对进行支持libfdk_aac
)进行编译。