FFMPEG - 如何在不更改任何其他内容的情况下将语言标记添加到流中?
FFMPEG - How to add a language tag to a stream without changing anything else?
我一直在尝试使用 ffmpeg 并尝试学习如何更好地使用它 - 它非常强大并且似乎有很多选择,所以我想我会尝试做一些事情来学习数量映射和标签等
该文件没有什么特别之处 - 它只是一个小的测试 MKV 文件,我可以在尝试时快速 运行 通过。
目前,我正在尝试向 MKV 文件中的视频流添加语言标签,但它没有按预期工作(至少对我来说是这样!)
文件(input.mkv)有四个流:
流 #0:0:视频:h264(主要)
流 #0:1(eng):音频:ac3
流 #0:2(eng):副标题
流 #0:3(eng):副标题
如您所见,其中三个流被标记为英语(英语),但视频流不是。我意识到视频可能不经常用语言标记,但我只是想了解这一切是如何工作的。
这是我正在使用的命令:
ffmpeg -i input.mkv -metadata:s:v:0 language=eng -codec copy mkv.ext
我 认为 这意味着,只是将语言标签 = 'eng' 设置为第一个视频流 (0:0),它确实如此,但是由于某种原因,它还从 output.mkv 文件中删除(或省略)第二个字幕流 (0:3),因此我在 output.mkv 中得到的是:
流 #0:0(eng):视频:h264(主要)
流 #0:1(eng):音频:ac3
流 #0:2(eng):副标题
这样我们就成功地把 'eng' 标签添加到视频流中了,但是不知怎么的,第二个字幕流丢失了。
问题:
实现我想要的目标的正确命令是什么?
请帮助我理解我遗漏了什么导致第二个字幕流被删除?
谢谢,
艾伦.
添加 -map 0
以在输出中包含来自输入 0 的所有流。
阅读http://ffmpeg.org/ffmpeg.html#Stream-selection,尤其是关于自动流选择的部分,详细了解 ffmpeg 如何选择流。
我一直在尝试使用 ffmpeg 并尝试学习如何更好地使用它 - 它非常强大并且似乎有很多选择,所以我想我会尝试做一些事情来学习数量映射和标签等
该文件没有什么特别之处 - 它只是一个小的测试 MKV 文件,我可以在尝试时快速 运行 通过。
目前,我正在尝试向 MKV 文件中的视频流添加语言标签,但它没有按预期工作(至少对我来说是这样!)
文件(input.mkv)有四个流:
流 #0:0:视频:h264(主要)
流 #0:1(eng):音频:ac3
流 #0:2(eng):副标题
流 #0:3(eng):副标题
如您所见,其中三个流被标记为英语(英语),但视频流不是。我意识到视频可能不经常用语言标记,但我只是想了解这一切是如何工作的。
这是我正在使用的命令:
ffmpeg -i input.mkv -metadata:s:v:0 language=eng -codec copy mkv.ext
我 认为 这意味着,只是将语言标签 = 'eng' 设置为第一个视频流 (0:0),它确实如此,但是由于某种原因,它还从 output.mkv 文件中删除(或省略)第二个字幕流 (0:3),因此我在 output.mkv 中得到的是:
流 #0:0(eng):视频:h264(主要)
流 #0:1(eng):音频:ac3
流 #0:2(eng):副标题
这样我们就成功地把 'eng' 标签添加到视频流中了,但是不知怎么的,第二个字幕流丢失了。
问题:
实现我想要的目标的正确命令是什么?
请帮助我理解我遗漏了什么导致第二个字幕流被删除?
谢谢,
艾伦.
添加 -map 0
以在输出中包含来自输入 0 的所有流。
阅读http://ffmpeg.org/ffmpeg.html#Stream-selection,尤其是关于自动流选择的部分,详细了解 ffmpeg 如何选择流。