如何使用ffprobe从MKV文件中提取字幕并像cat命令一样显示内容?
直接在终端打印MKV文件字幕内容(无需先导出)
首先明确:ffprobe做不到直接提取并打印字幕文本——它的核心作用是分析媒体文件的元数据、流信息,没有提取流内容并输出文本的功能。要实现和cat字幕文件一致的终端打印效果,得用ffmpeg来完成,步骤如下:
先用ffprobe确认字幕流的索引和格式
先运行这条命令查看MKV里的所有字幕流信息:ffprobe -v error -select_streams s -show_entries stream=index,codec_name -of csv=p=0 input.mkv输出示例:
0,srt 1,ass这里
0是字幕流索引,srt是字幕格式,根据你要选的字幕记下对应的索引。用ffmpeg直接将字幕输出到终端
根据字幕格式选择对应命令:- 如果是SRT格式字幕(对应索引0):
ffmpeg -v error -i input.mkv -map 0:s:0 -f srt - - 如果是ASS格式字幕(对应索引1):
ffmpeg -v error -i input.mkv -map 0:s:1 -f ass -
命令里的
-表示把输出定向到标准输出(也就是终端),执行后就能直接看到字幕内容,效果和用cat打开字幕文件完全一致。- 如果是SRT格式字幕(对应索引0):
注意:如果MKV里的字幕是图像型字幕(比如PGS格式),这种本身不是文本格式,没法直接输出成可阅读的文本内容,只能导出为图像文件,这种情况就不适用上述方法。
内容的提问来源于stack exchange,提问作者Felipe9
相关产品推荐
相关产品推荐

