ビデオとステレオオーディオを使用してrtmp入力を受信します。私は、オーディオを分割し、左のチャンネルと右のチャンネルの2つのビデオを別々のアドレスに送る必要があります。私はそのようなコマンドを持っています:ffmpegのステレオ分割とブロードキャストを最適化する
ffmpeg -r 25 -loop 1 -i background.png \
-rtbufsize 2000M -i rtmp://stereoinput \
-filter_complex "[1:v][0:v]overlay[video];[video]split[video][video2];[1:a]channelsplit[aleft][aright]" \
-map [video] -map [aleft] -c:v libx264 -minrate 1000k -maxrate 1500k -b:v 1300k -bufsize 1000k \
-pix_fmt yuv420p -r 25 -g 100 -tune zerolatency -preset ultrafast \
-c:a libmp3lame -ar 44100 -y -f flv rtmp://out_left \
-map [video2] -map [aright] -c:v libx264 -minrate 1000k -maxrate 1500k -b:v 1300k -bufsize 1000k \
-pix_fmt yuv420p -r 25 -g 100 -tune zerolatency -preset ultrafast \
-c:a libmp3lame -ar 44100 -y -f flv rtmp://out_right
しかし、それは遅く実行します:それはわずか20 fpsを出力します。 4GBのRAMと4つのコアを持つAzure VPSをエンコードしており、このような問題が発生しているとは考えていませんでした。 1つのストリームを完全にエンコードします。
これをより速くする方法はありますか? たとえば、同じビデオストリームを2回エンコードしなければならないことも嫌いです。私はコマンドの出力全体を見なければならないので、2つのコマンドを用意する余裕はない。
「ffmpeg -i input.mp4 -c copy -f tee」[f = flv] rtmp:/ out1 | [f = flv] rtmp:/と同じように、/out2 "' Winの場合、 'loglevel verbose'でも'出力ファイル#0にはストリームが含まれていません 'と表示されますが、例えば、youtubeはストリームを受信しますが、放送は開始しません他のプレイヤーでは黒い画面しか表示されません。それを成功裡にキャッチしてください。 – Ngoral
この特定のケースでは、エンコードがflvに準拠しているかどうかによって異なります。上記の私の命令を試しましたか? – Mulvya
はい、私は試してみましたが、実際にはビデオは聞こえません。 – Ngoral