Linux पर v4l2loopback: इंस्टॉलेशन, स्थायित्व और आम त्रुटियाँ

Linux में वर्चुअल कैमरा पहले से मौजूद नहीं होता। ऐप /dev/video0 जैसा कोई डिवाइस खोलते हैं और उससे फ़्रेम पढ़ते हैं, और कर्नेल मानकर चलता है कि उसके पीछे असली हार्डवेयर है। v4l2loopback एक कर्नेल मॉड्यूल है जो ऐसा डिवाइस बनाता है जो कैमरे जैसा बर्ताव करता है पर उसमें तस्वीरें सॉफ़्टवेयर से भरी जाती हैं।

Linux पर वर्चुअल कैमरे के हर तरीक़े की नींव यही है: OBS, ffmpeg की पाइपलाइनें और CamLooper सभी किसी लूपबैक डिवाइस में ही लिखते हैं। इसे ठीक से सेट करने का तरीक़ा नीचे है।

इंस्टॉलेशन

DKMS पैकेज इंस्टॉल करें ताकि कर्नेल अपडेट होते ही मॉड्यूल अपने आप दोबारा बन जाए:

# Debian / Ubuntu
sudo apt install v4l2loopback-dkms

# Fedora / RHEL
sudo dnf install v4l2loopback

# Arch
sudo pacman -S v4l2loopback-dkms

यहाँ DKMS मायने रखता है। इसके बिना मॉड्यूल उसी कर्नेल के लिए बनता है जो इंस्टॉल के समय आपके पास था, और अगली कर्नेल अपडेट के बाद आपका वर्चुअल कैमरा चुपचाप काम करना बंद कर देता है।

मॉड्यूल लोड करना

sudo modprobe v4l2loopback

जाँचें कि डिवाइस बन गया है:

lsmod | grep v4l2loopback
ls -l /dev/video*

लोड करते समय काम आने वाले विकल्प:

sudo modprobe v4l2loopback \
  devices=1 \
  video_nr=10 \
  card_label="Virtual Camera" \
  exclusive_caps=1
  • video_nr=10 डिवाइस को /dev/video10 पर तय कर देता है ताकि वह असली वेबकैम से न टकराए
  • card_label वह नाम तय करता है जो ऐप अपनी कैमरा सूची में दिखाते हैं
  • exclusive_caps=1 सबसे निर्णायक विकल्प है — यह डिवाइस से कहता है कि वह अपनी कैप्चर क्षमता तभी घोषित करे जब कोई उसमें लिख रहा हो। Chrome, Firefox और कई Electron ऐप इसके बिना बने लूपबैक डिवाइस को अनदेखा कर देते हैं, और इसीलिए कोई कैमरा v4l2-ctl में दिखते हुए भी ब्राउज़र में ग़ायब रह सकता है

रीबूट के बाद भी बनाए रखना

modprobe का असर अगले रीबूट तक ही रहता है। दो फ़ाइलें इसे स्थायी बना देती हैं:

# /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

पहली फ़ाइल बूट के समय मॉड्यूल लोड करती है; दूसरी उसे उसके विकल्प देती है। अक्सर लोग सिर्फ़ पहली लिखते हैं और फिर सोचते रहते हैं कि उनके विकल्प कहाँ चले गए।

बिना किसी ऐप के जाँचना

ffmpeg से लूप होता वीडियो सीधे डिवाइस में भेजें:

ffmpeg -stream_loop -1 -re -i video.mp4 \
  -f v4l2 -pix_fmt yuv420p /dev/video10

-re स्ट्रीम की रफ़्तार असली समय के हिसाब से रखता है (इसके बिना ffmpeg जितनी तेज़ी से हो सके लिखता है और नतीजा बेकार होता है), -stream_loop -1 बार-बार दोहराता रहता है, और yuv420p वह पिक्सेल फ़ॉर्मैट है जिसकी उम्मीद वेबकैम इस्तेमाल करने वाले ऐप करते हैं। ब्राउज़र में वेबकैम टेस्ट पेज खोलें, वीडियो दिखना चाहिए।

आम त्रुटियाँ

modprobe: ERROR: could not insert 'v4l2loopback': Required key not available

सिक्योर बूट बिना साइन किए मॉड्यूल को नकार रहा है। या तो Machine Owner Key दर्ज करके मॉड्यूल पर साइन करें, या फ़र्मवेयर में सिक्योर बूट बंद कर दें। जो डिस्ट्रिब्यूशन मॉड्यूल का साइन किया हुआ बिल्ड देते हैं, वहाँ यह दिक्कत आती ही नहीं।

मॉड्यूल बन तो जाता है पर कोई /dev/video डिवाइस नहीं दिखता

modprobe के तुरंत बाद dmesg | tail देखें। मॉड्यूल और चल रहे कर्नेल के बीच संस्करण का बेमेल यहीं दिखता है, और यह इस बात का आम संकेत है कि अपडेट के बाद DKMS ने मॉड्यूल दोबारा नहीं बनाया।

कैमरा मौजूद है पर ब्राउज़र उसे नहीं देख पाते

मॉड्यूल को exclusive_caps=1 के साथ लोड करें। यह अब तक का सबसे आम कारण है।

Flatpak ऐप कैमरा नहीं देख पाते

जब तक आप अनुमति न दें, सैंडबॉक्स डिवाइस तक पहुँच रोके रखता है:

flatpak override --user --device=all com.obsproject.Studio

यह सब छोड़ देने का रास्ता

ऊपर बताया सब कुछ एक ही बार करना होता है, फिर भी वीडियो को कैमरे की तरह चलाने से पहले एक टर्मिनल सत्र और एक रीबूट तो लगता ही है — और यही वजह है कि "OBS ही इस्तेमाल कर लो" वाली सलाह Linux पर Windows के मुक़ाबले कहीं ज़्यादा भारी पड़ती है।

CamLooper के .deb और .rpm पैकेज यह काम आपके लिए कर देते हैं। वे v4l2loopback-dkms को निर्भरता के रूप में घोषित करते हैं, ऊपर दिखाई गई modules-load.d और modprobe.d फ़ाइलें इंस्टॉल करते हैं, और इंस्टॉलेशन के दौरान ही मॉड्यूल लोड कर देते हैं। इसलिए इंस्टॉलर ख़त्म होते ही कैमरा तैयार रहता है, और हर रीबूट के बाद भी। न टर्मिनल, न रीबूट, और DKMS इसे कर्नेल अपडेट के बीच भी चलता रखता है।

CamLooper आज़माएँ

मुफ़्त, पूरी तरह लोकल, और एक मिनट से कम में चालू।

CamLooper डाउनलोड करें