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 定义如下:

推荐阅读