問題タブ [gstreamer]
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++ - CMake リンクの問題
CMake を使用して、C ライブラリ GStreamer を使用する C++ アプリケーションをコンパイルしようとしています。
私の main.cpp ファイルは次のようになります。
これは機能します:
CMakeで作るには?私の CMakeLists.txt ファイルは次のようになります。
出力でリンカ エラーが発生します。
python - pygst-glimagesinkコールバック
Pythonで「glimagesink」要素を使用しようとしています。要素(内部はGObject)にclient-draw-callback
は、(少なくともC ++では)関数(bool func(uint t, uint w, uint h)
)ポインターを含む必要があるプロパティがあります。を試しelement.set_property('client-draw-callback', myfunc)
、ctypesを使用して関数ポインターを作成しましたが、毎回、TypeError: could not convert argument to correct param type
Pythonでglimagesinkまたはglfilterappを使用するためのドキュメントを見つけることができます):
動作するC++コード:
c++ - Qtを使用してRTPビデオストリームを再生しますか?
ビデオが H264 としてエンコードされ、オーディオが含まれていない受信 RTP ストリームを再生できる Qt ウィジェットを作成したいと考えています。
私の実装の基本計画は次のとおりです。
- Phonon MediaSourceオブジェクト (ストリーム型) を作成します。
- データを提供するQIODeviceサブクラスに接続します
- 次のいずれかを使用してビデオ データを取得します。
私の環境:
- Ubuntu 9.10
- Qt 4.6
私の質問:
- 私のアプローチは良いものですか?おそらく、より明白な、または単純な解決策を見落としているのでしょうか?
- 現在、この問題が発生しています。ビデオ ストリームを再生しようとすると、MediaObject の状態が errorType FatalError の ErrorState に変わります。誰が私が間違っているのか教えてもらえますか?
編集私が見つけた1つの解決策は、このスレッド
で学んだQtと組み合わせてlibVLCを使用することです。興味のある方のためのコードサンプルを次に示します。私はまだフォノンベースのソリューションを探しています。
理想的には、SDP ファイルを提供するだけで作業が完了します。
c++ - GStreamerに基づいて構築されたビデオウィジェットをQtに実装するにはどうすればよいですか?
Qtを使用して、ローカルビデオファイルを再生できる単純なGUIアプリケーションを作成したいと思います。舞台裏ですべての作業を行うフォノンを使用することもできますが、もう少し制御する必要があります。私はすでに、decodebin要素とautovideosink要素を使用してGStreamerパイプラインを実装することに成功しています。ここで、Qtウィジェットを使用して出力をチャネルします。
誰かがこれを行うことに成功したことがありますか?(GStreamerに基づいて構築されたQtベースのビデオプレーヤーがあるのでそうだと思います。)誰かがそれを行う方法について正しい方向に私を向けることができますか?
注:この質問は、Qtを着信RTPストリームに接続する方法について以前に投稿した質問と似ています。これは非常に難しいようでした。この質問に答えるのは簡単だと思います。
アップデート1
libVLCを使用するというPatriceの提案は、すでに非常に役立ちます。VLCのWebサイトにあるコードのややクリーンなバージョンは次の とおりです。Qt+libVLCのサンプル。ただし、元の質問は残っています。GStreamerをQtウィジェットに接続するにはどうすればよいですか。
アップデート2
いくつかの実験の後、私はこの作業サンプルに行き着きました。それは私自身の小さなGstSupportライブラリのGstWidget.hとGstWidget.cppに依存しています。ただし、これは現在MacバージョンのQtでのみテストされていることに注意してください。
video-streaming - GStreamer を使用して着信 RTP ストリームを再生する
私は GStreamer アプリケーションを開発しており、着信 RTP ストリーム用のプレーヤーの実装に少し苦労しています。gstrtpbin 要素の周りにパイプラインを構築しようとしています。gst-launch 構造を使用してパイプラインをモデル化しようとしています。
スクリプト GStreamer を起動すると、次のエラーが報告されます。
playbin と SDP ファイルで動作することに言及する必要があります。たとえば、次のファイル:
次のようにストリームを再生するために使用できます。
完全を期すために:VLCを使用してデータを送信しています。これはコマンドです:
gst-launch スクリプトが失敗する理由を誰かが理解するのを手伝ってくれますか? 「リンクされていない理由」というエラーは、gstrtpbin と rtph264depay 要素の間のリンクが壊れていると思わせます。しかし、私はそれを修正する方法がわかりません。
編集
RAOF の提案に従って、コマンドのいくつかのエラーを修正しました。ただし、私の Windows システムでは、fluh264dec および xvimage シンク プラグインがインストールされていないため、ffdec_h264 および autovideosink を使用しています。
これにより、新しいエラーが発生します。
私はまだこれを修正する方法を見つけようとしています。お手伝いできることがあれば、お気軽にどうぞ。
Edit2
SDP ソリューションを使用して再度テストしたところ、「存在しない PPS」エラーも発生することがわかりましたが、ビデオは再生されます。一方、致命的な「内部データ フロー エラー」は、カスタム パイプライン ソリューションを使用している場合にのみ表示されます。「存在しない PPS」エラーは、x264 エンコーダーが原因であると思われます。「内部データ フロー エラー」は、パイプラインのエラー、またはおそらく Windows プラグインのバグが原因である必要があります。ということで、さらに研究を重ねます…
c++ - Windows開発用のGStreamerまたはDirectShow?
私は地元の大学のために講義キャプチャプロジェクトを実施しています。複数のビデオストリームが1台のPCに到着します。プレゼンターのデスクトップスライド、プレゼンター自身のビデオカメラ画像、およびオプションでデジタルホワイトボードキャプチャです。これらの着信ストリームは、表示、トランスコード/ミックスし、最終的にディスクに保存するデスクトップアプリケーションによって管理されます。DVD上のFlashアプリケーション、オンラインFlashアプリケーション、またはWindows Media Playerのビデオオンデマンドストリームなど、さまざまな方法で資料を配布できるため、いくつかの構成オプションがあります。
このアプリケーションはWindowsで動作するはずです。オプションで他のプラットフォームをサポートできますが、優先度は高くないようです。
GStreamerとDirectShowはどちらも、基盤となるテクノロジーを提供できるようです。LinuxでのGStreamerの使用経験は少しありますが、そのデザインが気に入っているので、このプロジェクトで使用する傾向があります。ただし、Windowsでどれだけサポートされているかはわかりません。WindowsでGStreamerをビルドする方法に関する最近のドキュメントは見つかりませんでした。だから私はその過程のどこかで立ち往生するのではないかと心配しています。
DirectShowは、はるかに広く使用されており、インターネット上で利用できるドキュメントがはるかに多いため、より安全なオプションのようです。
ここの誰かがWindowsでGStreamerを使用した経験がありますか?それはうまくいきますか?知っておくべき問題はありますか?
編集私はGStreamerOSSBuildsWeb
サイト
を発見し、それを使用して単純なビデオプレーヤー(「playbin」要素に基づく)をすばやく実装することができました。ですから、GStreamerパスをもう少し追求すると思います。
python - ファイルを再生できるかどうかを gstreamer に確認するにはどうすればよいですか?
Python Gstreamer バインディングを使用して、単純なコマンド ライン オーディオ プレーヤーを作成しようとしています。現在インストールされている一連のコーデックで特定のファイル (URI) をデコードおよび再生できるかどうかを事前に判断する関数が gstreamer API にあるのですか?
c - GStreamer プラグインの検索パス?
指定したディレクトリでプラグインを探すように GStreamer に指示できますか?
python - v4l2 を使用してキャプチャし、gstreamer を使用してプレビューを表示します
Q_BUF、STREAM_ON、DQ_BUF の後にバッファー/ユーザーポインターを gstreamer に渡す方法。
PIL のメソッド frombuffer を使用してみましたが、成功しませんでした。だから私は今gstのシンクを使いたいです。
gst.parse_launch() を使用する必要がありますか?
誰かやったことがありますか?