2016-09-09 25 views
0

私は2つ、2つのmp3入力RTPが一緒に流れて、次のコマンドを使用して、mp3ファイルとして保存マージしたい:ffmpegで2つの入力rtpストリームをマージする方法はありますか?

ffmpeg -i rtp://127.0.0.1:5004?listen -i rtp://127.0.0.1:5005?listen -filter_complex amerge -ac 2 -c 2 -c:a libmp3lame q:a 4 output.mp3 

バインドが失敗し、エラーが返されます。エラー番号-10048発生したRTP://127.0を。 5005聞く:0.1?

ffmpeg -i input01.mp3 -i input02.mp3 -filter_complex amerge -ac 2 -c 2 -c:a libmp3lame -q:a 4 output.mp3 

私はアルを持っている:I/Oエラー

私はこれを試してみました前に、私は最初に、次の作業、コマンドと一緒に2つのmp3ファイルをマージしようとしました各rtpストリームを個別に取得し、.wavファイル出力を作成しようとしました。私は一緒にストリームにマージし、mp3の出力を作成することができ、UDPでは

ffmpeg -i rtp://127.0.0.1:5004?listen output.wav 

::これはまた、次のコマンドで働いていた

ffmpeg -i udp://127.0.0.1:5004?listen -i udp://127.0.0.1:5005 -filter_complex amerge -ac 2 -c 2 -c:a libmp3lame -q:a 4 output.mp3 

誰もが2つのRTPストリームは、grabedマージして書き込むことができる方法を知っていますffmpegのmp3ファイルに?または、これは2012年のようにサポートされているまだ1つのrtpストリームですか?

答えて

0

上記のコマンドの問題はポート番号です。あるポート(通常は1024より大きな偶数ポート)にrtpを受信した場合は、次に大きなポートがrtcpに使用されます。

2番目のストリームにポートを使用すると、このコマンドは機能しますが、これはすでに他のもの(rtcpなど)から使用されていません。

ffmpeg -i rtp://127.0.0.1:5004?listen -i rtp://127.0.0.1:5006?listen -filter_complex amerge -ac 2 -c 2 -c:a libmp3lame -q:a 4 output.mp3 

あなたは、生のオーディオと同じことをしたい場合、それはあなたのようなエラーが出ることが可能です:あなたはRTPペイロードタイプを持つSDPファイルを作成する必要があり、このコーデックを解決するために

Unable to receive RTP payload type 96 without an SDP file describing it. 

とサンプリングレートをffmpeg入力として使用します。

SDP例:FFmpegの入力として

v=0 
c=IN IP4 127.0.0.1 
m=audio 2002 RTP/AVP 96 
a=rtpmap:96 L16/16000 

使用SDPファイル:

ffmpeg -i a.sdp -i b.sdp -filter_complex ... 
関連する問題