--- read_when: - Hinzufügen oder Ändern der Kameraaufnahme auf Node-Plattformen - Erweiterung der für Agenten zugänglichen MEDIA-Workflows für temporäre Dateien summary: Kameraaufnahme auf iOS-, Android-, macOS- und Linux-Nodes für Fotos und kurze Videoclips title: Kameraaufnahme x-i18n: generated_at: "2026-07-26T17:52:02Z" model: gpt-5.6 postprocess_version: locale-links-v1 prompt_version: 32 provider: openai source_hash: b819f7ff3fc9b51757ae998d27f540975bf6c1194ed32fd36b1fbe909e79400c source_path: nodes/camera.md workflow: 16 --- OpenClaw unterstützt die Kameraaufnahme für Agent-Workflows auf gekoppelten **iOS**-, **Android**-, **macOS**- und **Linux**-Nodes: Nehmen Sie über den Gateway `node.invoke` ein Foto (`jpg`) oder einen kurzen Videoclip (`mp4`, optional mit Audio) auf. Der gesamte Kamerazugriff wird auf jeder Plattform durch eine benutzergesteuerte Einstellung geregelt. ## iOS-Node ### iOS-Benutzereinstellung - iOS Settings tab → **Camera** → **Allow Camera** (`camera.enabled`). - Standard: **ein** (ein fehlender Schlüssel wird als aktiviert behandelt). - Wenn deaktiviert: `camera.*`-Befehle geben `CAMERA_DISABLED` zurück. ### iOS-Befehle (über Gateway `node.invoke`) - `camera.list` - Antwortnutzlast: `devices` – Array von `{ id, name, position, deviceType }`. - `camera.snap` - Parameter: - `facing`: `front|back` (Standard: `front`) - `maxWidth`: Zahl (optional; Standard: `1600`) - `quality`: `0..1` (optional; Standard: `0.9`, begrenzt auf `[0.05, 1.0]`) - `format`: derzeit `jpg` - `delayMs`: Zahl (optional; Standard: `0`, intern auf `10000` begrenzt) - `deviceId`: Zeichenfolge (optional; aus `camera.list`) - Antwortnutzlast: `format: "jpg"`, `base64`, `width`, `height`. - Nutzlastbegrenzung: Fotos werden erneut komprimiert, damit die Base64-codierte Nutzlast unter 5MB bleibt. - `camera.clip` - Parameter: - `facing`: `front|back` (Standard: `front`) - `durationMs`: Zahl (Standard: `3000`, begrenzt auf `[250, 60000]`) - `includeAudio`: boolescher Wert (Standard: `true`) - `format`: derzeit `mp4` - `deviceId`: Zeichenfolge (optional; aus `camera.list`) - Antwortnutzlast: `format: "mp4"`, `base64`, `durationMs`, `hasAudio`. ### iOS-Vordergrundanforderung Wie `canvas.*` erlaubt der iOS-Node `camera.*`-Befehle nur im **Vordergrund**. Aufrufe im Hintergrund geben `NODE_BACKGROUND_UNAVAILABLE` zurück. ### CLI-Hilfsfunktion Am einfachsten erhalten Sie Mediendateien über die CLI-Hilfsfunktion. Sie schreibt die decodierten Medien in eine temporäre Datei und gibt den Speicherpfad aus. ```bash openclaw nodes camera snap --node # Standard: Vorder- und Rückkamera (2 MEDIA-Zeilen) openclaw nodes camera snap --node --facing front openclaw nodes camera clip --node --duration 3000 openclaw nodes camera clip --node --no-audio ``` `nodes camera snap` verwendet standardmäßig `--facing both` und erfasst sowohl die Vorder- als auch die Rückansicht, damit dem Agent beide Ansichten zur Verfügung stehen. Übergeben Sie `--device-id` mit genau einer expliziten Ausrichtung (`both` wird abgelehnt, wenn `--device-id` festgelegt ist). Ausgabedateien sind temporär (im temporären Verzeichnis des Betriebssystems), sofern Sie keinen eigenen Wrapper erstellen. ## Android-Node ### Android-Benutzereinstellung - Android Settings sheet → **Camera** → **Allow Camera** (`camera.enabled`). - **Bei Neuinstallationen ist die Einstellung standardmäßig deaktiviert.** Bestehende Installationen, die älter als diese Einstellung sind, werden auf **ein** migriert, damit bei Upgrades ein zuvor funktionierender Kamerazugriff nicht unbemerkt verloren geht. - Wenn deaktiviert: `camera.*`-Befehle geben `CAMERA_DISABLED: enable Camera in Settings` zurück. ### Berechtigungen - `CAMERA` ist sowohl für `camera.snap` als auch für `camera.clip` erforderlich; eine fehlende oder verweigerte Berechtigung gibt `CAMERA_PERMISSION_REQUIRED` zurück. - `RECORD_AUDIO` ist für `camera.clip` erforderlich, wenn `includeAudio` den Wert `true` hat; eine fehlende oder verweigerte Berechtigung gibt `MIC_PERMISSION_REQUIRED` zurück. Die App fordert nach Möglichkeit Laufzeitberechtigungen an. ### Android-Vordergrundanforderung Wie `canvas.*` erlaubt der Android-Node `camera.*`-Befehle nur im **Vordergrund**. Aufrufe im Hintergrund geben `NODE_BACKGROUND_UNAVAILABLE: command requires foreground` zurück. ### Android-Befehle (über Gateway `node.invoke`) - `camera.list` - Antwortnutzlast: `devices` – Array von `{ id, name, position, deviceType }`. - `camera.snap` - Parameter: `facing` (`front|back`, Standard: `front`), `quality` (Standard: `0.95`, begrenzt auf `[0.1, 1.0]`), `maxWidth` (Standard: `1600`), `deviceId` (optional; eine unbekannte ID schlägt mit `INVALID_REQUEST` fehl). - Antwortnutzlast: `format: "jpg"`, `base64`, `width`, `height`. - Nutzlastbegrenzung: erneute Komprimierung, damit Base64 unter 5MB bleibt (dasselbe Budget wie bei iOS). - `camera.clip` - Parameter: `facing` (Standard: `front`), `durationMs` (Standard: `3000`, begrenzt auf `[200, 60000]`), `includeAudio` (Standard: `true`), `deviceId` (optional). - Antwortnutzlast: `format: "mp4"`, `base64`, `durationMs`, `hasAudio`. - Nutzlastbegrenzung: Die rohe MP4-Datei ist vor der Base64-Codierung auf 18MB begrenzt; zu große Clips schlagen mit `PAYLOAD_TOO_LARGE` fehl (reduzieren Sie `durationMs` und versuchen Sie es erneut). ## macOS-App ### macOS-Benutzereinstellung Die macOS-Begleit-App stellt ein Kontrollkästchen bereit: - **Settings → General → Allow Camera** (`openclaw.cameraEnabled`). - Standard: **aus**. - Wenn deaktiviert: Kameraanfragen geben `CAMERA_DISABLED: enable Camera in Settings` zurück. ### CLI-Hilfsfunktion (Node-Aufruf) Verwenden Sie die zentrale `openclaw`-CLI, um Kamerabefehle auf dem macOS-Node aufzurufen. ```bash openclaw nodes camera list --node # Kamera-IDs auflisten openclaw nodes camera snap --node # gibt den Speicherpfad aus openclaw nodes camera snap --node --max-width 1280 openclaw nodes camera snap --node --delay-ms 2000 openclaw nodes camera snap --node --device-id openclaw nodes camera clip --node --duration 10s # gibt den Speicherpfad aus openclaw nodes camera clip --node --duration-ms 3000 # gibt den Speicherpfad aus (veraltetes Flag) openclaw nodes camera clip --node --device-id openclaw nodes camera clip --node --no-audio ``` - `openclaw nodes camera snap` verwendet standardmäßig `maxWidth=1600`, sofern dies nicht überschrieben wird. - `camera.snap` wartet nach dem Aufwärmen und Einregeln der Belichtung `delayMs` (Standard: 2000ms, begrenzt auf `[0, 10000]`), bevor die Aufnahme erfolgt. - Fotonutzlasten werden erneut komprimiert, damit Base64 unter 5MB bleibt. ## Linux-Node-Host Das mitgelieferte Linux-Node-Plugin fügt dem CLI-Dienst `openclaw node` die Kameraaufnahme hinzu. Es funktioniert auf einem Headless-Host und erfordert nicht die Linux-Desktop-App. Der Kamerazugriff ist standardmäßig deaktiviert. Aktivieren Sie ihn unter dem Plugin-Eintrag und starten Sie anschließend den Node-Dienst neu, damit seine Gateway-Ankündigung neu erstellt wird: ```json5 { plugins: { entries: { "linux-node": { config: { camera: { enabled: true }, }, }, }, }, } ``` Anforderungen: - FFmpeg mit V4L2-Eingabe, `libx264` und AAC-Unterstützung - ein `/dev/video*`-Gerät, das für den Benutzer des Node-Dienstes lesbar ist; fügen Sie diesen Benutzer bei gängigen Distributionen der Gruppe `video` hinzu - für Clips mit dem standardmäßigen `includeAudio: true` einen funktionierenden PulseAudio-Server oder eine PipeWire-PulseAudio-Kompatibilitätsschicht mit einer Standardquelle Linux gibt über `camera.list` aufnahmefähige, lesbare V4L2-Gerätepfade zurück; FFmpeg prüft jeden `/dev/video*`-Kandidaten und lässt Metadaten- oder reine Ausgabegeräte aus. Das Geräteattribut `position` lautet `unknown`, sodass Ausrichtungsanfragen ohne `deviceId` ein Foto oder einen Clip mit der Position `unknown` erzeugen, anstatt eine Vorder- oder Rückkamera auszuweisen. Verwenden Sie `deviceId`, wenn ein Host über mehrere Kameras verfügt. `camera.snap` verwendet für `delayMs` die FFmpeg-Eingabeaufwärmung und behält das Seitenverhältnis bei, während die Breite begrenzt wird. `camera.clip` zeichnet Mikrofonaudio als MP4-Audiospur auf; OpenClaw stellt bewusst keinen eigenständigen Mikrofonbefehl bereit. Das Plugin verwendet `libx264` für MP4-Video und wechselt nicht stillschweigend den Codec. Ein FFmpeg-Build ohne die erforderliche Eingabe oder die erforderlichen Encoder gibt `CAMERA_UNAVAILABLE` zurück. Fotos und Clips, die das Base64-Nutzlastbudget von 25MB überschreiten würden, schlagen mit `PAYLOAD_TOO_LARGE` fehl. `camera.snap` und `camera.clip` bleiben gefährliche Befehle. Fügen Sie sie nur dann zu `gateway.nodes.commands.allow` hinzu, wenn Sie die Aufnahme bewusst aktivieren möchten; allein durch das Aktivieren des Plugins wird die Gateway-Richtlinie nicht umgangen. ## Sicherheit und praktische Grenzen - Der Kamera- und Mikrofonzugriff löst die üblichen Berechtigungsabfragen des Betriebssystems aus (und erfordert Verwendungsbeschreibungen in `Info.plist`). - Videoclips sind auf 60s begrenzt, um übergroße Node-Nutzlasten zu vermeiden (Base64-Overhead plus Nachrichtengrenzen). ## macOS-Bildschirmvideo (auf Betriebssystemebene) Verwenden Sie für _Bildschirmvideos_ (nicht für Kameraaufnahmen) die macOS-Begleit-App: ```bash openclaw nodes screen record --node --duration 10s --fps 15 # gibt den Speicherpfad aus ``` Erfordert die macOS-Berechtigung **Screen Recording** (TCC). ## Verwandte Themen - [Bild- und Medienunterstützung](/de/nodes/images) - [Medienverständnis](/de/nodes/media-understanding) - [Standortbefehl](/de/nodes/location-command)