4

私は、rtspsrc を使用して、あるネットワーク カメラから別のネットワーク カメラにオーディオとビデオを収集するアプリケーションに取り組んできました。ただし、カメラからストリームを見ることができないため、ストリームが意図したとおりに機能することを確認できません。ストリームが正しいことを確認するために、SD カードに記録してから、コンピューターでファイルを再生したいと考えています。問題は、アプリケーションの目的であるため、カメラにできるだけ多くの解析、デコード、デペイロードを実行させたいことです。

そのため、オーディオ ストリームとビデオ ストリームをデマルチプレクサで分離し、解析、デコードなどを行ってから、それらを mux して matroska ファイルに戻す必要があります。

ビデオデコーダーは、このカメラではまだ行われていないため省略されています。

ライブ再生シンクへの Demux (動作)

gst-launch-0.10 -v rtspsrc location="rtsp://host:pass@192.168.0.91/XXX/XXXX?resolution=1280x720&audio=1&audiocodec=g711&audiosamplerate=8000&audiobitrate=64000" latency=0 name=d d. ! rtppcmudepay ! mulawdec ! audioresample ! audioconvert ! autoaudiosink d. ! rtph264depay ! ffdec_h264 ! queue ! ffmpegcolorspace ! autovideosink

matroska への複数の rtspsrc (動作)

gst-launch-1.0 -v rtspsrc location="rtsp://host:pass@192.168.0.91/XXX/XXXX?audio=1&audiocodec=g711&audiosamplerate=8000&audiobitrate=64000" latency=0 ! rtppcmudepay ! mulawdec ! audioresample ! audioconvert ! queue ! matroskamux name=mux ! filesink location=/var/spool/storage/SD_DISK/testmovie.mkv rtspsrc location="rtsp://root:pass@192.168.0.91/axis-media/media.amp?resolution=1280x720" latency=0 ! rtph264depay ! h264parse ! mux.

matroska への単一の rtspsrc (失敗)

gst-launch-1.0 -v rtspsrc location="rtsp://host:pass@192.168.0.91/XXX/XXXX?resolution=1280x720&audio=1&audiocodec=g711&audiosamplerate=8000&audiobitrate=64000" latency=0 name=d d. ! queue ! rtppcmudepay ! mulawdec ! audioresample ! audioconvert ! queue ! matroskamux name=mux d. ! queue ! rtph264depay  ! h264parse ! queue ! mux. ! filesink location=/var/spool/storage/SD_DISK/testmoviesinglertsp.mkv

最後の例はエラー メッセージで失敗します

WARNING: erroneous pipeline: link without source element

matroska mux の使用法を誤解していますか? 上記の 2 つの例は機能するのに、最後の例は機能しないのはなぜですか?

4

1 に答える 1

2

問題はここにあります:

queue ! mux. ! filesink

あなたがする必要があります

queue ! mux. mux. ! filesink

マックス。gst-launch が mux から自動的にパッドを選択する必要があることを意味します。そしてそれをリンクします。mux.src のように手動で名前を指定することもできます。したがって、構文的には、他の要素にリンクするための別の要素/パッドがありません。

于 2014-10-04T16:36:55.367 に答える