Search code examples
iosvideotranscoding

Record videos on iOS device at a specific bitrate


I want to create an app which records video and saves it to the local device, but it needs to record at a specific bitrate. Currently when a video is recorded on an iOS device, it has to be downloaded and transcoded into a streamable size. Rather than having to download and transcode (which takes time) it would be far better if the device just recorded with a maximum bitrate in mind.

Is that possible?


Solution

  • The quality of what you record is UIImagePickerController is based on the enumeration UIImagePickerControllerQualityType those settings can change in different devices.
    If you use AVFoundation, with AVCaptureSession you have a similar property called -sessionPreset some of these are fixed others due to devices hardware.
    But you have also the freedom to select the best framerate by using the -activeFormat property on an AVCaptureDevice.
    There is no way to change the bitrate in realtime, but you can export the movie you recorded using AVAssetReaderVideoCompositionOutput. More info here.