2016-10-26 143 views
1

gstreamerから別の2つのプロセス(どちらもgstreamerに基づいています)にh264でエンコードされたデータを共有しようとしています。一部の調査の後、shmプラグインを使用します。 これは私がvideotestsrcとウェブカメラワークからの生データを取得することができた私はgstreamer shmsrcとh264データをshmsink

gstreamer--->h264 encoder--->shmsink 
shmrc--->process1 
shmrc--->process2 

をやろうとしていますものです。しかし、h264でエンコードされたデータの場合はそうではありません。 これは私のテストパイプライン

gst-launch-1.0 videotestsrc ! video/x-raw,width=640,height=480,format=YUY2 ! 
x264enc ! shmsink  socket-path=/tmp/foo  sync=true  wait-for- 
connection=false  shm-size=10000000 

gst-launch-1.0 shmsrc socket-path=/tmp/foo ! avdec_h264 ! video/x- 
raw,width=640,height=480,framerate=25/1,format=YUY2 ! autovideosink 

は誰でもH264エンコードされたデータとのSHMのプラグインを試してみましたで、「autovideosink」で使用されるあなたのシンクの能力を認識していない

答えて

2

Iamのを助けてください、しかしとしての私の知識あたりますシンクでサポートされているフォーマット(kmssinkやximagesinkなど)がソース(あなたのケースではYUY2)で提供されているものと異なる場合は、ビデオコンバートを使用するか、シンクでサポートされている場合はビデオパスを使用する必要があります。サポートされている形式についてはgst-inspect-1.0を使って確認できます。

./gst-launch-1.0 videotestsrc:

はとにかく私は私のセットアップでvideoconvertを使用していくつかの変更を使用してパイプラインを実行することができています! x264enc! shmsinkソケットパス=を/ tmp/fooの同期=真待ちコネクション= falseをSHM-サイズ= 10000000

./gst-launch-1.0 shmsrcソケットパス=を/ tmp/fooの! h264parse! avdec_h264!ビデオコンバート! ximagesink

あなたは、あなたが望む解像度に従って修正することができます。

上記の問題が発生した場合は、お知らせください。

+0

h264パーサーをご指摘いただきありがとうございます。 –

関連する問題