関連情報である可能性:Ubuntu 20.04、Logitech 1080p USBウェブカメラ、NVidia GTX 1080
v4l2loopbackをインストールしましたが動作します解決策ただし、パラメーターからデバイスに/dev/video5を指定する必要があります。 v4l2-ctl -d /dev/video5 を使ってみたところ必須だったようですが、コマンドを使って fps または set-caps を強制的に実行しようとすると、次のような奇妙なエラーが発生します。
v4l2loopback-ctl set-fps /dev/video5 24
can't parse device
または
v4l2loopback-ctl set-caps "image/jpeg, width=1280, height=720, fps=30/1" /dev/video5
cat: /sys/devices/virtual/video4linux/video5/format: No such file or directory
unknown control 'keep_format'
video4linuxディレクトリはありませんが、なぜそこに必要なのかわかりません。
その他の情報:
v4l2-ctl --list-devices
v4l2loopback (platform:v4l2loopback-000):
/dev/video9
Rift Sensor: CV1 External Camer (usb-0000:00:14.0-10):
/dev/video3
/dev/video4
Rift Sensor: CV1 External Camer (usb-0000:00:14.0-6.3):
/dev/video0
/dev/video1
UVC Camera (046d:0821) (usb-0000:00:14.0-9.1):
/dev/video5
/dev/video6
Rift Sensor: CV1 External Camer (usb-0000:00:14.0-9.4.2):
/dev/video7
/dev/video8
そして
dmesg | grep -i "Camera"
[4.637790] input: UVC Camera (046d:0821) as /devices/pci0000:00/0000:00:14.0/usb1/1-9/1-9.1/1-9.1:1.2/input/input21
ベストアンサー1
set-fps
構文が正しくありません(すべて解放v4l2loopback-ctl
2020年12月18日現在のバージョン):
$ v4l2loopback-ctl -h | grep set-fps
set-fps <FPS> /dev/videoX Set device fps (if format is already
したがって、次のようにする必要があります。v4l2loopback-ctl set-fps 24 /dev/video5
これアップストリームを読むfpsとデバイスが交換されました。ただし、これはまだリリースされていない次のバージョンでパラメータがv4l2loopback
置き換えられ、アップストリームリポジトリがすでにこれらの変更を統合して文書を更新しているためです。
set-caps
ディレクトリがない場合、/sys/devices/virtual/video4linux/video5/
名前はループバックデバイスを持っていません/dev/video5
。
ユーティリティv4l2loopback-ctl
はただループバックデバイスで使用できます。すべてのビデオデバイスでフレームレートとフォーマットを設定する汎用ツールではありません。だから:
- ドライバがロードされていることを確認してください。
- デバイスが作成されたのと同じ方法でドライバがロードされていることを確認してください
dev/video5
。
次の方法で問題を解決できます(新しいパラメータセットを使用してドライバをロードする前に、ドライバをアンロードする必要があります)。
$ sudo rmmod v4l2loopback
$ sudo modprobe v4l2loopback video_nr=5
まず第一に、v4l2loopback-ctl
スクリプトは単純なgstreamerパイプを使用してデバイスにフォーマットを強制します。残念ながら、このパイプラインは有効なストリームの作成に失敗するため、image/jpeg
フォーマットをJPEGに強制する場合は自分で決定する必要があります。