2016-02-28 98 views
1

我发现了两个单独的命令,我想要合并。一个以管道输入:ffmpeg - 从管道输入中提取字幕?

ffmpeg -i pipe:0

,另一个用于从.ts文件中提取字幕:

ffmpeg -i "movie=file.ts[out0+subcc]" -map s output.srt

但我不知道如何把它们混合起来。

ffmpeg -i "movie=pipe:0[out0+subcc]" -map s output.srt

不起作用。我是一个ffmpeg新手,所以有什么想法?

+0

尝试'ffmpeg -i pipe:0 -lavfi“[0] copy [out0 + subcc]”-map s output.srt' - 这是一个管道输入,因此不知道字幕提取如何表现。 – Mulvya

+0

不幸的是,这不起作用,但我看到了不同的输入描述 - 当用'Program 174'和5个流(视频是#0:1)管道它的'mpegts'时,它的文件是'lavfi',只有两个流 - 视频是#0:0。有任何想法吗? – Alastair

+0

然后尝试'ffmpeg -analyzeduration 20M -i pipe:0 -lavfi“[0:1] copy [out0 + subcc]”-map s output.srt' – Mulvya

回答

0

该解决方案需要在“管道”后冒出冒号。

根据您的外壳,并引用规则,你会从2个反斜线需要...好,谁知道:-)

这里是为我工作:

cat input.ts | ffmpeg -f lavfi -i 'movie=pipe\\:0[out+subcc]' -map s output.srt

如果使用双引号,你需要至少一个反斜杠:

cat input.ts | ffmpeg -f lavfi -i "movie=pipe\\\:0[out+subcc]" -map s output.srt

来源: https://trac.ffmpeg.org/ticket/5229