假设我有一个带有视频流,音频流和字幕流的MKV。
我想直接从字幕流中将这个副标题刻录到我的视频中。
到目前为止,这是我的命令行:
ffmpeg.exe -i "MyMovie.mkv" -map 0:0 -map 0:1 -vf subtitles=sub.srt out.mkv
到目前为止一切顺利。但是,我的字幕在电影里面,我需要先提取它们。我用过这个:
ffmpeg.exe -i "MyMovie.mkv" -f srt sub.srt
但是这个操作太长了:在我的电脑上用于2.5Go MKV约25秒。我需要更快的东西,因为我需要尽快开始将输出流式传输到应用程序。 (我没有提到我用来正确实现此流式传输的其他命令行参数,因为我的问题与此无关。)
我知道不可能像这样直接获取流:
ffmpeg.exe -i "MyMovie.mkv" -map 0:0 -map 0:1 -vf subtitles=[0:s:0] out.mkv
但这是我喜欢的东西。
编辑:
但我已经知道这种命令行不存在。 (但如果我错了,请告诉我。)
现在,我想自己编写这种过滤器,并用它编译ffmpeg。 但我不知道从哪里开始。
任何人都可以帮助我开始吗?
谢谢
答案 0 :(得分:0)
您正在寻找“基于图片”模式
ffmpeg -i input.mkv -filter_complex "[0:v][0:s]overlay[v]" -map [v] -map 0:a <output options> output.mkv
这里我们在第一个视频(0:v)上映射第一个(0:s)字幕流
详细介绍了here