問題タブ [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 - GObjectとGlibを学ぶ教材
私は C に慣れていますが、GObject
とGlib
forを学ぶ必要がありgstreamer
ます。私がネットで見つけたのはGobjectリファレンスマニュアルだけです。主な焦点はgstreamerであるため、Gobject/Glibのチュートリアルを探しています。
したがって、他のリソースを共有して、glib と gobject を学習してください。
python - フレームをドロップせずにgstreamerでライブビデオを録画するにはどうすればよいですか?
Python の gstreamer 0.10 を使用して、v4l2 ビデオ ソースを同時に表示し、xvid-in-avi に記録しようとしています。長期間にわたって、コンピューターはこれを行うのに十分な速さですが、別のプログラムがディスクを使用すると、フレームがドロップします。それは十分に悪いことですが、再生すると、低いフレームレートでエンコードできたフレームを表示する代わりに、フレームがドロップされたビデオに動きのバーストがあります。
パイプラインはv4l2src ! capsfilter ! tee ! queue ! xvidenc ! avimux ! filesink
で、ティーも に沈みqueue ! xvimagesink sync=false
ます。videorate
の前に追加しようとしましxvidenc
たが、それは事態を悪化させるようです。
このパイプラインで圧縮されていないビデオをディスクにスプールし、バックグラウンド スレッドでエンコードすることを検討しました。この問題を解決するために他に何ができますか? ドロップフレームで間違ったことをしていますxvidenc
か? avimux
エンコーダーの前にあるキューのサイズを大幅に増やすことはできますか?
video - Gstreamer APIを使用して2つのビデオをマージできますか?
2つのビデオソース(プレゼンターが話しているものと、スライドがあり、オーディオがないもの)を取得してマージできる単純なLinuxCLIアプリケーションを作成したいと思います。
出力ビデオ全体を2つのオリジナルビデオと並べて表示したいと思います。それができない場合、私の次善の選択肢は、プレゼンターが隅にある小さなフレームにある「ピクチャーインピクチャー」スタイルのビデオです。
数時間の調査から、GStreamerはこれを実行できる可能性があるようです。試してみる前に誰かが確認できますか?
それができない場合、私が使用できる可能性のある他のAPIはありますか?
gstreamer - GStreamer を使用して、rtp ビデオ ストリームからの MPEG ヘッダーのすべてのキー フレームのユーザーデータ フィールドを解析します。
GStreamer を使用して MPEG ストリームを解析するにはどうすればよいですか? MPEG ストリームのキー フレーム (P フレームではない) のみのすべてのユーザーデータ フィールドを処理する必要があります。
MPEG ストリームは rtp プロトコルを介して送信されます。GStreamer パイプラインを使用してビデオを表示できますが、最終的な要件は、すべてのキー フレームのユーザーデータ フィールドを解析し、その情報を表示ビデオにオーバーレイすることです。
python - gstreamerを使用してusbビデオキャプチャ+dvbデバイスからビデオを取得するにはどうすればよいですか?
avermedia volar HX usbスティックを所有しています。複合入力からキャプチャしたいのですが、入力を選択できないため、キャプチャできません。+ pythonでgstreamerを使用しています。gsttunerselectinputを使用する必要があると思いますが、gstreamerのインターフェースを使用した経験がありません。誰かが簡単な例を投稿できますか?
ありがとう!
video - gstreamerでavi動画を表示するには?
追跡結果を再生する必要があるオブジェクト追跡プログラムを作成したいと考えています。gstreamer は優れたマルチメディア フレームワークであるため、デモ プログラムで使用したいと考えています。しかし、ビデオ表示を詳細に実装する方法がわかりません。誰でも助けることができますか?
Avidemux プラグインを使用すると、オーディオとビデオの部分を avi ファイルから分離できますが、次に何をすればよいでしょうか?
非圧縮の avi ファイルを開く場合、avidemux プラグインの出力パッドをビデオ シンクに直接リンクすると機能しますか?
ところで、効率面でどちらのビデオシンクが優れているでしょうか? プラグイン リファレンスを調べたところ、多くのビデオ シンクが見つかりました: glimagesink、osxvideosink、sdlvideosink、ximagesink、xvimagesink、dfbvideosink、fbdevsink、gconfvideosink 私のプラットフォームはubuntu 9.04です。
ティア~
c++ - 複数の動画を1つにまとめる
私は3つのビデオを持っています:
- ビデオカメラで撮影された講義
- 講義で使用されたコンピューターのデスクトップキャプチャのビデオ
- とホワイトボードのビデオ
これらの3つのコンポーネントが画面の特定の領域を占める最終的なビデオを作成したいと思います。
これを可能にするオープンソースソフトウェア(mencoder、ffmpeg、virtualdub ..)はありますか?どちらをお勧めしますか?
または、プログラムでそのようなものを作成できるC / C ++ APIはありますか?
編集
将来的には複数の講義が録音される予定です。これは、汎用/自動化されたソリューションが必要であることを意味します。
私は現在、この仕事をするためにGStreamerでアプリケーションを書くことができるかどうかをチェックしています。それについて何かコメントはありますか?
解決しました!
私はGStreamerのvideomixer要素でこれを行うことに成功しました。gst-launch構文を使用してパイプラインを作成し、それをgst_parse_launchでロードします。これは、複雑なパイプラインを実装するための非常に生産的な方法です。
これは、2つの着信ビデオストリームとロゴ画像を受け取り、それらを1つのストリームにブレンドして複製し、同時に表示してディスクに保存するパイプラインです。
c++ - GStreamergst_element_factory_makeが失敗する
GStreamerテストアプリケーションを試していますが、実行時に次の行が失敗します。
私はMacOSXを使用しており、MacPortsを介してGStreamer、libogg、およびvorbis-toolsをインストールしています。だから私はそれが失敗する理由がわかりません。
それを機能させる方法について何か提案はありますか?
編集:解決しました!
問題は、gst-plugins-goodパッケージからautodetectプラグインをインストールする必要があることでした。
これを機能させたアクションのリストは次のとおりです。
MacPortsインストールを削除します。
sudo port uninstall gstreamer
〜/.profileに次の行を追加します
gstreamer、gstreamer-plugins-base、gstreamer-plugins-良いソースをダウンロードしてください。
gstreamerをビルドしてインストールします(./configure、make、make install)
gstreamer-plugins-baseをビルドしてインストールします(./configure、make、make install)
そして、gstreamer-plugins-goodの場合、autodetectパッケージのみをビルドしました。これは、すべてをビルドすると、現在必要のない、または気にしない一部のプラグインでエラーが発生したためです。私はこのようにしました:
現在、プログラムはビルドされて実行されます。ただし、オーディオ出力が得られないようです:(しかし、それは別の問題です。
video - 複数の着信オーディオおよびビデオストリームを1つのコンテナファイルにバンドルするLinuxアプリケーション?
私は地元の大学にビデオオンデマンドサービスを実装するように割り当てられました。講義のさまざまな側面(ビデオ、オーディオ、スクリーンキャスト、ホワイトボード)が記録されます。講義中に、これらすべてのデータストリームが1つのLinuxサーバーに到着します。このサーバーは、これらすべてのストリームをトランスコードして1つのコンテナー(Matroska)ファイルにバンドルする必要があります。
私の選択肢は次のようです:
- GStreamerアプリケーションを作成する
- FFMPEGで何かをする
- VLCで何かをする
- ...?
過去に似たようなことをした人はいますか?何かお勧めできますか?
編集
興味のある人のために、ここに私の発見のいくつかがあります:
- Matroskaはストリーミングに適した形式ではありません(可能ですが、その主な目的ではありません)
- フラッシュストリーミングには、MPEG4を使用できます
- さまざまなビデオを1つのビデオに結合し、各サブビデオが画面全体の長方形の部分を占める場合は、このGStreamerスクリプトが役立ちます(このブログ投稿で見つけました)。
- デスクトップキャプチャはVLCで正常に機能します