MP4CopyTrack - Man Page

Make a copy of a specified track


#include <mp4.h>

MP4TrackId MP4CopyTrack(
MP4FileHandle srcFile,
MP4TrackId srcTrackId,
MP4FileHandle dstFile = MP4_INVALID_FILE_HANDLE,
bool applyEdits = false,
MP4TrackId dstHintTrackReferenceTrack = MP4_INVALID_TRACK_ID



Specifies the mp4 file of the source track of the operation.


Specifies the track id of the track to be copied.


Specifies the mp4 file of the new, copied track. If the value  is MP4_INVALID_FILE_HANDLE, the new track is created in the same file as the source track.


Specifies if the track edit list is to be applied during the copying of media samples. If false, then all samples are copied, if true then only those samples included by the track edit list are copied.


When cloning a hint track, this parameter specifies the track id of the reference track in the destination file.

Return Values

Upon success, the track id of the new track. Upon an error, MP4_INVALID_TRACK_ID.


MP4CopyTrack creates a new track to an mp4 file that is a copy of an existing track with respect to the track media type, other control information, and media samples.

The applyEdits parameter of this function allows for easy creation of standalone clips from a larger mp4 file. To do this use MP4AddTrackEdit() to specify the start and duration of the clip, and then use MP4CopyTrack() to export that portion of the media to a new mp4 file.

Note if you do not want to copy the media samples, but just want to create a track with the same type and control information of the source track use MP4CloneTrack().

See Also

MP4(3) MP4CloneTrack(3) MP4AddTrackEdit(3)

Referenced By

MP4AddTrackEdit(3), MP4CloneTrack(3).

Version 0.9 Cisco Systems Inc. MP4 File Format Library