- USBカメラの情報を確認する方法
- g-streamerを使ってカメラの入力をディスプレイに表示する方法
カメラの接続状況を確認
Linuxではv4l2ドライバを使用してUSBカメラを制御しています。
v4l2を使ってカメラの情報を確認していきましょう。
v4l2のインストール
aptコマンドで「v4l2」をインストールします。
sudo apt install v4l-utils
接続されているデバイスの確認
「v4l2」で認識されているデバイス一覧を表示します。
v4l2-ctl --list-devices
HD USB Cameraが/dev/video0として認識されていることが分かりました。
今回はこちらのsonyのwebカメラを使用して動作確認しています。
カメラの対応フォーマットを確認
カメラの対応フォーマットは、「v4l2」もしくはg-streamerのコマンド「gst」で確認することが出来ます。
どちらでも結果は変わらないので、好きなコマンドを使ってください。
v4l2でカメラの対応フォーマットを確認
v4l2コマンドでカメラの情報を確認していきます。
v4l2-ctl --list-formats-ext
Index : 0 Type : Video Capture Pixel Format: 'MJPG' (compressed) Index : 1 Type : Video Capture Pixel Format: 'YUYV'
カメラが対応しているピクセルフォーマットが2種類あることが確認できました。
Size: Discrete 1600x1200 Interval: Discrete 0.067s (15.000 fps)
例えばPixel Formatが「MJPG」の1600×1200画素の時に、最大15fpsとなることが分かります。
g-streamerでカメラの対応フォーマットを確認
続いて、g-streamerの機能でもカメラの情報を確認できるので試してみます。
gst-device-monitor-1.0
v4l2と同様にピクセルフォーマットが2種類あることが確認できました。
カメラからのデータ入力を確認
カメラからデータを取得できているか、v4l2コマンドで確認します。
解像度とピクセルフォーマットを指定して、ストリームを取得していきます。
今回は「YUYV」の1600×1200を指定しました。
v4l2-ctl --set-fmt-video=width=1600,height=1200,pixelformat=1
v4l2-ctl --stream-mmap=3 --stream-count=300
<<<<<<<<<<< 9.43 fps <<<<<<<<< 9.35 fps ︙
最大10fpsということだったので、問題なくカメラからの入力が取得できていることが分かります。
カメラの入力をディスプレイに表示する
g-streamerを使ってカメラの入力をディスプレイに表示します。
gst-launch-1.0 \
v4l2src device="/dev/video0" ! \
"video/x-raw, width=1600, height=1200, format=(string)YUY2" ! \
xvimagesink -e
g-streamerを使ってカメラの入力データをディスプレイに表示できました。
それぞれのコマンドの意味はこのようになっています。
まとめ
v4l2を使ってカメラの情報を確認しました。
v4l2で認識されているデバイス一覧を表示し、カメラの対応フォーマットを確認していきました。
接続状況を確認したあとは、g-streamerを使ってカメラの入力をディスプレイに表示しました。
参考文献
![](https://nisshingeppo.com/ai/wp-content/uploads/cocoon-resources/blog-card-cache/0e54fc087a6ad13f0d1991ffdfa40991.jpg)
コメント