如何使用 ffmpeg 刻录字幕和转码直播流

如何使用 ffmpeg 刻录字幕和转码直播流

我尝试对直播流进行转码并缩放视频,我已使用此命令成功完成此操作:

ffmpeg -i "udp://@239.253.251.14:5505?overrun_nonfatal=1&fifo_size=50000000" -vf scale=720:576 -b:v 2600k -maxrate 4M -bufsize 4M -b:a 128k -f mpegts "udp://@239.253.251.15:5505?overrun_nonfatal=1&fifo_size=50000000&pkt_size=1316&&buffer_size=10000000"

但现在我必须从同一源刻录字幕并将其与缩放后的视频一起输出。我不知道该怎么做。如能得到任何帮助我将不胜感激。以下是源流:

Input #0, mpegts, from 'udp://@239.253.251.14:5505':
  Duration: N/A, start: 29246.522044, bitrate: N/A
  Program 761
    Metadata:
      service_name    : ?
      service_provider: ?
    Stream #0:0[0x105]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p(tv, bt709, top first), 1920x1080 [SAR 1:1 DAR 16:9], 25 fps, 50 tbr, 90k tbn, 50 tbc
    Stream #0:1[0xe1b](eng): Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, fltp, 192 kb/s
    Stream #0:2[0x1203](srp): Subtitle: dvb_subtitle ([6][0][0][0] / 0x0006)
    Stream #0:3[0x1204](slv): Subtitle: dvb_subtitle ([6][0][0][0] / 0x0006)
    Stream #0:4[0x1205](mkd): Subtitle: dvb_subtitle ([6][0][0][0] / 0x0006)
    Stream #0:5[0x1206](hrv): Subtitle: dvb_subtitle ([6][0][0][0] / 0x0006)
    Stream #0:6[0x1207](alb): Subtitle: dvb_subtitle ([6][0][0][0] / 0x0006)

我需要刻录 -> 流 #0:20x1203: 字幕:dvb_subtitle ([6][0][0][0] / 0x0006)

我也尝试过:

ffmpeg -i "udp://@239.253.251.14:5505?overrun_nonfatal=1&fifo_size=50000000&pkt_size=1316&&buffer_size=10000000" -b:v 2600k -maxrate 4M -bufsize 4M -b:a 128k -vf scale=720:576 -filter_complex "[0:v][0:s:2]overlay[v]" -map "[v]" -f mpegts "udp://@239.253.251.15:5505?overrun_nonfatal=1&fifo_size=50000000&pkt_size=1316&&buffer_size=10000000"

但错误是:通过 -vf/-af/-filter 选项为输出流 0:0 指定了 Filtergraph 'scale=720:576',该输出流由复杂的 filtergraph 提供。-vf/-af/-filter 和 -filter_complex 不能同时用于同一个流。

相关内容