Skip to content

[camera_android_camerax] videoBitrate parameter from MediaSettings is ignored #179832

Description

@AmandeepSingh179

Steps to reproduce

  1. Create a CameraController with videoBitrate parameter:
CameraController(
  cameraDescription,
  ResolutionPreset.medium,
  videoBitrate: 4000000, // 4 Mbps
);
  1. Record a 60-second video
  2. 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    in triagePresently being triaged by the triage teamwaiting for responseThe Flutter team cannot make further progress on this issue until the original reporter responds

    Type

    No type

    Projects

    Status
    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions