問題タブ [openmax]
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.
video - Raspberry Pi 用 Gstreamer ビデオ シンク
gstreamer 1.0がインストールされたRaspberry piボードで作業しています。ボード上でいくつかのパイプラインをテストしていました。しかし、Raspberry pi では、ビデオ シンクが機能していません。次のようなさまざまなビデオシンクを試しましたximagesink, xvimagesink, autovideosink etc
しかし、これらのビデオシンクはどれもビデオを再生できません。
私が得ているエラーは
gstreamer でビデオを表示できるように、Raspberry pi で使用できる他のビデオ シンクはありますか?
Broadcom 2835 用に特別に作成されたビデオ シンクはありますか、または openmax はビデオシンクを提供しますか?
そして、この XvOutput の問題を解決するアイデアはありますか?
android - stagefright を使用して OMXCodec の複数のインスタンスを作成することは可能ですか?
libstagefright.so
Androidフォンでメディア操作に使用したい。この ページに記載されている例を調べました。私は同じことを実装しようとしています。この実装を複数の OMXCodec
インスタンスでテストしているときに、出力バッファーが互いに競合します。
私はEclipseでAndroidプロジェクトを開発し、libstagefright
JNIでリンクしました。2 つのクラスCustomDataSource
(派生するMediaSource
) とを追加しましCustomOmxDecoder
た。CustomDataSource
クラスは のすべての仮想メソッドを実装しますMediaSource
。CustomOmxDecoder
クラスでは、メソッドを呼び出しますOMXCodec::Create
。次に、の個別のインスタンスを持つ 2 つのスレッドを作成しましたCustomOmxDecoder
。このインスタンスを使用してProcessNextFrame
、メインvideoDecoder->read()
メソッドを呼び出すメソッドを呼び出します。これが私の設定です。
さて、上記の設定でアプリを実行すると。OMXCodec
両方のソースのフレームをデコードしますが、表面にレンダリングすると、競合する出力が表示されます。両方のソースのデコードされたバッファが何らかの形で内部的に噛み合っているようです。2 つの h264 デコーダーを同時に作成しています。ここで何が問題になる可能性がありますか?に関連できますMediaBufferGroup
か?call を呼び出した後、 buffer inを取得しCustomDataSource
、 buffer in を解放しCustomOmxDecoder
ます。ProcessNextFrame
videoDecoder->read()
どんな提案も素晴らしいでしょう。ありがとう。
android-ndk - OMXCodec::onEvent -- OMX の不正なパラメータ
OMXCodec
を通じて使用しようとしていますStagefright
。ICS
Android のバージョンのコードを実装しましCustomDataSource
た。派生する 2 つのクラスと、メソッドを呼び出して読み取り操作を実行して h264 フレームをデコードするクラスMediaSource
があります。ソフトウェア デコーダーを搭載したデバイスでこの実装をテストしたところ、正常に動作しました。ここで、ハードウェア h264 デコードを使用して Android フォンで同じ実装を実行しようとすると、読み取り呼び出しでエラーが返されます。エラーは次のとおりです。CustomOmxCodec
OMXCodec::Create
omx.google.video.avc
0x80001005
ですOMX_ErrorBadParameter
。-1103
読み取り操作でエラーコードを取得します。さまざまなパラメーターを試しましたが、成功しませんでした。
完全なログは次のとおりです。
これに関する方向性に感謝します。
encoding - Raspberry Pi: MJPEG エンコーディング
Pi でビデオを H264 から MJPEG にトランスコードしたいと思います。
概略的には、H264 raw ストリームをパイプに注入し、別のパイプから MJPEG でエンコードされた同じストリームを (リアルタイムで) 取り出すプロセスがあります。現在、H264 を取り込んで MJPEG を吐き出すブラック ボックスは、FFMPEG で作成された単純なトランスコード プログラムです。このアプローチは最新のワークステーションではうまく機能しますが、Raspberry Pi では CPU への負担が大きすぎます。
The Pi は OpenMax を使用したハードウェア H264 デコードをサポートしており、そのままでは MJPEG エンコードをサポートしていないことを私は知っています。
MJPEGハードウェアエンコーディングも行う方法はありますか?
openMax でこの種のトランスコーディングを行う方法の例はありますか?
(このプロジェクトの存在は知っていますが、質問 1 を満たしていません)
android - GB の OpenMAX ライブラリを使用して Android アプリを作成しましたが、表示されませんでしたか?
OpenMAX-ALを使用してジンジャーブレッドでAndroidアプリを開発しようとしています。
基本的にopenMAX-ALライブラリはGingerBreadでサポートされていません.そのため、icsのopenmax-alライブラリを使用しています(ソースをビルドすることにより).Gingerパンにインストールした後、そのライブラリを使用してサンプルアプリケーションをエラーなしでコンパイルできました..また、アプリケーションの lib フォルダー内にライブラリをプッシュしようとしましたが、それでも同じエラーが発生しました。
ジンジャーブレッドで openmax-al ライブラリを使用するにはどうすればよいですか。誰かが私にアイデアを提案できますか、私は過去1週間苦労していますか? 前もって感謝します。
よろしくVS
gstreamer - Raspberry Pi で gstreamer を使用して h264 ストリームから jpeg をキャプチャする
Raspberry Pi 用の新しいカメラ アドオンの 1 つがあります。まだ video4linux をサポートしていませんが、1080p h264 ストリームを吐き出す小さなプログラムが付属しています。これが機能することを確認し、ビデオを標準出力にプッシュしました:
このストリームを処理して、最終的にビデオのスナップショットを 1 秒に 1 回取得したいと考えています。
1080p であるため、H264 エンコーディングには rpi のハードウェア サポートを使用する必要があります。これをサポートするアプリは gstreamer だけだと思うので、ffmpeg または avconv を使用したソリューションは機能しません。http://www.trans-omni.co.uk/pi/GStreamer-1.0/build_gstreamerのビルド スクリプトを使用して、gstreamer とハードウェア H264 エンコーディング用のプラグインを作成しましたが、動作しているように見えます。
そのため、stdin でビデオを取得し、1 秒に 1 回新鮮な jpeg を吐き出す gst-launch パイプラインを構築する必要があります。gstreamer の 'multifilesink' シンクを使用してこれを行うことができることを知っているので、次の短いスクリプトを作成して起動します。
問題は、それが機能しないことです: gstreamer は、プリロール状態で永遠に座っているだけで、貴重な jpeg を吐き出すことはありません。
gstreamer の -v フラグを設定した出力が役立つ場合は、http://pastebin.com/q4WySu4Lにあります。
誰かが私が間違っていることを説明できますか?
c - OMX.broadcom.video_decode コンポーネントでビデオ フレームの幅とビデオ フレームの高さを設定するにはどうすればよいですか?
生のh264ストリームを受け入れてデコードし、レンダリングに渡すopenmaxを使用して、ビデオプレーヤーパイプラインを試していました。ポートの構成中に、フレームの幅と高さを 1280 * 720 に設定したいのですが、パラメーターの設定中にパラメーター エラーが発生しました。openmax コンポーネントでポートのフレーム幅とフレーム高さを設定する方法、これらのフレームワークの初心者として、私の知識は限られています。幅と高さを設定する前に設定する必要がある他のフィールドはありますか?
これは私がパラメータを設定しようとした方法です
そして、私はエラーを受け取っていました
それが不正なパラメータ エラーです。なぜそれが来るのですか?
components - openmax il ソース コンポーネントにはいくつの出力ポートがありますか?
libomxil-bellagio-master
の実装である をテストしていopenmax-il
ます。このコードでは、ソース コンポーネント (ソース コード内のパスはlibomxil-bellagio-master/src/base/
) に出力ポートが 1 つしかないことがわかりました。
と のファイルがaudio
ありvideo
ます。そして、このファイルを分離するファイルリーダーを書きたいと思います。このファイルリーダーにはいくつの出力ポートが必要ですか?
android - openmax avc デコーダーのレイテンシーを短縮するには?
openmax のコーデックを使用して Android ビデオ会議アプリを作成しようとしています。avc デコード用に OpenMAX IL を使用して対処したところ、空のバッファ コマンドを送信してからバッファ完了コールバックを埋めるまでに大きな遅延が発生することがわかりました。私のケースは、B スライスのない 4-cif h.264 エレメンタリ ストリームを扱っています。私のomxの呼び出しシーケンスは次のとおりです。
- avc デコーディング ロールの openmax ノードを割り当てます。
- ノードの状態をアイドル状態に遷移させます。
- ポート定義の構成。
- 入力ポートと出力ポートにバッファを割り当てます。
- ノードの状態を実行中に遷移させます。
- 空のバッファ用に 1 つのスレッドを開始し、フィル バッファ用に別のスレッドを開始します。
ログ出力は、8 フレームのレイテンシーがあることを示しています。空のバッファーから #9 コマンドが送信され、メッセージ FILL_BUFFER_DONE #1 が到着しました。samsung-note2、htc-one-x、およびその他の携帯電話でテストしましたが、すべてデコードの遅延が大きくなっています。
この遅延は、ビデオ会議アプリの受け入れには大きいです。この待ち時間を短縮するのに役立つ人はいますか?
ログ出力は次のようになります。