問題タブ [python-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.
gstreamer - uvch264 の vidsrc が失敗する
次のパイプラインは失敗します。これをデバッグする方法は?何がうまくいかないのですか?
しかし、vfsrc は正常に動作しています。
ありがとう、
スネハ
python-3.x - Pythonのウィンドウへのgstreamerビデオ
ビデオをストリーミングするための次のパイプラインがあります。
差出人:
gst-launch-1.0 rpicamsrc preview=0 ! 'video/x-h264, width=1280, height=720, framerate=15/1,profile=high' ! 列 !rtph264ペイ!udpsink ホスト=192.168.0.8 ポート=50000
レシーバー:
gst-launch-1.0 udpsrc port=50000 caps="application/x-rtp,media=(string)video,clock-rate=(int)90000,encoding-name=(string)H264" ! rtph264depay ! デコードビン!自動ビデオシンク
これは正常に動作しますが、Python でレシーバーを実行し、ビデオ ストリームをウィンドウに向けたいと思います。次のようにします。
ただし、ストリーミングが開始されるとウィンドウが閉じられるだけで、プログラムはエラーなしで終了します。何が間違っている可能性があり、ビデオ出力をウィンドウに送るにはどうすればよいですか?
root 権限なしで実行した場合の出力:
$ GST_DEBUG=3 python3.2 test.py
ルートとして出力:
GST_DEBUG=3 sudo python3.2 test.py
したがって、Gstreamer からのエラーはなく、ストリームが開始されるとウィンドウが閉じます。
python - 失敗時にパイプラインを停止せずにシンクを再起動する
今日、いくつかの機能を追加するために、 に基づく小さなスクリプトをgst-launch
実際の Python/GStreamer アプリケーションに変換することにしました。
のおかげで、マイクからオーディオを Icecast ( shout2send
) とローカル ストレージ ( ) の両方に送信する小さなプログラムを開発しました。filesink
tee
shout2send
ネットワークの問題により、時々停止することがあります。ローカル オーディオ ファイルはネットワーク状態の影響を受けないため、パイプラインを停止せずに、接続が回復するまで N 秒ごとにこの要素を再起動したいと考えています。
これが私が試したことです:
- ネットワーク エラーの 1 秒後にパイプラインを停止/開始する (結果: ストリーミングは機能し、ローカル ファイルは切り詰められます)
- からリンクを解除し、状態をパイプライン
tee
に設定し、パイプラインから削除します (結果: のような GStreamer の重大なエラー)shout2send
NULL
Trying to dispose element ... but it is in PLAYING instead of the NULL state
- この場合のパッドの使用方法を理解しようとしています (結果: 上記と同じですが、より多くのコードが含まれます)
私は何をすべきか?
私のコードは次のようになります。
更新 (2015 年 9 月 12 日) : 非動作コードの追加 + ログ
GStreamer doc の「パイプラインを動的に変更する」に従おうとしましたが、コードが機能しません。
スクリプトを実行し、GST_DEBUG=3
ストリーミング中に Icecast を再起動すると、次のようになります。
python - 時間間隔でgstreamerでオーディオを録音する方法
基本的に、私の質問はこれと多少同じです: gstreamer でオーディオを事前定義された時間録音する方法は?
しかし、そこで使用できる答えはなく、gstreamerの使用も比較的初めてです。他のユーザーが投稿した質問のコードを使用して、x 秒の時間間隔でオーディオを録音するために追加できるものを、各キャプチャの間に y 秒の一時停止を加えます。
python - Python GStreamer: アプリシンク バッファのメタ API を取得する
H264 で USB Web カメラ (Logitech C920) からビデオをキャプチャするために GStreamer を使用しています。h264 フレームを分析してから、それらをデコードまたはネットにストリーミングしたいと考えています。
インターネット上のさまざまなソースに基づいて、基本的にSchematic gst-launchコマンドを使用して、フレームをpythonに取り込むことができるpython2.7スクリプトを作成しました。
ただし、受信したバッファを解釈しようとして立ち往生しています。Python gstreamer がメタ API をバッファにアタッチするためにどのように機能するかを理解するのにかなりの時間を費やしましたが、今のところ無駄です。私の理解が正しければ、メタ API を何らかの形でバッファにアタッチすると、さまざまな要素にアクセスできる構造と、フレーム エンコーディングに関する情報が得られます。これどうやってするの?(フレーム用の独自のデコーダーを作成せずに)
以下は私の現在のスクリプトで、いくつかのサンプル出力があります。
以下は、このスクリプトの出力例です。
私はたくさん検索しましたが、Pythonでエンコードされたビデオフレームを含むバッファにメタAPIをマップする方法の例を1つも見つけることができませんでした.機能が提供されているように見えるので、これはそれほど難しくないと思います.
助言がありますか?
python - Pythonでgstreamer-1.0でポケットフィンクス(5prealpha)を使用するには?
ネットワーク経由でオーディオ ストリームを受信し、それを pocketpinx 経由でフィードして音声をテキストに変換し、pokesphinx の出力に応じていくつかのコマンドを実行する小さな Python スクリプトを作成しようとしています。
Ubuntu 15.10 vm に sphinxbase と pocketphinx (5prealpha) をインストールしましたが、Python でオーディオ ファイルの例 (pokesphinx インストールの一部) の内容を適切に処理できます。そのため、sphinx のインストールが適切に機能していると確信しています。残念ながら、テスト用の Python スクリプトは連続したオーディオを処理できず、ネイティブの pocketphinx API を使用します。cmusphinx Web サイトによると、継続的な翻訳には gstreamer を使用する必要があります。残念ながら、Python で gstreamer を使用して pocketphinx を使用する方法に関する情報はかなり限られています。見つけた例に基づいて、次のスクリプトをつなぎ合わせました。
送信側は次のようになります。
これは、ネットワークから udp ストリームを受信し、それを pocketphinx にフィードし、出力を端末に出力する必要があります。「キューを置き換えると!ポケットフィンクス!「wavenc ! によるフェイクシンク」の部分 filesink '、正しい内容の有効なオーディオ ファイルを取得したので、ネットワーク送信部分が正しく機能していることを確認しました。(テスト マシンにオーディオがないため、ローカル オーディオ ソースでテストすることはできません)。
スクリプトを開始すると、pokespinx の設定が通り過ぎるのが見えますが、その後、スクリプトは何もしていないように見えます。GST_DEBUG=*:4 でスクリプトを開始すると、次の出力が表示されます。
グーグルで見つけた情報と例に基づいて、何がうまくいかないのかわかりません。
どんな助けでも大歓迎です。
ニコ