flv格式用什么打開 打開flv格式的播放器( 二 )


格式 10,AAC,聲音類型應為 1 (立體聲) 且采樣率應為 3 (44 kHz) 。這并不表示 FLV 中的 AAC 音頻總是立體聲、44 kHz的數據 。實際上,Flash 播放器會忽略這兩個值,而從已編碼的 AAC 位流中提取出聲道數和采樣率信息 。
格式 11,Speex,音頻以 16 kHz采樣率壓縮為單聲道,采樣率字段值應為 0,采樣位深字段值應為 1,聲音類型字段值應為 0 。
格式 7,8,14 和 15 保留 。
typedef struct {UB [4] SoundFormat;UB [2] SoundRate;UB [1] SoundSize;UB [1] SoundType; IF SoundFormat == 10UI8 AACPacketType;}
3.1.2 AudioTagBody/AUDIODATA
AUDIODATA 定義如下:

flv格式用什么打開 打開flv格式的播放器

文章插圖
flv格式用什么打開 打開flv格式的播放器

文章插圖
typedef struct { IF EncryptedEncryptedBody Body elseAudioTagBody Body;}AUDIODATA;
AUDIODATA 包含 Body 字段 。如果采用了加密,Body 的類型是 EncryptedBody,可參考規范文檔“附件 F. FLV 加密”章節獲得詳細信息,此處略 。如果未采用加密,則 Body 的類型是 AudioTagBody,下面詳述 。
AudioTagBody 定義如下:
flv格式用什么打開 打開flv格式的播放器

文章插圖
flv格式用什么打開 打開flv格式的播放器

文章插圖
typedef struct { IF SoundFormat == 10AACAUDIODATA SoundData; ELSEVaries by format}AudioTagBody;
3.1.3 AACAUDIODATA
Flash 播放器 9.0.115.0 及以上版本支持 AAC 格式 。AACAUDIODATA 定義如下:
flv格式用什么打開 打開flv格式的播放器

文章插圖
flv格式用什么打開 打開flv格式的播放器

文章插圖
3.2 Video Tag
Video Tag 包含 VideoTagHeader 和 VideoTagBody 兩部分 。
3.2.1 VideoTagHeader
flv格式用什么打開 打開flv格式的播放器

文章插圖
flv格式用什么打開 打開flv格式的播放器

文章插圖
H.264 的命名遵循了 ITU-T 的命名約定,它是 VCEG 視頻編碼標準 H.26x 線中的一員;MPEG-4 AVC 的命名來自 ISO/IEC MPEG 的命名約定,它是 ISO/IEC 14496 的第 10 部分,該協議族被稱為 MPEG-4 。
3.2.2 VideoTagBody/VIDEODATA
VIDEODATA 定義如下:
flv格式用什么打開 打開flv格式的播放器

文章插圖
flv格式用什么打開 打開flv格式的播放器

文章插圖
typedef struct { IF EncryptedEncryptedBody Body elseVideoTagBody Body;}VIDEODATA;
VIDEODATA 包含 Body 字段 。如果采用了加密,Body 的類型是 EncryptedBody,可參考規范文檔“附件 F. FLV 加密”章節獲得詳細信息,此處略 。如果未采用加密,則 Body 的類型是 VideoTagBody,下面詳述 。
VideoTagBody 包含視頻幀凈荷數據 。VideoTagBody 定義如下:
flv格式用什么打開 打開flv格式的播放器

文章插圖
flv格式用什么打開 打開flv格式的播放器

文章插圖
typedef struct { IF FrameType == 5UI8 VideoData; ELSE ( IF CodecID == 2H263VIDEOPACKET VideoData; IF CodecID == 3SCREENVIDEOPACKET VideoData; IF CodecID == 4VP6FLVVIDEOPACKET VideoData; IF CodecID == 5VP6FLVALPHAVIDEOPACKET VideoData; IF CodecID == 6SCREENV2VIDEOPACKET VideoData; IF CodecID == 7AVCVIDEOPACKET VideoData; ) }VideoTagBody;
3.2.3 AVCVIDEOPACKET
AVCVIDEOPACKET 包含 AVC(H264) 視頻凈荷數據 。AVCVIDEOPACKET 定義如下:
flv格式用什么打開 打開flv格式的播放器

文章插圖
flv格式用什么打開 打開flv格式的播放器

文章插圖
typedef struct { IF AVCPacketType == 0AVCDecoderConfigurationRecord Data; IF AVCPacketType == 1One or more NALUs}AVCVIDEOPACKET;
3.3 Data Tag
數據 Tag 封裝了單一方法,此方法通常在 Flash 播放器中的網絡流對象上被調用 。數據 Tag 包含方法名和一組參數 。
3.3.1 ScriptTagBody/SCRIPTDATA
SCRIPTDATA 定義如下:
flv格式用什么打開 打開flv格式的播放器

文章插圖
flv格式用什么打開 打開flv格式的播放器

文章插圖
typedef struct { IF EncryptedEncryptedBody Body elseScriptTagBody Body;}SCRIPTDATA;
SCRIPTDATA 包含 Body 字段 。如果采用了加密,Body 的類型是 EncryptedBody,可參考規范文檔“附件 F. FLV 加密”章節獲得詳細信息,此處略 。如果未采用加密,則 Body 的類型是 ScriptTagBody,下面詳述 。
ScriptTagBody 包含以 AMF(Action Message Format) 編碼的 SCRIPTDATA 。AMF 是一種緊湊二進制格式,用于序列化 ActionScript 對象圖 。ScriptTagBody 定義如下:

推薦閱讀