v4l2loopback-ctl set-fpsまたはset-capsは解析できないか、/sys/devices/virtual/video4linuxなどのエラーが発生します。そのファイルやディレクトリはありませんか?

v4l2loopback-ctl set-fpsまたはset-capsは解析できないか、/sys/devices/virtual/video4linuxなどのエラーが発生します。そのファイルやディレクトリはありませんか?

関連情報である可能性: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-ctl2020年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に強制する場合は自分で決定する必要があります。

おすすめ記事