显示字幕列表,获取每个字幕轨道的ID和名称

use*_*r25 3 ffmpeg

我想获得所有可用字幕轨道的一些列表,例如:

#1 - id, name
#2 - id, name
#3 - id, name
...
Run Code Online (Sandbox Code Playgroud)

因此清单会告诉我我有多少条字幕轨道,并显示每条轨道的ID和名称

是否有FFmpeg显示此列表的选项?

llo*_*gan 7

ffprobe 列出流ID和语言的命令:

ffprobe -loglevel error -select_streams s -show_entries stream=index:stream_tags=language -of csv=p=0 input.mkv
Run Code Online (Sandbox Code Playgroud)

结果

5,eng
6,fao
7,ain
Run Code Online (Sandbox Code Playgroud)

这显示流ID#5是英语,#6是法罗语,#7是阿伊努语。

-map 选项

您可以使用此信息来创建命令。如果要使用英语和阿伊努语,请使用:

-map 0:5 -map 0:7
Run Code Online (Sandbox Code Playgroud)

要么

-map 0:s:0 -map 0:s:2
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅-map选件文档


use*_*r25 1

FFmpeg好像没有这个选项

所以我们只能通过ffmpeg -i VIDE_FILE_NAME(过滤掉非流文本轨道行)来解析所有打印数据

而且 FFmpeg 并不真正打印该 ID(它只是 FFmpeg 生成的流位置),就像 MediaInfo 会打印的那样