我尝试在谷歌上搜索如何使用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
libavdevice 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
未识别选项“slang”。
在分割参数列表时出错:未找到选项
通过更多的搜索,我发现另一种使用元数据命令来完成的方法:
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手册中没有提到-metadata命令,而有关-slang的内容,这使我想到-metadata命令可能已经过时或者在某些方面不如-slang命令。
- -slang和-metadata的使用方法有何不同?
- 为什么我的-slang命令会出错?我使用不正确吗?