web-dev-qa-db-ja.com

gstreamerの複数のパイプラインを同期して同時に実行する

「thiagoss」の助けのおかげで、gstreamerのためにこれらのパイプラインを以下に作成しました。 1つはWebcamを介してキャプチャーし、もう1つはフレームグラバーからキャプチャーします。今のことは、それらをマージする方法がわからないということです(両方を別々のコンテナに記録したい)2つのパイプラインを同期して実行する方法に関するアイデアやソリューションを共有できますか?

 gst-launch-1.0 v4l2src device=/dev/video1 ! videorate  ! 'image/jpeg,framerate=30/1,width=1920,height=1080' ! jpegparse ! avimux ! filesink location=/home/sina/Desktop/Recordings/video.avi . -v

そして

 gst-launch v4l2src device=/dev/video0 ! 'video/x-raw-yuv, framerate=24/1, width=1024, height=768' ! x264enc ! mpegtsmux ! filesink location=/home/sina/Desktop/Recordings/Screen.ts . -v
2
Sina Sh

パイプラインの1つはgstreamer 1.0であり、もう1つは0.10(gst-launchのデフォルト)を使用しています。 1.0を使用することをお勧めします。

同じgst-launch-1.0コマンドに両方の起動行を含めることができます。また、エンコーダーの前または後にいくつかのキューを追加して、パイプラインでバッファリングすることもできます。

gst-launch-1.0 v4l2src device=/dev/video1 ! videorate  ! 'image/jpeg,framerate=30/1,width=1920,height=1080' ! jpegparse ! avimux name=muxer ! filesink location=/home/sina/Desktop/Recordings/video.avi v4l2src device=/dev/video0 ! 'video/x-raw, framerate=24/1, width=1024, height=768' ! x264enc ! mpegtsmux ! filesink location=/home/sina/Desktop/Recordings/Screen.ts  -v
1
thiagoss