(转)flv文件格式解读之视频tags

转载 2012年03月21日 17:11:58

视频tags的组成:
---------------------------------------------------------------------------
tag类型 0x09

tag数据大小 3个字节的视频数据大小 

tag时间戳 3个字节tag数据应用的时间(毫秒)

tag时间戳扩展 1个字节的时间戳扩展,让时间戳变成4字节,本字节作为时间戳的高位.

streamID 3个字节的类id,总是0

视频tags的数据
-----------------------------------------------------------------------------------------------------------
视频tags的数据:

视频tags数据和swf文件格式中的VideoFrame是相似的.他们的数据是一样的

视频格式的数据的组成如下:

帧类型 4bit

1: 关键帧keyframe(视频中的关键帧,数据存储的是整个画面完整的数据,可以提取它来生成图片)
2: 中间帧inter frame(关键帧之间的状态,不完整的画面数据,需要依靠前面帧的数据生成)
3: 可任意使用的中间帧disposable inter frame(H.263 only)

视频编码id 4bit

2: Sorenson H.263(mencoder转换所使用的视频编码)
3: Screen video
4: On2 VP6
5: On2 VP6 with alpha channel
6: Screen video version 2

---------------

视频数据 

If CodecID = 2
H263VIDEOPACKET
If CodecID = 3
SCREENVIDEOPACKET
If CodecID = 4
VP6FLVVIDEOPACKET
If CodecID = 5
VP6FLVALPHAVIDEOPAC
KET
If CodecID = 6
SCREENV2VIDEOPACKET

--------------------------------------------------------------------------------------------

这里说一下Sorenson H.263视频编码以及其数据包:

从swf6开始,flash使用被称作Sorenson H.263的视频编码格式,这种格式基于h.263,一个公开视频编码标准由ITU(国际电信联盟)
提出的.想了解h.263编码格式的朋友可以看http://www.chinavideo.org/index.php?option=com_content&task=view&id=123&Itemid=0


但是Sorenson H.263编码和H.263是有差别的:
下面的特性不存在Sorenson H.263中:
■ GOB (group of blocks) layer
■ Split-screen indicator
■ Document camera indicator
■ Picture freeze release
■ Syntax-based arithmetic coding
■ PB frames
■ Continuous-presence multipoint
■ Overlapped block-motion compensation
下面的特性是Sorenson H.263增加的:
■ Disposable frames (difference frames with no future dependencies)
■ Arbitrary picture width and height up to 65535 pixels
■ Unrestricted motion vector support is always on
■ A deblocking flag is available to suggest the use of a deblocking filter

---------------------------------------------------------------------------------
H263VIDEOPACKET数据结构:

PictureStartCode UB[17]  和H.263 5.1.1相似
    0000 0000 0000 0000 1

Version  UB[5]  视频格式版本
    Flash Player 6 supports 0 and 1
TemporalReference UB[8]  察看 H.263 5.1.2

PictureSize UB[3]  图像尺寸:
    000: custom, 1 byte
    001: custom, 2 bytes
    010: CIF (352x288)
    011: QCIF (176x144)
    100: SQCIF (128x96)
    101: 320x240
    110: 160x120
    111: 保留

CustomWidth   If PictureSize = 000 UB[8]
    If PictureSize = 001 UB[16]
    否则不存在
    注意:UB[16]不一样UI16,这里不是字节交换的
    单位是像素

CustomHeight   If PictureSize = 000 UB[8]

If PictureSize = 001 UB[16]
    否则不存在 
    注意:UB[16]不一样UI16,这里不是字节交换的
    单位是像素

PictureType UB[2]   00: intra frame
    01: inter frame
    10: disposable inter frame
    11: reserved
DeblockingFlag UB[1]  Requests use of deblocking
    filter (advisory only, Flash
    Player may ignore)
Quantizer UB[5]   See H.263 5.1.4
ExtraInformationFlag UB[1]  See H.263 5.1.9
ExtraInformation   If ExtraInformationFlag = 1
    UB[8]
    Otherwise absent
    See H.263 5.1.10

    The ExtraInformationFlag-
    ExtraInformation sequence
    repeats until an

    ExtraInformationFlag of 0 is
    encountered

Macroblock MACROBLOCK  See following
PictureStuffing varies  See H.263 5.1.13

------------------------------------------------------------------------------
下面的这些数据是视频图像的具体数据,如果想提取图片的话可以研究一下,但我的目的是从中提取视频的舞台大小.
那么CustomWidth和CustomHeight就够了...


至于其它的数据,常用的就是o2 vp6和带alpha通道的o2 vp6格式了.这里就不多提了,我的目的是从flv中提取meta信息,大多的o2 vp6格式的flv已经有了meta信息了...


转自:http://blog.csdn.net/b4362928/article/details/4970234

RTMP/FLV开发实战初级教程

-
  • 1970年01月01日 08:00

flv文件格式解读之视频tags

tag类型 0x09tag数据大小 3个字节的视频数据大小 tag时间戳 3个字节tag数据应用的时间(毫秒)tag时间戳扩展 1个字节的时间戳扩展,让时间戳变成4字节,本字节作为时间戳的高位.str...
  • cyblueboy83
  • cyblueboy83
  • 2008-01-30 00:11:00
  • 1202

(转)flv文件格式解读之音频tags

音频tags的组成: --------------------------------------------------------------------------- tag类型 0x08 ...
  • gxj1680
  • gxj1680
  • 2012-03-21 17:11:14
  • 562

C#将视频文件转换为FLV格式

string tools = @"F:/Temp/FLVConventDemo/Tools/ffmpeg.exe"; string source = @"F:/Temp/FLVConventDemo/...
  • wangq_jx
  • wangq_jx
  • 2013-12-13 15:24:07
  • 710

linux下如何利用浏览器播放本地flv文件

虽然这里我写的东西比较少,比较简单,你看了可能觉得,哇,这么简单。但是,到达这里之前,我真的是找了好久,才知道这个方法。----------------------------------------...
  • taolinke
  • taolinke
  • 2010-12-10 21:25:00
  • 2908

牛人写的把其他格式的文件转换成flv格式的文件,java版

在做视频相关的项目中需要把其它格式的文件转换成 flv 格式的文件,因 flv 文件体积小,且可以边下载边播放,很有优势,然后用播放器即可在web页面里播放,这个就是设计 flv 格式文件的生成问题,...
  • shenzhenNBA
  • shenzhenNBA
  • 2013-10-18 15:12:20
  • 6088

流媒体-FLV格式详解及数据分析

一、FLV文件格式 FLV包括文件头(File Header)和文件体(File Body)两部分。文件结构如图所示: 二、FLV文件头 header部分记录了flv的类型、版本等信息...
  • mm792261167
  • mm792261167
  • 2017-04-06 17:08:12
  • 5222

使用ffmpeg进行视频文件转换成FLV整理

本系列文章导航Windows下FFmpeg快速入门ffmpeg参数解释mencoder和ffmpeg参数详解(Java处理视频)Java 生成视频缩略图(ffmpeg)使用ffmpeg进行视频文件转换...
  • hemingwang0902
  • hemingwang0902
  • 2009-07-26 22:23:00
  • 11080

视频转换成flv注意事项

最近剪了一个视频,然后要求是flv,pr 2015 cc 根本没有flv的直接选项啊啊啊啊!自己先导出了MP4格式的视频,感觉还行,但是不符合最后要求啊,接下来就是漫长的转格式之路! 先来一张MP4...
  • ljsalove
  • ljsalove
  • 2016-06-05 18:44:23
  • 860

开始整视频转为FLV的C#开发了

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和...
  • xiao190128
  • xiao190128
  • 2016-07-14 16:16:16
  • 140
收藏助手
不良信息举报
您举报文章:(转)flv文件格式解读之视频tags
举报原因:
原因补充:

(最多只允许输入30个字)