如何为直接使用字幕流刻录字幕的ffmpeg编写过滤器

如何为直接使用字幕流刻录字幕的ffmpeg编写过滤器,ffmpeg,Ffmpeg,假设我有一个带有视频流、音频流和字幕流的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,在我的电脑上约2

假设我有一个带有视频流、音频流和字幕流的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。 但我不知道从哪里开始

有人能帮我开始吗


谢谢

您正在寻找基于图片的模式

 ffmpeg -i input.mkv -filter_complex "[0:v][0:s]overlay[v]" -map [v] -map 0:a <output options> output.mkv
这里,我们在第一个视频0:v上映射1st0:s字幕流


更详细地描述了

Hi,我的问题更多的是关于编写一个ffmpeg可用的过滤器,而不是关于使用ffmpeg命令行,因为看起来没有合适的命令行。我很确定这是个合适的地方。请再次阅读我之前的评论。好的,我刚刚编辑了我的问题,以使我的需求更加准确。已经尝试过:但如果字幕编解码器不是基于图片的,它现在看起来可以工作了。我将尝试查找一个小文件。但任何带有ASS或SRT字幕流的MKV都是不错的。