1.一個(gè)視頻文件的基本屬性
mvhd(movie header)
時(shí)長(zhǎng),創(chuàng)建時(shí)間,
preferredRate和preferredVolume:文件的默認(rèn)速度和默認(rèn)音量,一般從mvhd取出,默認(rèn)值都是1;
2.AVAsset
duration 是一個(gè)結(jié)構(gòu)體(CMTime)
typedef struct
{
CMTimeValue value;
CMTimeScale timescale;
CMTimeFlags flags;
CMTimeEpoch epoch;
} CMTime;
3.AVAssetTrack
在mvhd下面我們看到有三個(gè)通道,一般的視頻至少有兩個(gè)通道,一個(gè)視頻,一個(gè)音頻。AVFoundation中有一個(gè)專(zhuān)門(mén)的類(lèi)承載多媒體中的track:AVAssetTrack。
打開(kāi)track我們會(huì)發(fā)現(xiàn)里邊也有一個(gè)tkhd(track header),其中包含了通道的基本信息。
trackid,在AVAsset中可以通過(guò)trackid來(lái)獲取某一個(gè)通道.
4.元數(shù)據(jù)
下面有一個(gè)meta和udta,里邊保存著視頻的元數(shù)據(jù)。
8種媒體類(lèi)型
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);