v4l2loopback di Linux: pemasangan, permanensi, dan galat umum
Linux tidak menyertakan kamera virtual bawaan. Aplikasi membuka perangkat seperti /dev/video0 lalu membaca bingkai darinya, dan kernel mengandaikan ada perangkat keras sungguhan di baliknya. v4l2loopback adalah modul kernel yang membuat perangkat yang berperilaku seperti kamera tetapi diisi oleh perangkat lunak.
Modul ini adalah fondasi setiap alur kerja kamera virtual di Linux: OBS, pipeline ffmpeg, dan CamLooper semuanya menulis ke perangkat loopback. Berikut cara menyiapkannya dengan benar.
Pemasangan
Pasang paket DKMS agar modulnya dibangun ulang secara otomatis setiap kali kernel diperbarui:
# Debian / Ubuntu
sudo apt install v4l2loopback-dkms
# Fedora / RHEL
sudo dnf install v4l2loopback
# Arch
sudo pacman -S v4l2loopback-dkms
DKMS penting di sini. Tanpanya, modul dikompilasi untuk kernel yang Anda pakai saat pemasangan, dan kamera virtual Anda berhenti bekerja tanpa pemberitahuan setelah pembaruan kernel berikutnya.
Memuat modul
sudo modprobe v4l2loopback
Pastikan perangkatnya ada:
lsmod | grep v4l2loopback
ls -l /dev/video*
Opsi yang berguna saat memuatnya:
sudo modprobe v4l2loopback \
devices=1 \
video_nr=10 \
card_label="Virtual Camera" \
exclusive_caps=1
video_nr=10mengunci perangkat ke/dev/video10agar tidak bentrok dengan webcam sungguhancard_labelmenentukan nama yang ditampilkan aplikasi di daftar kameranyaexclusive_caps=1adalah opsi yang menentukan — ia membuat perangkat mengumumkan kemampuan menangkap gambar hanya ketika ada yang menulis ke sana. Chrome, Firefox, dan beberapa aplikasi Electron mengabaikan perangkat loopback tanpa opsi ini, dan itulah sebabnya sebuah kamera bisa terlihat div4l2-ctltetapi hilang di peramban
Agar bertahan setelah dinyalakan ulang
modprobe hanya berlaku sampai komputer dinyalakan ulang. Dua berkas membuatnya permanen:
# /etc/modules-load.d/v4l2loopback.conf
v4l2loopback
# /etc/modprobe.d/v4l2loopback.conf
options v4l2loopback devices=1 video_nr=10 card_label="Virtual Camera" exclusive_caps=1
Yang pertama memuat modul saat booting; yang kedua memberikan opsinya. Sering kali orang hanya menulis yang pertama lalu bingung ke mana perginya opsi tadi.
Menguji tanpa aplikasi apa pun
Kirimkan video berulang ke perangkat dengan ffmpeg:
ffmpeg -stream_loop -1 -re -i video.mp4 \
-f v4l2 -pix_fmt yuv420p /dev/video10
-re mengatur laju aliran sesuai waktu nyata (tanpanya, ffmpeg menulis secepat mungkin dan hasilnya tidak bisa dipakai), -stream_loop -1 mengulang tanpa henti, dan yuv420p adalah format piksel yang diharapkan aplikasi pengguna webcam. Buka halaman uji webcam di peramban dan videonya semestinya terlihat.
Galat umum
modprobe: ERROR: could not insert 'v4l2loopback': Required key not available
Secure Boot menolak modul yang tidak ditandatangani. Anda bisa mendaftarkan Machine Owner Key lalu menandatangani modulnya, atau mematikan Secure Boot di firmware. Distribusi yang menyediakan modul versi bertanda tangan terhindar dari masalah ini sepenuhnya.
Modul berhasil dibangun tetapi perangkat /dev/video tidak muncul
Periksa dmesg | tail tepat setelah modprobe. Ketidakcocokan versi antara modul dan kernel yang sedang berjalan akan terlihat di sana, dan itu pertanda umum bahwa DKMS belum membangun ulang setelah pembaruan.
Kameranya ada tetapi peramban tidak melihatnya
Muat modul dengan exclusive_caps=1. Ini penyebab paling umum, jauh melampaui yang lain.
Aplikasi Flatpak tidak melihat kamera
Sandbox memblokir akses perangkat sampai Anda memberikannya:
flatpak override --user --device=all com.obsproject.Studio
Melewati semua ini
Semua langkah di atas hanya dilakukan sekali, tetapi tetap berarti satu sesi terminal dan satu kali menyalakan ulang sebelum Anda bisa memutar video sebagai kamera — dan inilah alasan saran "pakai OBS saja" jauh lebih berat di Linux daripada di Windows.
Paket .deb dan .rpm CamLooper melakukannya untuk Anda. Keduanya mencantumkan v4l2loopback-dkms sebagai dependensi, memasang berkas modules-load.d dan modprobe.d seperti di atas, serta memuat modulnya saat pemasangan. Jadi kameranya siap begitu pemasang selesai, dan siap lagi setiap kali komputer dinyalakan ulang. Tanpa terminal, tanpa menyalakan ulang, dan DKMS menjaganya tetap berfungsi melintasi pembaruan kernel.
Coba CamLooper
Gratis, sepenuhnya lokal, dan siap dalam waktu kurang dari satu menit.
Unduh CamLooper