v4l2-loopback は一度だけ実行でき、停止または再起動はできません。

v4l2-loopback は一度だけ実行でき、停止または再起動はできません。

Chromeが認識できる仮想Webカメラを作成するには、v4l2-loopbackを使用しています。ループバックを最初に開始した後は、すべてがうまく機能しますが、最初にループバックを終了すると、もう機能しません。 ctrl-cを使用するか、「q」を送信してffmpegを殺すと、これが起こります。 sudoを使用してffmpegを2番目に実行すると機能しますが、sudoを使用したり通常のユーザーとして実行した後は機能しません。そのため、ユーザーごとに一度だけ動作するように見えるので、各ユーザーがいくつかのファイルを生成しますが、正しくクリーンアップしないと思います。

ループバックを効果的に閉じて開く方法は?

ループバックスクリプトは次のとおりです。

#!/bin/bash

facecam_serial_id="/dev/v4l/by-id/usb-Elgato_Elgato_Facecam_FW42K1A07613-video-index0"

ffmpeg -v debug -f v4l2 -input_format uyvy422 -framerate 60 -video_size 1920x1080 -i $facecam_serial_id -pix_fmt yuyv422 -f v4l2 /dev/video9

ffmpegが動作しているときの出力は次のとおりです。 https://termbin.com/h9xb

ffmpegが動作していないときの出力は次のようになります。 https://termbin.com/5573

初めてループバックを終了した後、Journalctlで次のエラーが発生します。

spa.v4l2: '/dev/video0' VIDIOC_QUERYCTRL:壊れたパイプカメラが現在動作しているかどうかをテストするためにこのコマンドを使用します。

ffplay -f v4l2 /dev/video9

テストコマンドが動作しなくなったときに発生するエラーは次のとおりです。

[video4linux2,v4l2 @ 0x7ff1d4000c80] Not a video capture device.
/dev/video9: No such device

すべてのアイデアに感謝!

ベストアンサー1

最近同じ問題が発生しました。OBSスタジオ

修正ではありませんが、私に役立つ解決策は次のとおりです。

# Loopback not working or working once?
#  Try removing and reloading:
#
sudo modprobe -r v4l2loopback
sudo modprobe v4l2loopback
sudo depmod -a

頑張ってください!

おすすめ記事