Custom Timed Metadata track - AVAssetWriterInputMetadataAdaptor. MOV vs MP4 container issues?

Hello


I am successfully writing a custom boxed metadata to a raw data metadata track type and custom identifier using the AVAssetWriter, AVAssetWriterTrackInput, AVAssetWriterInputMetadataAdaptor , to a AVFileTypeQuickTimeMovie container.


However, when trying to use AVFileTypeMPEG4 my application is unable to associate my metadata adaptor to my asset writer. The code below has specific setup for my CMFormatDescription, Metadata Identifier, and AssetWriter setup.


https://github.com/Synopsis/Synopsis/blob/master/Synopsis/Synopsis/MetadataWriterTranscodeOperation.m#L175


Some questions:


* What are the limitations to custom *timed* metadata tracks with MP4 compared to MOV container?


* Are there strategies or specific allowed metadata types for timed metadata within MP4 that can be written by AVFoundations AVAssetWriterInputMetadataAdaptor ?


* If the above is not possible, is it possible to write custom streams to the MP4 container (streams marked private track ID?) via AVFoundation - See http://forum.doom9.org/showthread.php?t=62723 item number #4


Im assuming using a passthrough asset writer and a custom CMSampleBuffer it might be possible - but AVAssetWriter seems limited to predefined AVMediaTypes , which are all standard fourCC codes like ‘vide’, ’soun’ ‘text’ ’tmcd’. Can you pass through your own fourCC?


Any specific information on the limits of timed metadata in MP4 and MOV containers is highly appreciated!

Accepted Reply

Seems as though Quicktime Timed Metadata isnt possible in MP4 container, at least via AVFoundation, as mentioned in WWDC presentation https://developer.apple.com/videos/play/wwdc2014-505/

Seems as though other alternatives need to be explored.

Replies

Seems as though Quicktime Timed Metadata isnt possible in MP4 container, at least via AVFoundation, as mentioned in WWDC presentation https://developer.apple.com/videos/play/wwdc2014-505/

Seems as though other alternatives need to be explored.