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=10 mengunci perangkat ke /dev/video10 agar tidak bentrok dengan webcam sungguhan
  • card_label menentukan nama yang ditampilkan aplikasi di daftar kameranya
  • exclusive_caps=1 adalah 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 di v4l2-ctl tetapi 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