1

gstreamer を使用してCoral DevBoardでUI-3370CP-C-HQ R2 カメラを動作させようとしています。

カメラは標準の v4l2 カメラではないため、開発ボードでueyesrcgst プラグイン ( https://github.com/atdgroup/gst-plugin-ueye ) をダウンロードしてコンパイルしました。

私のアプリケーションでは、フレームを opengl テクスチャとして使用する必要があり、作業中のパイプラインの構築に行き詰まっています。

これまでのところ、カメラから何かを得ることができた唯一の方法は、フレームを jpeg として保存することです。

gst-launch-1.0 tee ueyesrc num-buffers=10 ! jpegenc ! filesinklocation=ueyesrc-frame.jpg

私の場合、ueyesrc で提供されているパイプラインの例は機能gst-launch-1.0 ueyesrc ! videoconvert ! xvimagesinkしません。これは、デバイスに X サーバーがないためです (Wayland ではありません)。

gst-launch-1.0 ueyesrc ! videoconvert ! glimagesink次のエラーを返します。

Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Got context from element 'sink': gst.gl.GLDisplay=context, gst.gl.GLDisplay=(GstGLDisplay)"\(GstGLDisplayWayland\)\ gldisplaywayland0";
Setting pipeline to PLAYING ...
New clock: GstSystemClock
ERROR: from element /GstPipeline:pipeline0/GstGLImageSinkBin:glimagesinkbin0/GstGLImageSink:sink: Failed to convert multiview video buffer
Additional debug info:
gstglimagesink.c(1741): gst_glimage_sink_prepare (): /GstPipeline:pipeline0/GstGLImageSinkBin:glimagesinkbin0/GstGLImageSink:sink
Execution ended after 0:00:00.486558117
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...

標準の USB Web カメラ (Logitech HD Pro Webcam C920) を使用すると、正常にgst-launch-1.0 v4l2src ! videoconvert ! glimagesink動作します。

何がうまくいかないのか、それについての手がかりを見つける方法がよくわかりません。途中で変換ステップが欠けていると思いますが、修正方法がわかりません。誰かがアイデアを持っていますか?

編集1:それは確かに変換の問題です。 CPU 使用率が非常に高く (iMx8 の 4 つのコアすべてで >90%)、フレームレートは最大 6.5 fps に達しますが、videoconvert大文字でフォーマットを指定して動作させました。gst-launch-1.0 ueyesrc exposure=2 ! videoconvert ! video/x-raw,format=YUY2 ! glimagesink sync=False

4

0 に答える 0