問題タブ [gstreamer-1.0]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - imx6 yocto プロジェクトでの gstreamer パイプラインの問題?
私はVVDN imx6ボードに取り組んでおり、gstreamerを正常にインストールしました。このコマンドの後:
エラーが発生しました:
root@imx6slzbha:~# gst-launch-0.10 audiotestsrc ! オーディオ変換!autoaudiosink パイプラインを一時停止に設定しています...
エラー: パイプラインは一時停止を望んでいません。
エラー: 要素 /GstAlsaSink から:autoaudiosink0-actual-sink-alsa: 操作できませんでした。
追加のデバッグ情報: /home/user/vvdn_sdk/stct_iog1/source/yocto/build/tmp/work/cortexa9hf-vfp-neon-m:
デバイス「デフォルト」での再生オープン エラー: そのようなファイルまたはディレクトリはありません パイプラインを NULL に設定しています ...
パイプラインを解放しています...
c++ - GStreamer がコールバックを呼び出していないようです
別のスレッドで GStreamer 関連のものを実行する Qt アプリケーションがあります。シグナル コールバックの設定ルールは守っていると思いますが、指定したコールバック関数が呼び出されていないようです。
コールバック関数は次のとおりです。デバッグのために何かをコンソールに記録するだけです。
ストリーム (IP カメラからのライブ RTSP/H.264 フィード) を開始して監視するために使用しているシーケンスは次のとおりです。
現在、ストリームは実際に再生されている (ビデオが表示されている) ので、問題はないと思います。ただし、パイプラインの再生が開始されると、ステータス変更メッセージが投稿されるはずです。からの出力が表示されないため、これは発生していないようですCb()
。
message::eos
、message::error
およびmessage::element
シグナルもキャッチしても、出力が得られません。
これが問題になるかどうかはわかりませんが、念のため、上記のコードは少し簡略化されています。実際には2 つのストリームが再生されているため、上記のコードの最初のスニペットはプレイビンごとに 1 回ずつ、2 回発生します (シーケンスは各プレイビンで正確です。コードを不必要に複雑にする必要はありません)。
次に、メイン ループが作成されて実行されます。
述べたように、コールバック関数からの出力が表示されないので、メッセージはどこに行くのでしょうか?
補遺: 価値のあるものとして、特定のシグナルではなくすべてのgst_bus_add_watch
メッセージをキャプチャする方法も試しましたが、まだ何も表示されません。また、Qt アプリケーションであるため、コードには何もありません。メイン スレッドから呼び出すだけです。gtk_init
gst_init
audio - gstreamer を使用して 2 つのクリップを再生しますが、それぞれのオーディオを個別のオーディオ チャネルに転送します
2 つの異なるビデオ クリップを同時に再生し、それらのオーディオをモノラルにダウンミックスし、オーディオをそれぞれ左右のチャンネルに再生できるようにする必要があります。つまり、クリップ 1 のオーディオを左チャンネルで再生し、クリップ 2 のオーディオを右チャンネルで再生します。
python - Gtkダイアログでビデオを表示するには?
ダイアログでビデオを表示したい。
そのため、「プレイビン」を含むGst.DrawingArea
とを作成します。Gst.Pipeline
Gst.Element
少し例を作成しました。ボタンでウィンドウが開きます。ボタンをクリックすると、ダイアログが開き、ビデオが再生されます。しかし、私はビデオの音声しか聞こえません。
ウィンドウと DrawingArea のみの別の例では、正常に動作します。
Gtk.Dialog でビデオを表示することさえ可能ですか?
Python 3.5.2 を使用しています。
編集:
編集 2: 再生ボタンを押した後の UI
opencv3.0 - opencvでgstreamerのパイプラインをセットアップするには?
背景の紹介: gstreamer (バージョン 1.8.2) を使用して、IP カメラからの rtsp ビデオ ストリームを接続し、それを opencv (バージョン 3.1) にフィードします。ビデオ ストリームは 10fps で 640x480 です。URLは以下のとおりです。
rtsp://192.168.0.200:554/1/h264minor
gst-launch を使用してビデオ ストリームをテストすると、レイテンシーは 300 ミリ秒まで非常に低くなります。以下のようにコマンドします。この低レイテンシを実現するには、「レイテンシ = 0」が最も重要な要素であると確信しています。
gst-launch-1.0 -v rtspsrc location=rtsp://192.168.0.200:554/1/h264minor latency=0 ! decodebin ! autovideosink
opencv で、以下のコードを使用して rtsp ストリームを開くと、レイテンシが 2.35 秒と非常に大きくなります。このように、gstreamer はデフォルトのレイテンシーでパイプラインを自動的にセットアップすることを理解しています。
VideoCapture cap;
cap.open("rtsp://192.168.0.200:554/1/h264minor")
opencv - cap_gstreamer.cpp のコードを調べたところ、gst-launch で使用したものと同様の gstreamer 用の手動パイプラインをセットアップできることがわかりました。このようにして、レイテンシ設定を制御できます。そこで、コードを以下のように変更しました。cap_gstreamer.cpp のコメントによると、appsink の名前は「appsink0」または「opencvsink」である可能性があります。しかし、常にこのパイプラインのセットアップに失敗し、ビデオ ストリームを取得できません。
エラーメッセージは次のとおりです。
GStreamer プラグイン: 埋め込みビデオの再生が停止しました。モジュール udpsrc1 が報告しました: 内部データ フロー エラー。OpenCV エラー: cvCaptureFromCAM_GStreamer、ファイル /opencv-3.1.0/modules/videoio/src/cap_gstreamer.cpp、行 826 で不明なエラー (GStreamer: パイプラインを開始できません)
私の質問は:
- opencvでrtspストリームを取得するための適切なgstreamerパイプラインは何ですか?
- またはopencvからgstreamerに「レイテンシ」パラメータを渡す代替方法はありますか?
opencv が gstreamer をどのように利用しているかを理解するために 4 日間を費やしましたが、それだけでは不十分であることはわかっています。ただし、opencv/gstreamer の専門家からガイドを入手したいと思います。ヒント/提案は大歓迎です。前もって感謝します!
python - gstreamer 1.0 + python: PLAYING パイプラインからキューを動的にリンクおよびリンク解除する
パイプラインを に設定する前に両方のキューがリンクされている場合、スクリプトはうまく機能しますが、PLAYING
Gstreamer の動的パイプラインとその実装を理解するのに苦労しています。また、gstreamer 1.0 python のドキュメントやサンプルがないことも役に立ちません。
これは、tee を使用してファイルに記録し、RTMP サーバーにストリーミングする作業スクリプトです。
私がやろうとしていること:
- 最初は、ファイルに記録する 1 つのキュー ( queueFile ) から開始します (常に実行されます)。
- サーバーにストリーミングするキューをティー ( queueCloud ) にオンデマンドで動的に追加および削除する
gstreamer 1.0 と gi python に関するドキュメントはあまりありません。どんな助けも大歓迎です。