मुफ़्त वेबकैम फ़ोटो बूथ
अपने ब्राउज़र में सीधे अपने वेबकैम से फ़ोटो लें। फ़िल्टर, टाइमर लागू करें और अपने शॉट्स को स्थानीय रूप से सहेजें।
यह कैसे काम करता है
- कैमरा अनुमति दें: "कैमरा शुरू करें" पर क्लिक करें और जब ब्राउज़र पूछे तो अनुमति दें।
- विकल्प समायोजित करें: फ़िल्टर चुनें, मिरर मोड सक्षम करें और यदि आप खुद को तैयार करना चाहते हैं तो टाइमर सेट करें।
- कैप्चर करें और डाउनलोड करें: "फ़ोटो लें" पर क्लिक करें। तस्वीरें गैलरी में जमा होती हैं, डाउनलोड के लिए तैयार।
अक्सर पूछे जाने वाले प्रश्न
क्या मेरी तस्वीरें ऑनलाइन भेजी जाती हैं?
नहीं। सारा प्रसंस्करण MediaDevices API के माध्यम से आपके ब्राउज़र में होता है; छवियाँ कभी आपके डिवाइस से नहीं जातीं।
कैमरा शुरू क्यों नहीं हो रहा?
जाँचें कि आपने ब्राउज़र सेटिंग्स में कैमरा एक्सेस अनुमति दी है, कि साइट HTTPS पर परोसी गई है (आवश्यक) और कि कोई अन्य ऐप कैमरा का उपयोग नहीं कर रहा।
क्या मैं कई वेबकैम के बीच चुन सकता हूँ?
हाँ। यदि कई कैमरे कनेक्ट हैं, तो "कैमरा" पिकर उन सभी को सूचीबद्ध करता है: अंतर्निहित वेबकैम, बाहरी USB वेबकैम, वर्चुअल कैमरा।
Browser Webcams कैसे काम करते हैं
Browser camera access W3C Media Capture and Streams specification द्वारा governed है। Entry point है navigator.mediaDevices.getUserMedia(): एक function जिसे page एक constraints object के साथ call करती है जो वह जिस stream का type चाहती है उसे describe करता है। Browser permission prompt दिखाता है; यदि आप allow करते हैं, तो function एक या अधिक video tracks containing MediaStream object के साथ resolve होता है। Page उस stream को <video> element से video.srcObject = stream के माध्यम से bind करती है, live feed screen पर दिखता है, और frame capture करना फिर user के Take Photo click करते समय video को HTML5 <canvas> पर draw करने की बात है। Canvas canvas.toBlob('image/jpeg') के माध्यम से export होता है, जो downloadable JPG बनता है। कोई frame आपके device से नहीं निकलता, entire pipeline आपके browser के process में है।
Promise-based getUserMedia unprefixed में ship हुआ Chrome 53 (September 2016) और Firefox 36 (February 2015) में। Safari holdout था: web pages से webcam access iOS 11 (September 2017) तक iOS पर reach नहीं किया, और modern stable target iOS 14.5 या later है। 2026 तक API essentially universal है, caniuse global support 97% से ऊपर रखता है।
HTTPS क्यों Mandatory है
getUserMedia को «secure contexts» तक gated किया गया है, HTTPS, desktop पर localhost, या Firefox में file://। HTTP-served pages camera access नहीं कर सकतीं; call NotAllowedError के साथ reject होती है। यह इस तरह के tool के self-hosted variants के लिए सबसे common deployment-time bug है, और इसे हर modern browser uniformly enforce करता है। Mobile और stricter है: phone पर कोई localhost exemption नहीं है, इसलिए local dev server पर camera tools test करने के लिए ngrok जैसा tunnelling tool या TLS के साथ reverse proxy चाहिए।
Constraints, सही Camera कैसे मांगें
Constraints object API का सबसे complex हिस्सा है। Common knobs:
- width / height: literal number या
min,ideal,max,exactवाला object accept करते हैं।idealpractical default है; browser cameras को reject किए बिना exactly match नहीं हो सकने पर जितना possible हो उतना close जाता है।exactreject करता है यदि hardware deliver नहीं कर सकता। - facingMode: front-facing (selfie) camera के लिए
'user'या rear के लिए'environment'। Only एक camera वाले laptops पर constraint silently ignored होती है; phones पर यह devices enumerate किए बिना right lens pick करने का cleanest way है। - frameRate: most webcams 30 fps पर cap होते हैं; कुछ external USB cameras 60 hit करते हैं।
- deviceId:
navigator.mediaDevices.enumerateDevices()के साथ enumerate करने के बाद specific device pick करने के लिए। Crucial nuance:labelempty string है जब तक user ने इस session में कम से कम एक camera permission grant नहीं किया हो, इसलिए before any permission grant run होने वाला «pick your camera» dropdown unlabeled IDs दिखाएगा। ऊपर का Camera dropdown इसे Start Camera succeed होने के बाद ही populate करके sidestep करता है।
Camera Light आपका Trust Signal है
Mac पर 2008 या later के webcam के साथ, camera के बगल में green LED sensor के same power rail से wired है। macOS और firmware enforce करते हैं कि LED तब on हो जब sensor powered हो, Apple ने इसे ऐसे design किया है कि kernel-level malware भी LED को camera recording होने पर off नहीं कर सकता। iOS ने iOS 14 (September 2020 में released) से screen के top पर orange dot indicator implement किया है, जो system process द्वारा drawn होता है जिसे app suppress नहीं कर सकता। Windows webcams most modern devices पर similar approach use करते हैं, though enforcement less universal है, 2010 के कुछ old USB webcams में software-controlled LEDs थे। Linux hardware के अनुसार vary करता है।
Takeaway: website नहीं, LED trust करें। इस जैसा pure-browser tool sincerely promise कर सकता है कि device से कुछ नहीं निकलता, और camera light independent confirmation देता है कि camera actually off है जब page कहता है। Webcam tools में most common bug close पर stream.getTracks().forEach(t => t.stop()) call करना भूल जाना है, symptom: user को लगता है shutdown हो गया लेकिन camera light on रहती है। इस page का Stop Camera button उसे explicitly call करता है।
Browser Webcam Tool कब Reach करें
- Quick profile pictures Slack, Discord, GitHub, social media के लिए, separate webcam app install किए बिना।
- Passport / ID-style photos घर पर online forms के लिए (driver's licence renewal, visa applications)। Browser-based privacy story यहां precisely matter करती है क्योंकि face photo third-party service पर upload करना uncomfortable है।
- Video conferencing previews: Zoom या Teams call join करने से पहले lighting, framing, और virtual background कैसा दिखता है check करना।
- School और remote-work attendance: जब teacher या employer presence confirm करने के लिए quick selfie मांगे।
- Art और design के लिए reference shots: hand pose, 3D model के लिए object photo, self-portrait sketch।
- Events पर lightweight photo booth: laptop को captive page के साथ run करना ताकि guests app install किए बिना selfies ले सकें।
- Mockups और prototyping: «take a selfie» step include करने वाले flows build करने वाले designers को quick test page चाहिए।
- Educational demos: teachers students को modern web Camera API कैसे काम करती है दिखाते हैं।
macOS पर Photo Booth या Windows पर Camera app के versus differentiator यह है कि कुछ installed नहीं होता और कुछ upload नहीं होता, locked-down work computers और shared kiosks पर useful जहां software install नहीं कर सकते।
Filters: CSS filter Property क्या देती है
HTML5 canvas ctx.filter property के माध्यम से CSS filter syntax apply कर सकता है। ऊपर available filters वही primitives use करते हैं जो कोई भी CSS rule apply कर सकती है: grayscale(1) (full desaturation, luminance projection के equivalent), sepia(1) (aged photographs mimicking warm brown tone), invert(1) (colour-negative), blur(5px) (Gaussian blur), brightness(1.4) (pixel intensity multiply करता है), और contrast(1.4) (mid-grey के around pivot करता है)। ये Chrome 53 / Firefox 35 / Safari 9.1 से हर browser में hardware-accelerated हैं।
एक subtle लेकिन important detail: <video> element पर apply CSS filters canvas पर not propagate होते हैं। Saved JPG में filter bake करने के लिए, ctx.filter पर drawImage से पहले same filter set करना होगा। यह page ऐसा करती है, इसलिए on-screen preview saved file से pixel-for-pixel match करता है।
Common Errors और उनका मतलब
यदि Start Camera fail करता है, तो rejection इनमें से एक name के साथ DOMException के रूप में आती है:
- NotAllowedError: आपने (या पिछले session ने) permission deny की, या page HTTPS पर नहीं है। Address bar का site-permissions menu देखें और सुनिश्चित करें कि Camera Allow या Ask पर set है।
- NotFoundError: कोई matching device नहीं। Most often तब होता है जब rear camera नहीं होने वाले desktop पर
facingMode: 'environment'कोexactके साथ request करते हैं। - NotReadableError: hardware दूसरे app द्वारा in use है। Zoom, Teams, OBS या दूसरा browser tab camera open है। उन्हें close करें और retry करें।
- OverconstrainedError: constraints satisfy नहीं हो सकीं।
exactrequirements drop करें या resolution relax करें। - TypeError: constraints object empty था। Call को कम से कम audio या video में से एक request करना होगा।
अधिक Questions
मेरी Image Upside-Down या Sideways क्यों है?
कुछ Android cameras अपने EXIF metadata में misleading rotation report करते हैं। Browser usually rotation automatically apply करता है video frame के canvas reach होने से पहले, लेकिन older Samsung Internet versions और कुछ embedded WebViews यह step skip करते हैं। यदि captures sideways आएं, तो capture से पहले device 90° rotate करें, या बाद में Rotate Image tool use करें।
Dropdown «Camera 1, Camera 2» नाम की बजाय क्यों दिखाता है?
क्योंकि browser को अभी camera permission grant नहीं हुई। enumerateDevices() labels return करता है (जैसे «FaceTime HD Camera») केवल after user ने current session में कम से कम एक बार camera access approve किया हो, तब तक, केवल opaque IDs return होते हैं। Start Camera एक बार click करें, access allow करें, और dropdown proper names के साथ refresh होगा।
क्या Page Close करने के बाद Camera Light On रहेगी?
नहीं। Stop Camera button stream में हर track explicitly stop करता है, और modern browsers tab hidden होने या page unload होने पर tracks stop करते हैं। यदि कभी tab close करने के बाद camera LED on रहे, तो यह flag करने लायक bug है, most often इसका मतलब page ने cleanup function call नहीं किया। इस tool पर, Stop Camera click करना या tab close करना hardware immediately release करता है।
क्या मैं Video Record कर सकता हूं, सिर्फ Stills नहीं?
इस tool पर नहीं, यह still-photo capture only है। Video record करने के लिए MediaRecorder API चाहिए और browser के depending पर WebM, MP4 या MKV में files produce करता है। Recording की अपनी privacy implications भी हैं (larger amounts of identifiable footage store हो रहे हैं) इसलिए यह अपने dedicated tool के साथ treat करने लायक separate use case है।
क्या कुछ Server को भेजा जाता है?
नहीं। Video stream operating system से directly browser को deliver होता है; canvas capture और JPG export JavaScript locally के माध्यम से होती है; gallery browser memory में रहती है और directly आपके device पर download होती है। आपके camera, आपके face, या आपकी photos के बारे में कुछ भी page नहीं छोड़ता।