1.一个视频文件的基本属性
mvhd(movie header)
时长,创建时间,
preferredRate和preferredVolume:文件的默认速度和默认音量,一般从mvhd取出,默认值都是1;
2.AVAsset
duration 是一个结构体(CMTime)
typedef struct
{
CMTimeValue value;
CMTimeScale timescale;
CMTimeFlags flags;
CMTimeEpoch epoch;
} CMTime;
3.AVAssetTrack
在mvhd下面我们看到有三个通道,一般的视频至少有两个通道,一个视频,一个音频。AVFoundation中有一个专门的类承载多媒体中的track:AVAssetTrack。
打开track我们会发现里边也有一个tkhd(track header),其中包含了通道的基本信息。
trackid,在AVAsset中可以通过trackid来获取某一个通道.
4.元数据
下面有一个meta和udta,里边保存着视频的元数据。
8种媒体类型
AVF_EXPORT NSString *const AVMediaTypeVideo
AVF_EXPORT NSString *const AVMediaTypeAudio
AVF_EXPORT NSString *const AVMediaTypeText
AVF_EXPORT NSString *const AVMediaTypeClosedCaption
AVF_EXPORT NSString *const AVMediaTypeSubtitle
AVF_EXPORT NSString *const AVMediaTypeTimecode
AVF_EXPORT NSString *const AVMediaTypeMetadata
AVF_EXPORT NSString *const AVMediaTypeMuxed
AVMediaFormat中一共定义了15种媒体特征:
AVF_EXPORT NSString *const AVMediaTypeMetadataObject NS_AVAILABLE_IOS(9_0);
AVF_EXPORT NSString *const AVMediaCharacteristicVisual NS_AVAILABLE(10_7, 4_0);
AVF_EXPORT NSString *const AVMediaCharacteristicAudible NS_AVAILABLE(10_7, 4_0);
AVF_EXPORT NSString *const AVMediaCharacteristicLegible NS_AVAILABLE(10_7, 4_0);
AVF_EXPORT NSString *const AVMediaCharacteristicFrameBased NS_AVAILABLE(10_7, 4_0);
AVF_EXPORT NSString *const AVMediaCharacteristicIsMainProgramContent NS_AVAILABLE(10_8, 5_0);
AVF_EXPORT NSString *const AVMediaCharacteristicIsAuxiliaryContent NS_AVAILABLE(10_8, 5_0);
AVF_EXPORT NSString *const AVMediaCharacteristicContainsOnlyForcedSubtitles NS_AVAILABLE(10_8, 5_0);
AVF_EXPORT NSString *const AVMediaCharacteristicTranscribesSpokenDialogForAccessibility NS_AVAILABLE(10_8, 5_0);
AVF_EXPORT NSString *const AVMediaCharacteristicDescribesMusicAndSoundForAccessibility NS_AVAILABLE(10_8, 5_0);
AVF_EXPORT NSString *const AVMediaCharacteristicEasyToRead NS_AVAILABLE(10_8, 6_0);
AVF_EXPORT NSString *const AVMediaCharacteristicDescribesVideoForAccessibility NS_AVAILABLE(10_8, 5_0);
AVF_EXPORT NSString *const AVMediaCharacteristicLanguageTranslation NS_AVAILABLE(10_11, 9_0);
AVF_EXPORT NSString *const AVMediaCharacteristicDubbedTranslation NS_AVAILABLE(10_11, 9_0);
AVF_EXPORT NSString *const AVMediaCharacteristicVoiceOverTranslation NS_AVAILABLE(10_11, 9_0);