An AVAssetExportSession object transcodes the contents of an AVAsset source object to create an output of the form described by a specified export preset.
On OS X API, you use an AVAssetWriter object to write media data to a new file of a specified audiovisual container type, such as a QuickTime movie file or an MPEG-4 file, with support for automatic interleaving of media data for multiple concurrent tracks
You could use avassetreader and avassetwriter to merge the two files but that s probably further along the control power curve than you need;an avassetexportsession is probably a better fit as you can merge audio and video tracks in a few lines of code
Merging *.mp3 with *.mov file using AVAssetReader and AVAssetWriter
This will work directly with avassetexportsession which is much easier than playing with avassetwriter unless you have a very specific requirement typically you need to manipulate the actual video frames
AVAssetWriter creating video from images with Ken Burns effect&