問題タブ [gst-launch]
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 - USB ウェブカメラから h264 ストリームを抽出 (logitech C920)
だから、私はgstreamerをいじり始めて、次のような非常に単純なパイプを行うことができます
ここで、私の USB ウェブカメラ (video1、video0 はコンピュータの内蔵カメラ) が h264 をサポートしているため (を使用して確認しlsusb
ました)、h264 フィードを直接取得したいと思います。このフィードが mjpeg に多重化されていることは理解していますが、ウェブを見回すと、それでも gstreamer で取得できるようです。
私の最終的な目標は Beaglebone からストリーミングすることなので、この投稿に記載されている解決策を使用して試みました (別の端末からリスナーを追加する):
しかし、これにより次のエラーが発生します。
ソースをrawからh264に変更して、最初のコマンドと同様のことも試しました(その投稿に基づいて、そこに指定された完全なコマンドを試すと同じエラーメッセージが表示されます)
しかし、これもうまくいきませんでした:
私はこれが私をかなり夢中にさせていることを認めます.SOまたはウェブ上の他の場所を見ると、私が持っているものとまったく同じウェブカメラ(Logitech C920)で動作させた人がたくさんいるようですが、私は何度も遭遇します.次々と出題。
そのウェブカメラから h264 を抽出するための正しいパイプの例は何でしょうか?
python - rtph264pay で gst-launch を使用するときに rtp ペイロード タイプを変更する方法
Python用のgstを使用してファイルからh264をストリーミングし、gst.parse_launch(...)を使用してビデオ送信をトリガーしています。ペイロード タイプをデフォルトの 96 から35に変更する必要があります。注: BOSCH は、h264 データを送信するときに 35 を使用していました。
値を 0 ~ 95 に設定すると、Wireshark で rtp パケットを調べると、まだ 96 に設定されていることがわかります。95 を超える値を設定しても受け入れられ、送信される rtp パケットに入ります。
ここでの別の質問は、ほぼ同じことを達成しようとしていますが、受信側でPythonではなくCで実装しています。 Gstreamer、rtspsrc、およびペイロード タイプ
ドキュメントの例: https://gstreamer.freedesktop.org/documentation/tools/gst-launch.htmlネットワーク ストリーミングを参照
基本 rtp ペイロード クラスには次のプロパティがあります 。 .html#GstBaseRTPPayload--pt
派生した h264 ペイロード クラスには pt 範囲の制限があるようです: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-good/html/gst-plugins-good-plugins-rtph264pay.html
gst-launch へのコマンド ライン引数は次のようになります。
video/x-h264,width=352,height=288,framerate=(fraction)25/1 ! identity sleep-time=15000 sync=true ! h264パース!rtph264pay config-interval=1 pt=35 ! 列 !udpsink 同期 = true
これを回避する方法についてのアイデアはありますか? pt プロパティ設定関数にパッチを適用する必要がありますか、それとも侵略的でない方法はありますか?
更新: コードのどこで 95 を超える実際の強制が行われているのかを見つけることができないようです。 0) および max(127) であり、他のすべての操作は単なる割り当てであり、最終的に rtp パッケージのヘッダーになります。
デバッグ出力を有効にすると( pay :6) 、ピア pt 96 の使用について話していることに気付きますが、残念ながら、出力は pt=35 (デフォルトの 96 に設定されます) を設定した場合とまったく同じです (実際の # を除く) 対 pt= pt=97 を保持する 97 であるため、要求された値がデフォルト値に置き換えられたことを示すものではありません。
pt=35 を使用:
vs pt=97 を使用:
gstreamer - gstreamer を使用して RTSP で MIC 入力をストリーミングする方法
RTSP サーバーからマイク入力をストリーミングしたいと思います。gstreamer1.0 と gstreamer1.0-rtsp-server (v1.12.3) を使用しています。
以下のコマンドを試してみましたが、パイプラインで作成したRTSPサーバーが応答しません。どうすればストリーミングできますか?
結果(tx)は
次のコマンドも試しました。
結果 (tx):
PS:
デコードビンを含まない最初の tx パイプライン、rx のエラーは 503 サービスを利用できません。したがって、tx パイプラインは間違っていると思います。
2回目の結果は以下の通り。
このエラーは、SDP を rx または tx パイプラインに追加する必要があることを示していると思います。SDP をパイプラインに追加するにはどうすればよいですか?
コメントに答えるために、ここでコマンドを説明します。
結果 (送信):
結果 (Rx):
video-streaming - gstreamer パイプラインのフレーム解像度設定
gstreamer を使用して、IP ベースのディスプレイでラップトップ画面をストリーミングしています。
両端のパイプラインは次のとおりです。
ラップトップ:
IP ディスプレイ:
問題は、ディスプレイの解像度が 1024x768 ですが、ソース プラグインが 1920x1080 を生成していることです。これは私のラップトップの解像度です。
これを IP ディスプレイの解像度に変換する必要があります。ラップトップのパイプラインを次のように変更しました。
次のエラーで失敗します。
gst-inspect-1.0 を使って dx9screencapsrc の caps を見ると、幅と高さの cap があります。
画面全体をキャプチャして 1024x768 に変換するという要件を満たすにはどうすればよいですか
gstreamer - gstreamer playbin のみのビデオ
次のパイプラインを使用しています
これは、ビデオが含まれていないビデオ ファイル ( mp4 ) に対しては正常に機能します。しかし、ビデオとオーディオの両方を含む mp4 ファイルを渡すと、再生に失敗します。
パイプラインを再構築して、ビデオのみの MP4、オーディオとビデオの両方を含む MP4 の両方の種類のファイルで動作できるようにする方法を教えてください。