問題タブ [v4l2]
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.
linux - v4l2 ビデオ デバイスの最大解像度を取得する
接続されたビデオ デバイスが提供できる最大解像度を検出するにはどうすればよいですか?
何もキャプチャしたくありません。v4l2 からこの情報を取得するだけです。
ありがとう!
opencv - OpenCV は v4l2 をサポートしていますか?
OpenCV を使用して Python プログラムを作成していますが、v4l2 カメラから画像をキャプチャできません。
v4l2 を使用している PS2 EyeToy と Droidcam (Android 仮想 Web カメラ) の両方で試しましたが、いずれも機能しません: cv.CaptureFromCAM(0) は None のみを返します。
他のプログラムで両方のウェブカメラを使用できます (VLC と Kamerka を試しました)。
OpenCV は v4l2 ではなく v4l のみをサポートしていると思います。
どうすればこの問題を解決できますか? v4l2->v4l コンバーターは存在しますか?
編集: cv.CaptureFromFile は ffmpeg を使用してビデオ ファイルをデコードすることを読みました。フォーマットを手動で指定することは可能ですか? ffmpeg のデマルチプレクサを使用できますvideo4linux2
か?
kernel - v4l2 複数デバイスのトラブル
v4l2 を使用して 2 つの Web カメラを開きます。30 fps ですべて正常に動作します。60 fps で、最初のトラブル。最初のカムの FPS は約 20、2 番目のカムの FPS は約 0 ~ 3 です。異なるスレッド (および異なるプロセッサ カーネル) で実行しようとしましたが、同じ問題です。v4l2 ドライバーに問題があると思います。
私のタスクは非常に単純です。1 台のコンピューターで 60 fps の 2 つの Web カメラからデータをキャプチャします。出来ますか?問題は何でしょうか?コードを見せるかもしれませんが、大きいです。
私の英語でごめんなさい。
h.264 - Gstreamer を使用してカメラから h.264 ストリームをキャプチャする
要素を使用して、ローカルにインストールされた Logitech C920 カメラから H264 ストリームをキャプチャしようとして/dev/video0
いGstreamer 1.0
v4l2src
ます。
v4l2-ctl --list-formats
カメラが H264 ビデオ形式を提供できることを示しています。
しかし、パイプライン
# gst-launch-1.0 -vvv v4l2src device=/dev/video0 ! video/x-h264, width=800, height=448, framerate=30/1 ! fakesink
not-negotiated (-4)
私にエラーを与え続けます:
どんな助けでも!
linux - V4L2_PIX_FMT_YUYV: YUYV から RGB24 に変換しますか?
Video4Linux2 を使用して Web カメラから画像データをキャプチャしています。デバイスから返されるピクセル形式は V4L2_PIX_FMT_YUYV です。http://linuxtv.org/downloads/v4l-dvb-apis/V4L2-PIX-FMT-YUYV.htmlによると、これは YUV422 と同じなので、 http://の説明に基づいて YUV422 から RGB24 への変換を使用しました。 paulbourke.net/dataformats/yuv/ .
驚くべきことに、結果は奇妙な紫/緑の画像になります。したがって、YUYV は YUV422 とは異なるようです (また、同じ/同じではないピクセル形式 V4L2_PIX_FMT_YUV422P も存在しますか?)。
だから私は今完全に混乱しています.V4L2_PIX_FMT_YUYVビットマップを実際のRGB24に変換するにはどうすればよいですか? そこに例はありますか?
c++ - V4L2: デバイス/入力ステータスの取得
次の質問の答えは、もしかしたら誰でも知っているかもしれません...
USBデジタルカメラを接続しました(入力ピンが1つあります-0)。
構造v4l2_input (例: http://pastebin.com/FFvNAkQ3 )を介して 5 秒ごとに入力ステータスをチェックし、フラグの 1 つ (V4L2_IN_ST_NO_POWER または V4L2_IN_ST_NO_SIGNAL または V4L2_IN_ST_NO_H_LOCK) が設定されている場合に状況を処理します。
問題は、USB デジタル カメラのプラグを抜いても、入力ステータスが常に 0 (0x00) になることです。デバイスが取り外されたときにドライバーが入力ステータスフラグを変更しないのはなぜですか?
入力ピンだけでなく、デバイスの状態も確認できるのではないでしょうか?はいの場合、どの ioctl リクエストを設定する必要がありますか?
c++ - V4L2 の誤解
C++ プログラムのバッファのサイズに小さな問題があります。V4L2 を使用してカメラから YUYV 画像を取得します (例はこちらから入手できます) 。
1 つの画像を取得し、それを独自の画像構造に入れたいと考えています。V4L2 構造体とそのサイズによって指定されるバッファーは次のとおりです。
私の構造では、サイズが width*height*bitSize の新しいバッファー (mybuffer) を作成します (YUYV または YUV422 画像を取得するため、バイト サイズは 4 です)。
問題は、バッファーbufが作成したものと同じサイズになることを期待していたことです。しかし、これは当てはまりません。たとえば、640*480 の画像 buf=614400 と mybuffer=1228800 (2 倍の大きさ) を取得する場合などです。
なぜこれが当てはまるのか、誰にも分かりますか?
c - opencvの2つのWebカメラからのエラーストリーミング
2 つの USB Web カメラから同時に読み取ることにより、安価なステレオ カメラを作成しようとしています。私のコード:
次の出力が得られます。
私のカメラは両方とも Logitech c210 で、Ubuntu 12.10 を使用しています。1 台のカメラだけからストリーミングしようとすると、各カメラからのフィードを見ることができます。1 台のカメラは cvCaptureFromCAM(1) で、もう 1 台は cvCaptureFromCAM(2) ですが、同時には機能しません。カメラが使用していると思われる最新のv4lをコンパイルしてみました。まだ何もありません。
編集:
私の USB バスは 900 MB/s しかサポートしておらず、各カメラはデフォルトの解像度 640x480 で 480 MB/s を使用していました。プログラムを実行する前に v4l2-ctl プログラムを使用してデフォルトの解像度を変更したところ、より低い解像度で動作しました。
c - V4L2 API からの YUY2 から RGB24 への変換
V4L2 API を使用して画像をキャプチャし、その画像を opencv Mat に入れようとしています。問題は、私の Web カメラが YUYV (YUY2) でのみキャプチャすることです。そのため、最初に RGB24 に変換する必要があります。これが私が使用している完全な V4L2コードです。
写真の中のオブジェクトは認識できましたが、すべてピンクとグリーンで、横に引き伸ばされて歪んでいます。多くの異なる変換式を試しましたが、同じ基本的なピンク/グリーンの歪んだ画像が得られました。この図に使用されている式はhttp://paulbourke.net/dataformats/yuv/からのものです。Linux で Shotwell フォト ビューアーを使用して .raw 画像を表示しています。gimpで開くことができませんでした。私は画像形式を保存する方法についてそれほど知識がありませんが、何らかのヘッダーが必要であると想定していますが、Shotwell フォト ビューアーは機能しているようです。これが間違った画像の理由である可能性がありますか?
V4l2 が、p が指す符号付きまたは符号なしのバイト イメージを返すかどうかはわかりません。しかし、これが問題である場合、私の画像は単にオフカラーになるのではないでしょうか? しかし、ジオメトリも歪んでいるようです。浮動小数点へのキャストと浮動小数点からのキャストを適切に処理したと思います。
誰かが私を理解するのを手伝ってくれますか
- *void p 変数に含まれる基になる型を見つける方法
- 使用する型の説明を含む、YUYV から RGB24 に変換するための適切な式
- フォーマット (ヘッダー) なしで画像を保存し、Shotwell で表示することが問題になる可能性はありますか?
- RGB24 画像を適切に保存する簡単な方法はありますか?
- 一般的なデバッグのヒント
ありがとう