2

DVB S2 カードからの入力ストリームを RTMP に変換しています。

最近のavconvとx264に切り替えた後、すべて正常に動作します:)

私が見つけられなかった唯一のことは、正しいオーディオ ストリームを選択するにはどうすればよいかということです。

ソースには、最大 6 つのオーディオ トラックがある場合があります。Avconv は、ビットレートが最も高いものを自動的に選択します。ただし、「ger」を選択したい:

たとえば、ARTE のドイツ語/フランス語 TV チャンネルのストリームは次のとおりです。

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しかし、名前でマップすることはできませんか? インデックスだけ?

おそらく、「ger」の正しいストリーム インデックスを見つけるために、avprobe を使用する必要があります。

4

1 に答える 1

3

実際、-map オプションを使用してインデックスでストリームを指定する必要があります。私の場合は次のように動作しました (同様にマージされなかった高解像度 5.1 ストリームの代わりに、より優れたチャネル分離を持つ低解像度ステレオ ストリームを選択したかったのです)。

あなたの場合、必要な(ger)ストリームは「0.2」ですが、avconvがコロン区切りを必要とする場合を除きます。

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

于 2013-11-15T21:07:39.253 に答える