2016-07-15 22 views
0

3つのRapsberry PIからの3つのストリームを合成しようとしています。Gstreamer videomixer非常に低いフレームレート

できるだけ早く私はvideomixerプラグインを使用して一緒に2つのストリームを結合として、私はで終わるメッセージが表示されます:

パイプライン:pipeline0/GstOSXVideoSink:osxvideosink0: ありタイムスタンプの問題であるか、またはこのコンピュータがあまりにもあることスロー。

は不思議な、私のタスクモニタは唯一3つのストリームでは、GST

のための約15%のCPU使用率を示し、フレームレートは使用できなくなります。私は私のI7のMacBookが問題なくこれを扱うことができると期待しています....

私はミキシングのために使用しているコードです、この場合は1つのストリーム(/シンク?)です。 明白な間違いがあるかどうか誰にでも教えてもらえますか?それともボトルネックを見つけて改善すべきか? ありがとう!

gst-launch-1.0 videomixer name=m sink_1::xpos=400 sink_2::ypos=300 ! autovideosink \ 
-v udpsrc port=9000 caps='application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264'! rtph264depay ! video/x-h264,width=400,height=300,framerate=30/1 ! h264parse ! avdec_h264 ! videoconvert ! m. \ 
-v udpsrc port=9001 caps='application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264' ! rtph264depay ! video/x-h264,width=400,height=300,framerate=30/1 ! h264parse ! avdec_h264 ! videoconvert ! m. \ 
-v udpsrc port=9002 caps='application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264' ! rtph264depay ! video/x-h264,width=400,height=300,framerate=30/1 ! h264parse ! avdec_h264 ! videoconvert ! m. 

ここでは、RPIカメラからストリームを送信するために使用するコードを示します。

raspivid -n -w 640 -h 480 -t 0 -o - \ 
| gst-launch-1.0 -v fdsrc ! h264parse ! rtph264pay \ 
config-interval=10 pt=96 ! udpsink host=192.168.1.3 port=9000 
+0

hm glvideomixerはどうなっていますか? RPIでOpenGLがどのように機能するのかよく分かりません – nayana

+0

2つのストリームをミキサーに接続して使用しているコードを貼り付けることはできますか?あなたのパイプラインにも 'queue'要素はありません。 – mpr

+0

@otopolsky videomixerはMac上にあり、何らかの理由でglvideomixerがセットアップに表示されません。私はそれをインストールする方法を捜したが、私はそれについての情報を見つけることができない。私は間違った方向を見ているに違いない。 Macにインストールされているglvideomixerを入手する方法を教えてもらえますか(プラグインベース、良い、悪い、醜い、libavをインストールしました)、gst-inspect-1.0を実行するとgl要素は表示されません –

答えて

0

ビデオデコードごとにキュー要素を追加し、sync=falseをビデオシンクに追加してみてください。

gst-launch-1.0 videomixer name=m sink_1::xpos=400 sink_2::ypos=300 ! videoconvert ! ximagesink sync=false \ 
udpsrc port=9000 ! application/x-rtp,media=video,clock-rate=90000,encoding-name=H264 ! rtph264depay ! video/x-h264,width=400,height=300 ! h264parse ! avdec_h264 ! queue ! videoconvert ! m. \ 
udpsrc port=9001 ! application/x-rtp,media=video,clock-rate=90000,encoding-name=H264 ! rtph264depay ! video/x-h264,width=400,height=300 ! h264parse ! avdec_h264 ! queue ! videoconvert ! m. \ 
udpsrc port=9002 ! application/x-rtp,media=video,clock-rate=90000,encoding-name=H264 ! rtph264depay ! video/x-h264,width=400,height=300 ! h264parse ! avdec_h264 ! queue ! videoconvert ! m. 

今、これに対する私の免責事項は、ビデオが適切に滑らかで同期されます場合、私はわからないんだということでしょうが、かなり良い見ているようです。

また、raspividでは、プロパティをrtph264pay要素に追加することをお勧めします。

raspivid -n -w 640 -h 480 -t 0 -o - | gst-launch-1.0 -v fdsrc ! h264parse ! rtph264pay config-interval=1 ! multiudpsink clients=192.168.1.3:9000,192.168.1.3:9001,192.168.1.3:9002 
+0

返信いただきありがとうございます。このソリューションは、画像内のぎこちなさと、落ちたフレームに関するメッセージを取り除きます。残念なことに、それはまた私の目的のために大丈夫ではない画像(約5秒)に大きな遅延をもたらす。低レイテンシのためにgstreamerで作業を始めました。これは私が後にしていることです。 –

+0

私はテストするためにPiを持っています。受信側にキューを追加し、rtph264payにconfig-intervalを置いてください。これで今は正常に動作し、いずれかの端で再起動が処理されるようです。 – mpr

+0

フィードバックいただきありがとうございます。あなたが提案した変更を追加することは、実際にはパフォーマンスを向上させるように見える。すばらしいです ! –

関連する問題