Avconv:选择德国流而非最高质量的流

时间:2013-04-01 05:42:56

标签: audio ffmpeg libav

我正在将一些输入流从我的DVB S2卡转换为RTMP。

切换到最近的avconv和x264后,一切正常。

我唯一不知道的是,如何选择正确的音频流?

音源有时最多有6个音轨。 Avconv会自动选择比特率最高的那个。但是我想选择“ger”:

以下是ARTE德语/法语电视频道的流程:

Input #0, mpegts, from 'http://192.168.1.50:9981/stream/channelid/1035':
  Duration: N/A, start: 19083.694722, bitrate: 15576 kb/s
  Program 1
    Stream #0.0[0xa8], 127, 1/90000: Video: mpeg2video (Main), yuv420p, 544x576 [PAR 32:17 DAR 16:9], 1/50, 15000 kb/s, 25 fps, 90k tb50 tbc
    Stream #0.1[0x70](fre), 204, 1/90000: Audio: mp2, 48000 Hz, stereo, s16p, 192 kb/s
    Stream #0.2[0x71](ger), 207, 1/90000: Audio: mp2, 48000 Hz, stereo, s16p, 128 kb/s
    Stream #0.3[0x72](eng), 207, 1/90000: Audio: mp2, 48000 Hz, stereo, s16p, 128 kb/s
    Stream #0.4[0x73](qaa), 207, 1/90000: Audio: mp2, 48000 Hz, stereo, s16p, 128 kb/s
  No Program
    Stream #0.5[0x3b], 126, 1/90000: Audio: mp1, 0 channels, s16p

libav Docs真的没那么有用。谁现在做了正确的语法?

编辑:我找到了-map选项:http://ffmpeg.org/trac/ffmpeg/wiki/How%20to%20use%20-map%20option但是无法按名称进行映射?只有索引?

也许我需要使用avprobe,找到“ger”的正确流索引。

1 个答案:

答案 0 :(得分:3)

实际上,您需要使用-map选项按索引指定流。以下工作在我的情况下(我想选择具有更好的通道分离的低分辨率立体声流,而不是没有合并的更高分辨率的5.1流)。

在你的情况下,你想要的(ger)流是“0.2”,除了avconv想要一个冒号分隔符,例如

avconv -i input.m4v -map 0:2 output.mp3