efficient_video_recorder 0.1.2
efficient_video_recorder: ^0.1.2 copied to clipboard
High-efficiency camera video recorder for Flutter. Optimized for low battery usage and zero thermal throttling with CameraX on Android and AVFoundation on iOS.
0.1.2 #
- Fix black camera preview on device rotation when recording or switching orientation:
- Attach
surfaceProvidertoPreviewafter binding to lifecycle for reliable surface negotiation. - Dynamically update
targetRotationonPreviewandVideoCapturein-place without resetting capture sessions.
- Attach
0.1.1 #
- Fix camera preview freezing or stopping after device rotation or resizing:
- Switched
PreviewViewtoImplementationMode.COMPATIBLE(TextureView) to prevent hardware surface drops on configuration changes. - Guarded
detachSurfaceProvideragainst race conditions during view recreation. - Added automatic display rotation tracking via
ComponentCallbacks2on Android. - Made
setTargetRotationauto-detect current display rotation and seamlessly re-bind/refresh preview surfaces when orientation changes.
- Switched
0.1.0 #
- Initial open source release of
efficient_video_recorder. - Android:
- Purpose-built CameraX 1.5.x module binding strictly 2 streams:
PreviewandVideoCapture<Recorder>. - Zero-copy hardware preview via
SurfaceView(PreviewView.ImplementationMode.PERFORMANCE), bypassing the Flutter GPU texture-render loop. - Capped 24 fps capture mode to cut sensor & ISP workload by 20–30%.
- Explicit bitrate presets: SD 480p (2.5 Mbps), HD 720p (4.5 Mbps), FHD 1080p (8.0 Mbps).
- Software video stabilization disabled by default to eliminate gyro sensor polling & warping power drain.
- Event-driven finalize callbacks (
VideoRecordEvent.Finalize).
- Purpose-built CameraX 1.5.x module binding strictly 2 streams:
- iOS:
- AVFoundation capture pipeline using
AVCaptureSessionandAVCaptureMovieFileOutput. - Native preview layer integration.
- AVFoundation capture pipeline using
- Flutter:
- Modern, lightweight
EfficientVideoRecorderControllerwith lifecycle management. EfficientVideoPreviewwidget with gesture transparency so parent tap gestures work out-of-the-box.
- Modern, lightweight