camera_desktop
A Flutter camera plugin for desktop platforms (Linux, macOS, Windows). Implements camera_platform_interface for easy integration with the standard camera package.
1.2.1
3.9K downloads/mo
#4220 most downloaded on pub.dev
hugocornellier/camera_desktop
What this package is like to depend on
Last release 2 months ago
13 Jun 2026
Ships fairly regularly
a new release about every 2 weeks
Nearly every release is documented
notes for 27 of 28 stable releases
Nothing withdrawn
no release was ever pulled
5 months old
28 releases · first in 2026
28 releases in the last 12 months
see the full history below
Release timeline
28 releases · Feb 2026 to Jun 2026Releases
latest 28-
1.2.113 Jun 2026Release notes
Open source →- Fix Linux preview
Internal data stream error(not-negotiated) on cameras that do not expose MJPEG, such as NV12/YUYV-only USB webcams. The MJPEG fast-path added in 1.1.7 was selected whenever its pipeline merely parsed, butgst_parse_launchsucceeds even when the camera cannot produce MJPEG, so the intended raw-capture fallback never ran and initialization failed atPLAYING. The plugin now probes the V4L2 device (bothMJPEGandJPEGpixel formats) for the target resolution before choosing the MJPEG path, and otherwise uses the always-safe raw capture path. The MJPEG pipeline pins only the resolution and lets the camera's native frame rate float, withvideorateadapting it to the requested fps, so requesting a frame rate the camera does not expose natively in MJPEG no longer breaks negotiation.
- Fix Linux preview
-
1.2.013 Jun 2026Release notes
Open source →- Speed up Windows camera initialization by completing
initialize()as soon as the preview starts instead of blocking until the first camera frame arrives. On a typical webcam this returns control to the app in roughly 250 ms rather than about 2 seconds. The preview fills in as frames arrive, and a watchdog reports acameraErrorif no frames are received within 8 seconds. - Make Windows diagnostic logging opt-in and off by default so the plugin stays quiet in your app. Set the
CAMERA_DESKTOP_LOGenvironment variable to any value other than0to capture a trace when reporting an issue. This also removes the logging overhead that slowed camera initialization, most noticeably with a debugger or IDE attached.
- Speed up Windows camera initialization by completing
-
1.1.812 Jun 2026Release notes
Open source →- Fix Windows use-after-free crashes on camera dispose: guard the preview texture against in-flight preview samples, and defer destroying the texture until Flutter's asynchronous
UnregisterTexturecompletes (its raster-thread pixel-buffer callback could otherwise run after the texture was freed) (#4)
- Fix Windows use-after-free crashes on camera dispose: guard the preview texture against in-flight preview samples, and defer destroying the texture until Flutter's asynchronous
-
1.1.729 May 2026Release notes
Open source →- Fix Windows crash after camera dispose by marshalling platform channel messages to the platform thread (#4)
- Fix Linux preview
not-negotiatederror on common USB webcams (#5, thanks @jvnonce) - Fix Linux recording on systems without
x264enc(#5, thanks @jvnonce) - Report max frame rate across all pixel formats during Linux device enumeration (#5, thanks @jvnonce)
-
1.1.624 May 2026Release notes
Open source →- Fix Swift compiler warnings: remove unused variables in DeviceEnumerator, PhotoHandler, RecordHandler, and CameraSession
-
1.1.524 May 2026Release notes
Open source →- Fix SPM integration by adding missing FlutterFramework dependency to iOS and macOS Package.swift
-
1.1.419 May 2026Release notes
Open source →- Update documentation
- Remove debug logging from image stream pause/resume and video recording completion
-
1.1.320 Apr 2026Release notes
Open source →- Fix Windows build failure (C4819 / C2220) on hosts with a non-UTF-8 system code page (e.g. CP936 on Simplified Chinese Windows) by compiling the plugin with
/utf-8under MSVC (#2)
- Fix Windows build failure (C4819 / C2220) on hosts with a non-UTF-8 system code page (e.g. CP936 on Simplified Chinese Windows) by compiling the plugin with
-
1.1.207 Apr 2026Release notes
Open source →- Fix macOS build failure on Xcode 26+ by removing unavailable
AVCaptureSessionInterruptionReasonKey(re-introduced in 1.1.1) - Fix Windows build failure caused by implicit
wchar_ttocharconversion in debug logging
- Fix macOS build failure on Xcode 26+ by removing unavailable
-
1.1.107 Apr 2026Release notes
Open source →- Add comprehensive diagnostic logging across all platforms (Linux, macOS, Windows)
- Log device enumeration, backend selection, pipeline construction, resolution selection, recording lifecycle, and error paths
-
1.1.007 Apr 2026Release notes
Open source →- Add PipeWire camera portal support for Flatpak sandbox compatibility on Linux
- Automatically detect Flatpak environment and use
pipewiresrcinstead ofv4l2src - Request camera access via
org.freedesktop.portal.CameraD-Bus interface - Enumerate PipeWire camera nodes via
GstDeviceMonitor - Fall back to V4L2 if portal is unavailable or user denies permission
- No new build dependencies: uses GIO (D-Bus) and GStreamer APIs already linked
-
1.0.805 Apr 2026Release notes
Open source →- Fix macOS build failure on Xcode 26+ by removing unavailable
AVCaptureSessionInterruptionReasonKey(iOS-only API)
- Fix macOS build failure on Xcode 26+ by removing unavailable
-
1.0.705 Apr 2026Release notes
Open source →- Fix camera initialization failure on Intel Macs by selecting session preset after device discovery using
device.supportsSessionPreset()with automatic fallback (1080p → 720p → high → medium) - Make
canAddInput/canAddOutputfailures return aFlutterErrorinstead of silently skipping, preventing blank-screen timeouts - Increase initialization timeout from 8s to 15s for slower USB cameras
- Subscribe to
AVCaptureSessionRuntimeError,WasInterrupted, andInterruptionEndednotifications and forward to Dart viacameraError - Fix MethodChannel image stream fallback sending hardcoded
bytesPerRowinstead of actual value fromCVPixelBuffer - Add diagnostic logging at all critical points in macOS session setup
- Fix camera initialization failure on Intel Macs by selecting session preset after device discovery using
-
1.0.617 Mar 2026Release notes
Open source →- Fix Xcode build warnings by declaring PrivacyInfo.xcprivacy as a resource bundle in iOS and macOS podspecs
-
1.0.516 Mar 2026Release notes
Open source →- Fixes #1: conflict with camera_android and camera_avfoundation dependencies
-
1.0.413 Mar 2026 -
1.0.310 Mar 2026 -
1.0.210 Mar 2026Release notes
Open source →- Fix macOS use-after-free crash during engine teardown by making dispose synchronous/idempotent and guarding FFI callbacks
-
1.0.103 Mar 2026Release notes
Open source →- Fix xcprivacy build warnings by declaring resource_bundles in iOS and macOS podspecs
-
1.0.028 Feb 2026Release notes
Open source →First stable release of
camera_desktopPlatform implementations
- macOS, AVFoundation (
AVCaptureSession,AVAssetWriter). Preview viaCVPixelBuffertextures, H.264/AAC recording, native mirror support. - Windows, Media Foundation (
IMFCaptureEngine) with Direct3D 11 texture rendering. H.264/AAC recording viaIMFSinkWriter. - Linux, GStreamer + V4L2 (
v4l2src → videoconvert → appsinkpipeline). H.264/AAC recording with automatic encoder selection, native mirror viavideoflip.
Features
- Live camera preview with hardware-accelerated texture rendering on all platforms
- Photo capture, video recording, and real-time image streaming
- FFI-based zero-copy frame delivery (MethodChannel fallback for compatibility)
- Configurable resolution presets, FPS (5-60), and video bitrate
- Mirror/flip control (macOS and Linux)
- Pause/resume preview
- Runtime capability querying via
getPlatformCapabilities()
- macOS, AVFoundation (
-
0.0.828 Feb 2026 -
0.0.728 Feb 2026 -
0.0.628 Feb 2026Nothing published for this version
-
0.0.527 Feb 2026 -
0.0.427 Feb 2026Release notes
Open source →- FFI-based image stream for reduced memory copies (3→2 per frame)
- Fix macOS Swift/ObjC interop for FFI bridge
- Fix image format reporting (Linux/Windows RGBA vs macOS BGRA)
-
0.0.327 Feb 2026 -
0.0.227 Feb 2026 -
0.0.126 Feb 2026Release notes
Open source →- Linux camera support via GStreamer + V4L2.
- macOS camera support via AVFoundation.
- Windows camera support via Media Foundation.
- Full
camera_platform_interfacecompliance. - Photo capture, video recording, image streaming, and live preview.