n61*_*007 26 encoding ffmpeg decoding video-conversion audio-conversion
我希望现在能够多次这样做,所以我问。
如果我有一个现有的视频或音频文件,ffmpeg,mplayer和其他媒体播放器至少可以检测到一些它的“propreties”之类的容器,编解码器和比特率时,可能各项质量和编码特定的设置等。
如何从现有文件中提取这些设置以便(直接)使用它们进行 ffmpeg 编码?
例如,我得到了一个使用一些设置mkv编码的视频x264和另一个未压缩的avi文件。我想“复制”用于 x264 mkv 文件的编码设置,以使用相同的设置对 avi 进行转码。
注意:我正在寻找一种无需人工将设置从解码器“翻译”到编码器的方法。如果我需要先提取设置并将其保存在某处,那没关系,但我希望能够简单地将读取选项提供给命令行或 ffmpeg 的预设|配置文件。
slh*_*hck 13
没有自动方法可以做到这一点。您必须查看原始文件的参数并将它们应用于输出文件。
在大多数情况下,这些将如下所示:
但是,即使您没问题,某些设备也可能需要在比特流中嵌入特定的专有信息。
至于使用的具体任务x264,这不会是微不足道的。我不知道有一个脚本可以处理这些任务,这些任务通常是手动完成的。有关编码设置的更多信息,在 Unix/Linux 或 OS X 上,您可以使用mediainfo一些 Bash 技巧。
例如,对于 MP4 文件中的 x264 编码视频:
mediainfo input.mp4 | grep "Encoding settings" | cut -d':' -f2- | tr '/' '\n' | sed 's/ //'
Run Code Online (Sandbox Code Playgroud)
这将输出 x264 选项列表:
cabac=1
ref=3
deblock=1:-1:-1
analyse=0x3:0x113
me=hex
subme=7
psy=1
…
Run Code Online (Sandbox Code Playgroud)
然后您可以手动将这些选项传递给 x264 二进制文件。
如果您通过 FFmpeg,那会稍微复杂一些,因为并非所有 x264 的选项都可以或应该像这样映射。请注意,通常一个简单的预设、调整和配置文件规范也可以(如x264 --fullhelp和x264 编码指南中所见),并且指定 CRF 级别就足够了。
这甚至没有考虑音频,幸运的是,没有那么多选择。