我尝试使用谷歌搜索一种使用 ffmpeg 设置字幕流语言的方法,并找到了 -slang 选项。所以我尝试了以下命令,但立即收到错误:
ffmpeg -i input.avi -i subs.srt -c:a copy -c:s mov_text -slang eng -c:v libx264 -profile:v high -level:v 4.0 output.mp4
ffmpeg version 1.1 Copyright (c) 2000-2013 the FFmpeg developers
built on Jul 18 2013 23:00:53 with Apple clang version 4.0 (tags/Apple/clang-421.0.60) (based on LLVM 3.1svn)
libavutil 52. 13.100 / 52. 13.100
libavcodec 54. 86.100 / 54. 86.100
libavformat 54. 59.106 / 54. 59.106
libav 设备 54. 3.102 / 54. 3.102
libavfilter 3. 32.100 / 3. 32.100
libswscale 2. 1.103 / 2. 1.103
libswresample 0. 17.102 / 0. 17.102
libpostproc 52. 2.100 / 52. 2.100
无法识别的选项“俚语”。
拆分参数列表时出错:找不到选项
经过更多谷歌搜索后,我找到了另一种使用 -metadata 命令的方法:
ffmpeg -i input.mp4 -i subs.srt -c:a copy -c:v copy -c:s mov_text -metadata:s:s:0 language=eng output.mp4
这绝对没问题。但这在 ffmpeg 手册页中没有提到,而 -slang 是,这让我认为 -metadata 命令可能已经过时或者在其他方面不如 -slang。
- 使用上述两种方法(-slang vs -metadata)有什么区别?
- 为什么我的 -slang 命令会出错?我用错了吗?