如何使用ffmpeg仅连接字幕?

时间:2017-02-26 15:56:57

标签: ffmpeg concatenation subtitle

我在1 mkv容器中分别有4个字幕段。现在我想将它们连接到1个流,这样我就可以将其与视频和音频流进行复用。

我试过

ffmpeg -i "concat:\
22082016-0749_sub_seg1.mkv|\           => 505 KB
22082016-0749_sub_seg2.mkv|\           => 401 KB
22082016-0749_sub_seg3.mkv|\           => 489 KB
22082016-0749_sub_seg4.mkv" \          => 243 KB
-c:s copy -y \
22082016-0749_sub_complete.mkv         => 505 KB, should be ~1638 KB

但这只会复制第一段。

我也试过

ffmpeg -canvas_size 492x250 -fix_sub_duration -txt_format bitmap -txt_page 149 -ss 00:14:12.000 -i 22082016-0749.mts -to 00:27:18.480 -map 0:s:0 -c:s dvd_subtitle -y 22082016-0749_sub_seg1.mkv
ffmpeg -canvas_size 492x250 -fix_sub_duration -txt_format bitmap -txt_page 149 -ss 00:48:57.800 -i 22082016-0749.mts -to 00:26:34.960 -map 0:s:0 -c:s dvd_subtitle -y 22082016-0749_sub_seg2.mkv
ffmpeg -canvas_size 492x250 -fix_sub_duration -txt_format bitmap -txt_page 149 -ss 01:23:14.840 -i 22082016-0749.mts -to 00:26:59.200 -map 0:s:0 -c:s dvd_subtitle -y 22082016-0749_sub_seg3.mkv
ffmpeg -canvas_size 492x250 -fix_sub_duration -txt_format bitmap -txt_page 149 -ss 01:58:03.120 -i 22082016-0749.mts -to 00:19:13.680 -map 0:s:0 -c:s dvd_subtitle -y 22082016-0749_sub_seg4.mkv

(以上命令有效,下面的命令不起作用)

ffmpeg \
-i 22082016-0749_sub_seg1.mkv \
-i 22082016-0749_sub_seg2.mkv \
-i 22082016-0749_sub_seg3.mkv \
-i 22082016-0749_sub_seg4.mkv \
-filter_complex "\
[0:s]trim=0:1638.480,setpts=PTS-STARTPTS[g1];\
[1:s]trim=0:1594.960,setpts=PTS-STARTPTS[g2];\
[2:s]trim=0:1619.200,setpts=PTS-STARTPTS[g3];\
[3:s]trim=0:1140.680,setpts=PTS-STARTPTS[g4];\
[g1][g2][g3][g4]concat=n=4[out]" \
-map [out] -c:s copy -y \
22082016-0749_sub_complete.mkv

这会遇到以下错误:

[mpeg4 @ 0x17da5a0] timebase 1/1000000 not supported by MPEG 4 standard, the maximum admitted value for the timebase denominator is 65535
Stream mapping:
  Stream #0:0 (dvdsub) -> trim
  Stream #1:0 (dvdsub) -> trim
  Stream #2:0 (dvdsub) -> trim
  Stream #3:0 (dvdsub) -> trim
  concat -> Stream #0:0 (mpeg4)
Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height

或者有没有办法直接一步完成这一切,从分割成细分​​并再次将它们合并在一起?

保持持续时间非常重要。

0 个答案:

没有答案