Hardware Audio Encoding, AVMovie Brings Back QuickTime Features
We’ve found we have to fall back to the software encoder because the hardware encoder (
kAppleHardwareAudioCodecManufacturer
) would causeExtAudioFileWrite()
to sometimes fail withOSStatus
-66570 (kExtAudioFileError_AsyncWriteBufferOverflow
). So I asked about that and was told “oh yeah, we don’t support hardware encoding anymore… the new devices don’t need it and the property is just ignored”. I Slacked this to my boss and his reaction was “would be nice if that were in the documentation!”[…]
Enter Tim [Monroe], and the new
AVMovie
. This is a new editing API, an alternative to theAVComposition
stuff, and is much more strongly influenced by the old QuickTime APIs (and, in turn, by the QuickTime file format itself). This brings back some of the important concepts of the old QuickTime API, such as modifier tracks: tracks that consist only of instructions to modify other tracks at certain times.AVComposition
offered some support for this with opacity ramps and affine transforms (in the hideously-namedAVMutableVideoCompositionInstruction
class) but QuickTime was always able to offer a much broader range of functionality, and could save those instructions in the file itself until they were needed for a final export.[…]
And yes, I did say “headers”. The new QuickTime-inspired editing APIs aren’t in the OS X 10.11 docset yet, and they don’t exist at all on iOS.
I’m certainly happy to see this new approach to editing video, although it’s going to be hard to clarify when to use
AVMovie
versusAVComposition
. For example, doing compositing work with affine transforms and opacity, or pulling in Core Animation graphics, may work better with theAVComposition
APIs, at least untilAVMovie
is built out and understood. And for the hardcore, there’s always the low-level approach of doing your own rendering, perhaps with Core Image, and writing samples withAVAssetWriter
.[…]
I wonder about the internal design and architectural politics that led to this about-face on AV Foundation editing, after holding to the company line for so long on the
AVComposition
stuff.