我正在将一些输入流从我的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”的正确流索引。
答案 0 :(得分:3)
实际上,您需要使用-map选项按索引指定流。以下工作在我的情况下(我想选择具有更好的通道分离的低分辨率立体声流,而不是没有合并的更高分辨率的5.1流)。
在你的情况下,你想要的(ger)流是“0.2”,除了avconv想要一个冒号分隔符,例如
avconv -i input.m4v -map 0:2 output.mp3