ffmpeg 使用流式输入在不同的执行中更改通道顺序和索引

ffmpeg 使用流式输入在不同的执行中更改通道顺序和索引

我们使用 ffmpeg 获取第三方的 mpts 流并将其编码为 webm 文件。现在每次我调用该ffmpeg命令时,我都会得到不同的通道图。例如:

Input #0, mpegts, from 'udp:/.......?fifo_size=1000000&overrun_nonfatal=1':   Duration: N/A, start: 37447.088000, bitrate: 1617 kb/s   Program 1
    Stream #0:0[0x1e00]: Video: mpeg2video ([2][0][0][0] / 0x0002), 90k tbr, 90k tbn, 90k tbc
    Stream #0:1[0x1020](eng): Audio: ac3 ([129][0][0][0] / 0x0081), 48000 Hz, stereo, fltp, 192 kb/s
    Stream #0:2[0x1021](spa): Audio: ac3 ([129][0][0][0] / 0x0081), 48000 Hz, stereo, fltp, 192 kb/s
    Stream #0:3[0x10c0]: Unknown: none ([134][0][0][0] / 0x0086)   No Program
    Stream #0:4[0x1fff]: Audio: aac, stereo, fltp, 1233 kb/s

接下来是:

Input #0, mpegts, from 'udp://@....?fifo_size=1000000&overrun_nonfatal=1':
  Duration: N/A, start: 36871.760000, bitrate: 384 kb/s
    Stream #0:0[0x1fff]: Unknown: none
    Stream #0:1[0x1021]: Audio: ac3, 48000 Hz, stereo, fltp, 192 kb/s
    Stream #0:2[0x1020]: Audio: ac3, 48000 Hz, stereo, fltp, 192 kb/s
    Stream #0:3[0x1e00]: Video: mpeg2video, 90k tbr, 90k tbn

或者

Input #0, mpegts, from 'udp://@....?fifo_size=1000000&overrun_nonfat                                         al=1':
  Duration: N/A, start: 36861.712000, bitrate: 384 kb/s
  Program 1
  No Program
    Stream #0:0[0x1fff]: Audio: mp3, 0 channels, s16p
    Stream #0:1[0x1021]: Audio: ac3, 48000 Hz, stereo, fltp, 192 kb/s
    Stream #0:2[0x1020]: Audio: ac3, 48000 Hz, stereo, fltp, 192 kb/s
    Stream #0:3[0x1e00]: Video: mpeg2video, 59.94 tbr, 90k tbn

我需要一种固定的方式来映射这些通道并对其进行编码

相关内容