Kamera-Test
Kameragerät testen, Echtzeitvorschau, Fotos aufnehmen, Geräteinformationen prüfen
Echtzeitvorschau
Was ist ein Kamera-Test?
Ein Kameratest prüft, ob der Browser auf eine Webcam, eine externe USB-Kamera oder die eingebaute Laptop-Kamera zugreifen und eine Live-Vorschau anzeigen kann. Er ist sinnvoll vor Videokonferenzen, Online-Unterricht, Interviews, Livestreams, Aufnahmen und allen Situationen, in denen eine falsche Kamera, blockierte Berechtigung, schwarzes Bild, niedrige Auflösung oder schlechtes Licht stören würde. Das Werkzeug nutzt die Kameraberechtigung des Browsers, zeigt den tatsächlich geöffneten Stream und kann lokal ein Schnappschussbild aufnehmen. So lassen sich Geräteauswahl, Auflösung, Bildrate, Seitenverhältnis und grundlegende Bildqualität prüfen, ohne Videobilder hochzuladen. Treiber- oder Hardwarefehler kann es nicht beheben; bei fehlendem Bild sollten Datenschutzoptionen, andere Kamera-Apps, Kabel und Treiber geprüft werden.
Anleitung
Anleitung
- Klicken Sie auf 'Start Test' und erlauben Sie dem Browser den Zugriff auf die Kamera.
- Beobachten Sie die Live-Kameravorschau
- Klicken Sie auf 'Aufnehmen', um ein Foto aufzunehmen
- Sie können zwischen Kameras wechseln oder verschiedene Auflösungen testen
Tipps
- Wird die Vorschau nicht angezeigt, prüfen Sie, ob der Browser die Kameraberechtigung erteilt hat
- Ob die Kamera von einer anderen Anwendung verwendet wird
- Ob das richtige Kameragerät ausgewählt ist
- Ob die Kamera in den Systemeinstellungen deaktiviert ist
Anwendungsfälle
Technisches Prinzip
Der Kamera-Test basiert auf der W3C-Spezifikation Media Capture and Streams und verwendet navigator.mediaDevices.getUserMedia(constraints), um auf die Kamera zuzugreifen. Der Parameter constraints ist ein JSON-ähnliches Objekt, das ideale, exakte, minimale und maximale Werte für Auflösung (Breite, Höhe), Bildrate, Ausrichtungsmodus und Geräte-ID angibt. Der Constraint-Solver des Browsers verhandelt diese gegen die UVC-Deskriptoren (USB Video Class), die von der Kamerafirmware gemeldet werden; wenn eine exakte Einschränkung nicht erfüllt werden kann, wird der Aufruf mit einem OverconstrainedError abgelehnt – dies ist der Mechanismus hinter dem Auflösungs-Unterstützungsprüfer, der jede Auflösung mit { exact }-Constraints sondiert und Fehlschläge markiert. Sobald der Stream erworben ist, stellt der Video-Track getSettings() (die tatsächlich angewandten Werte nach der Verhandlung), getCapabilities() (die vollständigen unterstützten Bereiche der Hardware) und getConstraints() (die ursprünglich angeforderten Werte) bereit. Die angewandte Auflösung, Bildrate, Seitenverhältnis und Ausrichtung werden aus getSettings() gelesen und angezeigt. Die Live-Vorschau wird gerendert, indem das srcObject des Video-Elements auf den MediaStream gesetzt wird; die Medien-Pipeline des Browsers übernimmt Dekodierung, Farbraumkonvertierung und GPU-beschleunigte Rendering ohne JavaScript-Pixelmanipulation. Für Standbilder kopiert CanvasRenderingContext2D.drawImage(videoElement, 0, 0) den aktuellen dekodierten Videoframe auf ein verstecktes Canvas, und toDataURL('image/png') serialisiert ihn als PNG-Data-URL. enumerateDevices() listet alle verfügbaren Medieneingabegeräte auf – beachten Sie, dass Gerätebezeichnungen leere Zeichenketten sind, bis der Benutzer mindestens einmal die Kameraberechtigung erteilt hat, eine Maßnahme zum Schutz vor Fingerprinting. Der Aufruf von track.stop() gibt die Kamerahardware frei und schaltet die Kontrollleuchte aus; das Setzen von videoElement.srcObject = null trennt die Rendering-Pipeline. getUserMedia erfordert einen sicheren Kontext (HTTPS oder localhost) und löst eine pro-Origins-Berechtigungsabfrage aus; die Kamerakontrollleuchte wird auf Betriebssystemebene erzwungen und kann von der Seite nicht umgangen werden.
- Constraint-Verhandlung: Der Browser-Solver gleicht ideale/exakte/minimale/maximale Werte mit UVC-Hardware-Deskriptoren ab – { exact }-Sondierungen schlagen mit OverconstrainedError fehl, wenn der Sensor die angeforderte Auflösung nicht liefern kann, so wird das Auflösungs-Unterstützungsraster befüllt.
- Track-Introspektion: getSettings() gibt die tatsächlich angewandte Auflösung, Bildrate, Seitenverhältnis und facingMode nach der Verhandlung zurück – diese können von den angeforderten Idealwerten abweichen, wenn die USB-Bandbreite oder Sensorfähigkeiten eingeschränkt sind.
- enumerateDevices-Datenschutz: Gerätebezeichnungen sind leere Zeichenketten, bis getUserMedia-Berechtigung mindestens einmal pro Origin erteilt wurde – eine spezifikationsvorgeschriebene Anti-Fingerprinting-Maßnahme, die auch bedeutet, dass der Geräteauswahl beim ersten Besuch generische Namen anzeigt.
- Canvas-Standbildaufnahme: drawImage() kopiert den dekodierten Videoframe vom GPU-Compositor in einen 2D-Pixelbuffer ohne erneute Kodierung; toDataURL('image/png') serialisiert ihn dann als verlustfreies PNG – der Frame verlässt nie den Speicher des Browsers.
- Ausrichtungsmodus: Das VideoFacingModeEnum wird aus track.getSettings().facingMode gelesen ('user' für frontal, 'environment' für rückseitig, 'left'/'right' für extern) – nicht alle Desktop-USB-Kameras melden die Ausrichtung, daher kann das Feld 'unknown' anzeigen.
- Stream-Lebenszyklus: track.stop() gibt die Kamerahardware frei und schaltet die OS-Ebenen-Kontrollleuchte aus; srcObject = null trennt die Rendering-Pipeline – beides ist nötig, um das Gerät vollständig freizugeben, damit andere Anwendungen es erwerben können.
- Sicherheitsmodell: getUserMedia erfordert einen sicheren Kontext (HTTPS oder localhost), löst einen pro-Origins-Berechtigungsdialog aus, und die Kameraanzeige wird auf OS-/Kernel-Ebene erzwungen – die Seite kann keine dieser drei Tore umgehen.
Beispiele
Grundlegender Testablauf
1. Auf Test starten klicken und Kamerazugriff erlauben
2. Live-Vorschau auf Schärfe, Fokus und Bildrate prüfen
3. Foto-Schaltfläche drücken, um ein Testbild aufzunehmen
4. Geräteinformationen prüfen (Auflösung, Ausrichtung, Bildrate)
Nutzung: vor jedem Videomeeting, Interview oder Livestream durchführenAuflösungstest
1. Panel Unterstützte Auflösungen aufklappen
2. Neben jeder Auflösung auf Test klicken (z. B. 1080p, 720p, 480p)
3. Prüfen, welche Ihre Hardware tatsächlich unterstützt
4. Höchste stabile Auflösung für den Anwendungsfall wählenWechsel zwischen mehreren Kameras
1. Geräte-Dropdown oben öffnen
2. Eine andere Kamera auswählen (Front-/Rückkamera, externe Webcam)
3. Videoqualität, Farbbalance und Schwachlichtverhalten vergleichen
4. Vor dem Beitritt zum Anruf das richtige Gerät bestätigenFAQ
Was prüft der Kameratest?
Ob dein Browser auf die Kamera zugreifen kann, welche Auflösung sie liefert, die Live-Vorschau und eine einfache Aufnahme (Schnappschuss als Bild). Praktisch vor einem Videoanruf, um sicherzustellen, dass die richtige Kamera gewählt ist und das Bild richtig herum und korrekt belichtet ist.
Warum wird meine Kamera nicht angezeigt?
Häufige Ursachen: Der Browser braucht eine Kamerafreigabe (prüfe das Berechtigungssymbol in der Adressleiste); eine andere App belegt die Kamera (Zoom, Teams, OBS schließen); die Datenschutzeinstellung des Betriebssystems blockiert den Kamerazugriff (Windows-Datenschutz / macOS-Kameraberechtigungen prüfen); ein Hardware-Schalter deaktiviert die Kamera.
Kann das Tool zwischen Front- und Rückkamera wechseln?
Ja, sofern dein Gerät beide besitzt. Die Seite listet verfügbare Kameras über navigator.mediaDevices.enumerateDevices() auf; wähle die gewünschte aus dem Dropdown. Auf Smartphones ist 'user' die Frontkamera und 'environment' die Rückkamera.
Welche Auflösungen werden unterstützt?
Was Kamera und Browser anbieten. Übliche Bereiche: 320×240, 640×480, 1280×720, 1920×1080. Höhere Auflösungen brauchen mehr Bandbreite (im Live-Betrieb) und CPU. Standardmäßig wählt die Seite die höchste; nimm eine niedrigere, wenn dein Netz langsam ist.
Wird mein Kamerabild hochgeladen?
Nein. Der Videostream wird lokal gerendert; aufgenommene Frames bleiben im Browser. Beachte: Die Kameraberechtigung gilt auf Origin-Ebene, sodass jeder geöffnete Tab dieser Seite darauf zugreifen kann, bis du sie wieder entziehst. Schließe den Tab, wenn du fertig bist.
Warum ist das Video gespiegelt?
Browser spiegeln die Frontkamera in der Live-Vorschau, um den gewohnten 'Spiegel'-Eindruck zu erzeugen. Schnappschüsse können gespiegelt sein oder nicht – prüfe beide Ansichten. Mit CSS transform: scaleX(-1) lässt sich die Spiegelung umschalten.
Was, wenn die Kameraberechtigung dauerhaft verweigert ist?
In Chrome: Klicke auf das Kamerasymbol in der Adressleiste → 'Immer erlauben'. Bei Bedarf unter chrome://settings/content/camera zurücksetzen. Andere Browser haben ähnliche Einstellungen. Nach dem Erteilen der Berechtigung die Seite neu laden.