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?
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.