Steps to reproduce
- Create a CameraController with videoBitrate parameter:
CameraController(
cameraDescription,
ResolutionPreset.medium,
videoBitrate: 4000000, // 4 Mbps
);
- Record a 60-second video
- Check file size - it's ~110 MB instead of expected ~30 MB
Expected behavior
Video should be encoded at 4 Mbps (~30 MB for 60 seconds)
Actual behavior
videoBitrate is ignored, video is encoded at default bitrate (~14 Mbps, ~110 MB for 60 seconds)
Root cause
In camera_android_camerax/lib/src/android_camera_camerax.dart line 434:
recorder = Recorder(qualitySelector: presetQualitySelector);
The Recorder class supports targetVideoEncodingBitRate parameter, but mediaSettings?.videoBitrate is never passed to it.
Fix
recorder = Recorder(
qualitySelector: presetQualitySelector,
targetVideoEncodingBitRate: mediaSettings?.videoBitrate,
);
Version
- camera: 0.11.3
- camera_android_camerax: 0.6.26+2
- Flutter: 3.x
Steps to reproduce
Expected behavior
Video should be encoded at 4 Mbps (~30 MB for 60 seconds)
Actual behavior
videoBitrate is ignored, video is encoded at default bitrate (~14 Mbps, ~110 MB for 60 seconds)
Root cause
In camera_android_camerax/lib/src/android_camera_camerax.dart line 434:
recorder = Recorder(qualitySelector: presetQualitySelector);
The Recorder class supports targetVideoEncodingBitRate parameter, but mediaSettings?.videoBitrate is never passed to it.
Fix
Version