問題タブ [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.
raspberry-pi - ラズベリーパイ uvcdynctrl フォーカスコントロールがクイックカム 9000 プロにありません
Logitech QuickCam 9000 Pro (V-UBM46) を使用していますが、RaspberryPi からフォーカスを制御できません (すべてのパッケージが最新です)。
uvcdynctrl を使用して使用可能な Web カメラ コントロールを一覧表示すると、
フォーカス コントロールがありません。ただし、Ubuntu 13.04 マシンで同じコマンドを実行すると、フォーカス コマンドが存在し、使用できます。
libwebcam0、uvcdynctrl、uvcdynctrl-data、libv4l-0 のバージョンを確認しましたが、RaspberryPi と Ubuntu の両方で同じバージョンに更新されています。唯一の違いは libv4l-0 で、Ubuntu のバージョンは 0.8.9-4 で、RaspberryPi は 1.0.0-1 です。
RaspberryPi に欠落している、または古くなっている別のパッケージまたはドライバーはおそらくありますか? Raspbian にフォーカス コントロールを「認識」させるにはどうすればよいですか?
c - 利用可能なキャプチャ形式を一覧表示する
V4L は初めてなので、C でカメラからフレームをキャプチャするために、video4linux2 ライブラリの使用を開始することにしました (Ricoh Co. のカメラで uvcvideo モジュールを使用しています)。いくつかのガイドとチュートリアルに従い、実行中のプログラムを取得することができました。私の質問は、主にこの通常のコード行に関するものです:
ここで、キャプチャ時に使用する実際のビデオ形式を設定します。ご覧のとおり、このサンプルでは MJPEG ( http://lxr.free-electrons.com/source/include/uapi/linux/videodev2.h#L390 ) を使用しています。これは素晴らしいフォーマットかもしれませんが、私のアプリケーションではおそらくピクセルごとに単純な RGB フォーマットが必要になるでしょう。このため、 などの RGB 形式の定数を使用してみましV4L2_PIX_FMT_RGB24
た。どういうわけか... v4l2はそれが好きではありません。これはハードウェア関連だと思いますが、MJPEG の操作はできるだけ避けたいと思います。テスト目的で、他の定数と形式を使用してみましたが、何をしても、v4l2 はpixelformat
フィールドの値を変更し続けました。
ここで私の質問は次のとおりです。受け入れられたビデオ形式のリストを取得する方法はありますか (つまり、カメラ/v4l2 で受け入れられます)、そこから MJPEG 以外のものを選択できますか? MJPEG に固執する必要があると思われる場合は、MJPEG を操作し、最終的にはキャプチャを GUI フレームに戻すことができるライブラリをお勧めしますか?
バーバリアンのテスト コード
次のトリックを使用して、ハードウェアで利用可能なすべてのフォーマットをテストしました。まず、すべてのフォーマットのリストを取得するためのシェルスクリプト...
...このCプログラムで使用される出力:
このテストは、 と のみが機能していることを示していV4L2_PIX_FMT_YUYV
ますV4L2_PIX_FMT_MJPEG
。これを改善する方法はありますか、それともハードウェア関連ですか?
linux - v4l がカーネルによって提供されるヘッダーの使用を推奨しないのはなぜですか?
Video4Linux のドキュメントには次のように書かれています。
V4L2 ioctl 要求を指定するマクロと定義は、videodev2.h ヘッダー ファイルにあります。アプリケーションは、コンパイルするシステムのカーネル ソースにバージョンを含めずに、独自のコピーを使用する必要があります。
では、このファイルをプロジェクト フォルダにコピーする必要があり/usr/include/linux/videodev2.h
ますか? はいの場合、なぜですか?
camera - Qt5 のウィジェットに Web カメラ ビデオ (オーディオなし) をストリーミングする
Qt5 のドキュメントから、カメラ入力を処理する多くのウィジェットとクラスがあることが分かります。一方、ドキュメンテーションは、携帯電話のカメラや実際のカメラでさえ意図されているように多くのことを読みます. ビューファインダー、録画ボタン、スナップショットボタンなどを搭載。
私が欲しいのは、デスクトップ Qt5 プログラム内のウィジェットで、ウェブカメラ (/dev/video0, v4l2) のビデオ ストリームを表示できます。コードを介して制御されるすべてのパラメーター。解像度、明るさ、およびカメラがサポートするもの。GUI 要素はありません。
最小限だが機能するコード例を歓迎します。C++/Qt5 または pyqt5 のいずれか。しかし、どの接続でどのクラスを使用するべきかというヒントも最初になります。
どうもありがとうございました!
PS してください、あたかもそれが自明であるかのように、ドキュメンテーション ページへのリンクのみ (!) で構成される回答はありません。カメラの例がありますが、あまり役に立ちませんでした。そうでなければ、ここで質問する必要はありません。