iosiphoneswiftavfoundationavcam

How to record video in ProRes codec on iOS?


I would like to capture video from device’s back camera directly to ProRes codec, now that .proRes422 and .proRes4444 are available as AVVideoCodecType options in iOS 11.

But I receive an error that recording is:

unsupported given the current configuration

On both iPhone X and second generation iPad Pro, when trying to capture video with the following code:

movieFileOutput.setOutputSettings([AVVideoCodecKey: AVVideoCodecType.proRes422], 
                                  for: movieFileOutputConnection!)

If this approach is wrong, can the captured video be encoded by using AVCaptureVideoDataOutput alongside AVAssetWriter?


Solution

  • I received a response from Brad Ford, an engineer from camera software team at Apple:

    The AVVideoCodecType (string) is available, meaning you can compile code that references this constant without a compile error. But AVCaptureMovieFileOutput is telling you the truth. ProRes is not supported on iOS.