FLASH FLV及F4V原版官方格式 不必翻译[通俗易懂]

FLASH FLV及F4V原版官方格式 不必翻译[通俗易懂]                    VideoFileFormatSpecificationVersion10Copyright©2008AdobeSystem

大家好,欢迎来到IT知识分享网。



 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

FLASH FLV及F4V原版官方格式 不必翻译[通俗易懂]FLASH FLV及F4V原版官方格式 不必翻译[通俗易懂]Video File Format Specification

Version 10




Copyright © 2008 Adobe Systems Incorporated. All rights reserved. This manual may not be copied, photocopied, reproduced, translated, or converted to any electronic ormachine-readable form in whole or in part without writtenapproval from AdobeSystems Incorporated. Notwithstanding  the foregoing, apersonobtaining an electronic version of this manualfrom Adobe may print out one copy of this manual provided that nopart of this manual may beprinted out, reproduced, distributed, resold, ortransmitted for any other purposes, including, without limitation, commercial purposes, such as selling copies of thisdocumentation or providing paid-for support services.

 

Trademarks

Adobe, ActionScript,Flash, Flash Media Server, XMP, and Flash Player are either registered trademarks or trademarks of Adobe Systems Incorporated and may be registered inthe United States orin other jurisdictions including internationally. Other product names, logos, designs, titles,words, or phrases mentioned within this publication may be trademarks, service marks, or trade names of Adobe SystemsIncorporated  or other entities andmay be registered incertain jurisdictions includinginternationally. No right or license is grantedto any Adobe trademark.

 

ThirdParty Information

This guide contains linksto third-party websites that are not under the control of Adobe SystemsIncorporated,  and AdobeSystems Incorporated is not responsible for the content on any linked site. If you access a third-party website mentioned inthis guide, then you do so at your own risk. Adobe Systems Incorporated  provides these links only as a convenience, and the inclusion of the link does not imply that Adobe Systems Incorporated  endorses or accepts any responsibility for the content on those third- party sites. No right, license or interest isgranted in any third party technology referenced inthis guide.

 

NOTICE: THIS PUBLICATION AND THE INFORMATION HEREIN ISFURNISHED  AS IS”, IS SUBJECT TOCHANGE WITHOUT NOTICE, AND SHOULDNOT BE CONSTRUED AS A COMMITMENT  BY ADOBESYSTEMS INCORPORATED. ADOBE SYSTEMS INCORPORATED  ASSUMES NO RESPONSIBILITY ORLIABILITY FOR ANY ERRORS OR INACCURACIES, MAKES NO WARRANTY OF ANY KIND (EXPRESS,IMPLIED, OR STATUTORY) WITH RESPECT TO THIS PUBLICATION, AND EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES OFMERCHANTABILITY, FITNESSFOR PARTICULAR PURPOSES, AND NONINFRINGEMENT OFTHIRD PARTY RIGHTS.

 

Adobe Systems Incorporated

 

Published November 2008




 

 

Contents

 

 

 

 

 

 

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  1

The FLV  file format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

The F4V file format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

What’s new in Video File Format 10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

Speex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

XMP  Metadata .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

 

Chapter 1: The FLV File Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

The FLV header .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

The FLV  file body . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

FLV  tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

Audiotags  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

AUDIODATA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

AACAUDIODATA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

Videotags  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

VIDEODATA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

AVCVIDEOPACKET. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

Data tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 onMetaData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

 

Chapter 2: The F4V File Format. . . . . . . . . . . . . . . . . . . . . . . . . . . 17

The F4V box  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 ftyp box .. . .. . . . . . . .. . .. . .. . . . . . . .. . .. . .. . . . . . . .. . .. . .. . . . . . . .. 18moovbox  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 mvhd box  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 trak box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 udta box  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 meta box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 mdia box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  22 minf box  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 stblbox  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  22 tkhd box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  23 mdhd box  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 stsd box   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

 

 

 

i




 

stsc box  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 stts box. .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 ctts box   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 stco and co64 boxes .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 stss box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 stsz box  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 chpl box  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 pdin box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 mdat box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

Required structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

Supported media types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

Unsupported boxes .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

 

Chapter 3: F4V Metadata. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

Tag box  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 ilst box  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

Imagemetadata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

Text metadata  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 styl box  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 hlit box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 hclr box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 krok box. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 dlay box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 drpo box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 drpt box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  41 href  box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  41 tbox box. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 blnk box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 twrp box   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

XMP  Metadata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

uuid  box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ii        Contents




FLASH FLV及F4V原版官方格式 不必翻译[通俗易懂]FLASH FLV及F4V原版官方格式 不必翻译[通俗易懂]

 

 

 

 

 

Introduction

 

 

 

 

This document provides technical format information for the video file formats supported by

Adobe® Flas Player software—FLV and F4V.

Adobe seriously considersall feedback to the video file format specification. E-mail any unclear or potentially erroneous information withinthe specification to Adobe at flashformat@adobe.com.  All such email submissions shall besubject to the SubmittedMaterials guidelines inthe Terms of Use at www.adobe.com/misc/copyright.html.

 

 

The FLV file format

 

Starting with SWF files published for Flash Player 6,Flash Player can exchange audio, video, and data over RTMP connections with the Adobe Flash Media Server™. One way to feed datato Flash Media Server (and thus onto Flash Player clients) is from files inthe FLV file format.Starting with SWF files published for Flash Player 7,Flash Player can also play FLV files directly with MIME type video/x-flv.

An FLV file encodes synchronized audio and video streams. The audio and video data within

FLV files are encoded inthe same way as audio and video within SWF files.

This document describes FLV version 1.For more information ontheFLV format, see

Chapter 1, The FLV File Format, onpage 3.

 

 

The F4V file format

 

Starting with SWF files published for Flash Player 9Update 3 (9,0,115,0), Flash Player canplay F4V files. The F4V format is based onthe format specified by ISO/IEC 1449612: ISO base media file format. For more information on the F4V format, see Chapter 2, The F4V File Format, onpage 17.

A large part of the F4V format involves metadata. For more information onF4Vmetadata, see Chapter 3, F4V Metadata, onpage35.




 

What’s new in Video File Format 10

 

The following features are new in theFlash video file format specifications (both FLV and

F4V) corresponding to Flash Player 10.

 

 

Speex

 

Flash Player 10 supports the open source Speex audio codec. Speex data can serve as the audio stream in an FLV file. See AUDIODATA onpage 6.

 

 

XMP  Metadata

 

The F4V file format supports a box type called ‘uuid which canstore data formatted in Adobes Extensible Metadata Platform (XMP) and present it to a SWF file via ActionScript®. See “XMP Metadata onpage 43.




FLASH FLV及F4V原版官方格式 不必翻译[通俗易懂]FLASH FLV及F4V原版官方格式 不必翻译[通俗易懂]

 

 

 

 

CHAPTER 1




1

 

The FLV File Format

 

 

 

 

Each tag type in an FLV file constitutes asingle stream. There can be no more than one audioand one video stream, synchronized together, in an FLV file. AnFLV file cannot define multiple independent streams of a single type.

Unlike SWF files, FLV files store multibyte integers inbigendian byte order. For example, as a UI16 in SWF file format, the byte sequence that represents the number 300 (0x12C) is

0x2C 0x01; as a UI16 in FLV file format, the byte sequence that represents thenumber 300 is

0x01 0x2C. Also, FLV files use a3byte integer type that is not used inSWF files: a UI24 represents anunsigned 24-bit integer.




 

The FLV header

 

All FLV files begin with the following header:

 




















































FLV  header

 

Field

 

 

Type

 

 

Comment

Signature

UI8

Signature byte always ‘F’ (0x46)

Signature

UI8

Signature byte always ‘L’ (0x4C)

Signature

UI8

Signature byte always ‘V’ (0x56)

Version

UI8

File version (for example, 0x01 for FLV

version 1)

TypeFlagsReserved

UB[5]

Must be 0

TypeFlagsAudio

UB[1]

Audio tags are present

TypeFlagsReserved

UB[1]

Must be 0

TypeFlagsVideo

UB[1]

Video tags are present

DataOffset

UI32

Offset in bytes from  start of file to start of body (that is, size of header)

The DataOffset field usuallyhas a value of9 for FLV version 1. This field is present toaccommodate largerheaders in future versions.

 

 

The FLV file body

 

After the FLV header, the remainder of an FLV file consists of alternating back-pointers and tags. They interleave as shown in the following table:

 
































FLV  file body

 

Field

 

 

Type

 

 

Comment

PreviousTagSize0

UI32

Always 0

Tag1

FLVTAG

First tag

PreviousTagSize1

UI32

Size of previous tag, including its header. For  FLV version 1, this value is 11 plus the DataSize of the previous tag.

Tag2

FLVTAG

Second tag

...

 

 




 












FLV  file body

 

Field

 

 

Type

 

 

Comment

PreviousTagSizeN-1

TagN PreviousTagSizeN

UI32

FLVTAG UI32

Size of secondtolast tag

 

Last tag

 

Size of last tag

 

FLV tags

 

FLV tags have the following format:

 





































FLVTAG

 

Field

 

 

Type

 

 

Comment

TagType

UI8

Type of this tag. Values are:

8: audio

9: video

18: script data

all others: reserved

DataSize

UI24

Length of the data in the Data field

Timestamp

UI24

Time in milliseconds at which the data in this  tag applies. This value is relative to the first tag in the FLV file, which always has a timestamp of 0.

TimestampExtended

UI8

Extension of the Timestamp field to form  a SI32 value. This field represents the upper 8 bits, while the previous Timestamp field represents the lower 24 bits  of the time in milliseconds.

StreamID

UI24

Always 0

Data

If TagType == 8

AUDIODATA If TagType == 9

VIDEODATA

If TagType == 18

Body of the tag

FLASH FLV及F4V原版官方格式 不必翻译[通俗易懂]SCRIPTDATAOBJECT

 

In playback, thetime sequencing ofFLV tags depends onthe FLV timestamps only. Any timingmechanisms built into the payload data formatare ignored.




 

Audio tags

 

Audio tags are similar to the DefineSound tag inthe SWF file format. Their payload data isidentical except for the additional Nellymoser 8-kHz format,whichis not permittedin SWF. (For information on the SWF file format, see the SWF File Format Specification at www.adobe.com/go/swf_file_format.)

 

 

AUDIODATA

 





































AUDIODATA

 

Field

 

 

Type

 

 

Comment

SoundFormat

 

(see notes following

UB[4]

0 = Linear PCM, platform endian

1 = ADPCM

Format of SoundData

 

Formats 7, 8, 14, and 15 are

table)

2 = MP3

3 = Linear PCM, little endian

4 = Nellymoser 16-kHz mono

reserved for internal use

 

AAC is supported in Flash

 

5 = Nellymoser 8-kHz mono

6 = Nellymoser

7 = G.711 A-law logarithmic PCM

Player 9,0,115,0 and higher.

 

Speex is supported in Flash

 

8 = G.711 mu-law logarithmic PCM

9 = reserved

10 = AAC

11 = Speex

14 = MP3 8-Khz

15 = Device-specific sound

Player 10 and higher.

SoundRate

UB[2]

0 = 5.5-kHz

1 = 11-kHz

2 = 22-kHz

3 = 44-kHz

Sampling rate

For  AAC: always 3

SoundSize

UB[1]

0 = snd8Bit

1 = snd16Bit

Size of each sample. This parameter only pertains to uncompressed formats. Compressed formats always decode to 16 bits internally.

0 = snd8Bit

1 = snd16Bit




 

















AUDIODATA

 

Field

 

 

Type

 

 

Comment

SoundType

UB[1]

0 = sndMono

1 = sndStereo

Mono or stereo sound

For  Nellymoser: always 0

For  AAC: always 1

SoundData

UI8[size of sound data]

if SoundFormat == 10

AACAUDIODATA

else

FLASH FLV及F4V原版官方格式 不必翻译[通俗易懂]Sound data—varies by format

 

Format 3, linear PCM, stores raw PCM samples. If the data is 8-bit, the samples are unsigned bytes. Ifthe data is 16-bit, the samples are stored as little endian, signed numbers. Ifthe data is stereo, left and right samples are stored interleaved: left right left right and so on.

Format 0PCM is the same as format 3 PCM,except that format 0 stores 16bit PCM samples inthe endian order of the platformon which the file was created. For this reason, format 0 is not recommended for use.

Nellymoser 8-kHz and 16-kHz are special cases— 8- and 16-kHz sampling rates are not supported in other formats, and the SoundRate bits cant represent this value. WhenNellymoser 8-kHz or Nellymoser 16-kHz is specified inSoundFormat, theSoundRate and SoundType fields are ignored. For other Nellymoser samplingrates, specify the normal Nellymoser SoundFormat and use the SoundRate and SoundType fields as usual.

If the SoundFormat indicates AAC, the SoundType should be set to 1 (stereo) and the SoundRate should be set to 3 (44 kHz). However, this does not mean that AAC audio in FLV is always stereo, 44kHz data. Instead, the Flash Player ignores these values and extracts the channel and sample rate data is encoded in the AAC bitstream.

For information  regarding Speex capabilities and limitationswhen stored in a SWF file, seethe SWF File Format Specification.




 

AACAUDIODATA

 

The AAC format is supported in Flash Player 9,0,115,0 and higher.

 

















AACAUDIODATA

 

Field

 

 

Type

 

 

Comment

AACPacketType

UI8

0: AAC sequence header

1: AAC raw

Data

UI8[n]

if AACPacketType == 0

AudioSpecificConfig

else if AACPacketType == 1

Raw AAC frame data

 

The AudioSpecificConfig is explainedin ISO 144963. Note that it is not the same as the contents of the esds box from an MP4/F4V file. This structure is more deeply embedded.

 

 

FLASH FLV及F4V原版官方格式 不必翻译[通俗易懂]Video tags

 

Video tags aresimilar to the VideoFrame tag in the SWF file format, and their payload data is identical. (For information on the SWF file format, see the SWF File Format Specification atwww.adobe.com/go/swf_file_format.)




 

VIDEODATA

 






















VIDEODATA

 

Field

 

 

Type

 

 

Comment

FrameType

UB[4]

1: keyframe (for AVC, a seekable frame)

2: inter frame (for AVC, a non- seekable frame)

3: disposable inter frame (H.263 only)

4: generated keyframe (reserved for server use only)

5: video info/command frame

CodecID

UB[4]

1: JPEG (currently unused)

2: Sorenson H.263

3: Screen video

4: On2 VP6

5: On2 VP6 with alpha channel

6: Screen video version 2

7: AVC

VideoData

If CodecID == 2

H263VIDEOPACKET

Video frame payload or UI8 (see note following table)

If CodecID == 3

SCREENVIDEOPACKET If CodecID == 4

VP6FLVVIDEOPACKET If CodecID == 5

VP6FLVALPHAVIDEOPACKET If CodecID == 6

SCREENV2VIDEOPACKET

FLASH FLV及F4V原版官方格式 不必翻译[通俗易懂]if CodecID == 7

AVCVIDEOPACKET

 

If FrameType = 5, instead of a video payload, the message stream contains aUI8 with the following meaning:

       0 = Start of client-side seeking video frame sequence

       1 = End of client-sideseeking video frame sequence




 

AVCVIDEOPACKET

 

An AVCVIDEOPACKET  carries apayload of AVC video data.

 

















AVCVIDEOPACKET

 

Field

 

 

Type

 

 

Comment

AVCPacketType

UI8

0: AVC sequence header

1: AVC NALU

2: AVC end of sequence (lower level  NALU

sequence ender is not  required or supported)

CompositionTime

SI24

if AVCPacketType == 1

Composition time offset

else

0

 

Data                                 UI8[n]                        if AVCPacketType == 0

AVCDecoderConfigurationRecordelse if AVCPacketType== 1

FLASH FLV及F4V原版官方格式 不必翻译[通俗易懂]One or more NALUs (can be individual slices per FLV packets; that is, full framesarenot  strictly required)

else ifAVCPacketType == 2

Empty

 

See ISO 14496-12, 8.15.3 for an explanation ofcomposition times. The offset in an FLV fileis always inmilliseconds.

See ISO 14496-15, 5.2.4.1 for the description of AVCDecoderConfigurationRecord. Thiscontains the same information that would be stored inan avcC box in an MP4/FLV file.

 

 

Data tags

 

Data tags encapsulate single-method invocation, which is usually called ona NetStream object inFlash Player. Data tags are formed from a method name and a set of arguments.

 

















SCRIPTDATA

 

Field

 

 

Type

 

 

Comment

Objects

SCRIPTDATAOBJECT[]

Arbitrary number of

SCRIPTDATAOBJECT structures

End

UI24

Always 9, also known as a

SCRIPTDATAOBJECTEND




 

SCRIPTDATAOBJECT and SCRIPTDATAOBJECTEND

FLASH FLV及F4V原版官方格式 不必翻译[通俗易懂]A SCRIPTDATAOBJECT record defines objectdata inActionScript. Lists of SCRIPTDATAOBJECT records are terminated by using the SCRIPTDATAOBJECTEND tag.

 

























SCRIPTDATAOBJECT

 

Field

 

 

Type

 

 

Comment

ObjectName

 

ObjectData

SCRIPTDATASTRING

 

SCRIPTDATAVALUE

Name of the object

 

Data of the object

 

SCRIPTDATAOBJECTEND

Field

Type

Comment

ObjectEndMarker2

UI24

Always 9




 

SCRIPTDATASTRING and SCRIPTDATALONGSTRING

The SCRIPTDATASTRING and SCRIPTDATALONGSTRING records are used todefinestrings for data tags.

FLASH FLV及F4V原版官方格式 不必翻译[通俗易懂]The SCRIPTDATALONGSTRING record can be used to specify strings larger than 65535 characters.

 

























SCRIPTDATASTRING

 

Field

 

 

Type

 

 

Comment

StringLength

 

StringData

UI16

 

STRING

String length in bytes

 

String data

 

SCRIPTDATALONGSTRING

Field

Type

Comment

StringLength

 

StringData

UI32

 

STRING

String length in bytes

 

String data

 

SCRIPTDATAVALUE

FLASH FLV及F4V原版官方格式 不必翻译[通俗易懂]A SCRIPTDATAVALUE  record represents an abstract definition ofan ActionScript value or object. It can contain a list of values, objects, variables, orarrays.

 

SCRIPTDATAVALUE

 

FLASH FLV及F4V原版官方格式 不必翻译[通俗易懂]Field                                 Type                                       Comment




 

Type

 

(see notes following table)




UI8                                                          Type ofthe variable:

0 = Number type

1 = Boolean type

2 = String type

3 = Object type

4 = MovieClip type

5 = Null type

6 = Undefined type

7 = Reference type

8 = ECMA array type

10 = Strict array type

11 = Date type

12 = Long stringtype




 

ECMAArrayLength                If Type = 8, UI32                                  Approximate number of fields of ECMA array




 

FLASH FLV及F4V原版官方格式 不必翻译[通俗易懂]SCRIPTDATAVALUE

 

FLASH FLV及F4V原版官方格式 不必翻译[通俗易懂]Field                                 Type                                       Comment




 

ScriptDataValue                    If Type == 0

DOUBLE If Type == 1

UI8

If Type == 2

SCRIPTDATASTRING If Type == 3

SCRIPTDATAOBJECT[n]If Type == 4

SCRIPTDATASTRING

defining

the MovieClip path

If Type == 7

UI16

If Type == 8

SCRIPTDATAVARIABLE[EC MAArrayLength]

If Type == 10

SCRIPTDATAVARIABLE[n] If Type == 11

SCRIPTDATADATE If Type == 12

SCRIPTDATALONGSTRING




Script data values




 

FLASH FLV及F4V原版官方格式 不必翻译[通俗易懂]ScriptDataValueTerminator   If Type == 3

SCRIPTDATAOBJECTENDIf Type == 8

SCRIPTDATAVARIABLEEND




Terminators for Object and

Strict array lists




 

If Type = 8 (ECMA array type), the ECMAArrayLength provides a hint to the software about how many items might be in the array. The array continues untilSCRIPTDATAVARIABLEEND appears.

If Type = 10 (strictarray type), the array begins with a UI32 type and contains that exact number of items. Thearray does notterminate with a SCRIPTDATAVARIABLEEND tag.




 

SCRIPTDATAVARIABLE and

SCRIPTDATAVARIABLEEND

FLASH FLV及F4V原版官方格式 不必翻译[通俗易懂]A SCRIPTDATAVARIABLE  record defines variable data in ActionScript. Lists of SCRIPTDATAVARIABLE records areterminated by using the SCRIPTDATAVARIABLEEND tag.

 

FLASH FLV及F4V原版官方格式 不必翻译[通俗易懂]SCRIPTDATAVARIABLE

 



























Field

Type

Comment

VariableName

 

VariableData

SCRIPTDATASTRING

 

SCRIPTDATAVALUE

Name of the variable

 

Data of the variable

 

SCRIPTDATAVARIABLEEND

Field

Type

Comment

 

VariableEndMarker1

UI24

Always 9

 

 

SCRIPTDATADATE

A SCRIPTDATADATE record definesa particular date and time.

 

















SCRIPTDATADATE

 

Field

 

 

Type

 

 

Comment

DateTime

DOUBLE

Number of milliseconds since Jan 1, 1970

UTC.

LocalDateTimeOffset

SI16

Local time offset in minutes from  UTC.  For time zones located west of Greenwich, UK, this value is a negative number. Time zones east of Greenwich, UK, are positive.

 

onMetaData

 

An FLV file can contain metadata with an onMetaData marker. Various stream properties are available to a running ActionScriptprogram via the NetStream.onMetaData property. The availableproperties differ dependingon the software used. Common propertiesinclude:

         duration: a DOUBLE indicating the totalduration of the file in seconds

         width: a DOUBLE indicating the width of the video inpixels

         height: a DOUBLE indicating the height of the video inpixels

         videodatarate: a DOUBLE indicating thevideo bit rate in kilobits per second




 

         framerate: a DOUBLE indicating the number of frames per second

       videocodecid: a DOUBLEindicating the video codec ID used in the file (see Video tags onpage 8for available CodecID values)

       audiosamplerate: a DOUBLE indicating the frequency at which the audiostream is replayed

         audiosamplesize: a DOUBLE indicating theresolution ofa single audio sample

         stereo: a BOOL indicating whether the data is stereo

       audiocodecid: a DOUBLEindicating the audio codec IDused in the file (see Audio tags onpage 6for available SoundFormat  values)

         filesize: a DOUBLE indicating the total size ofthe file in bytes




 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

FLASH FLV及F4V原版官方格式 不必翻译[通俗易懂]16          The FLV File Format




FLASH FLV及F4V原版官方格式 不必翻译[通俗易懂]FLASH FLV及F4V原版官方格式 不必翻译[通俗易懂]

 

 

 

 

CHAPTER 2




2

 

The F4V File Format

 

 

 

 

Flash Player Update 3 (9,0,115,0) and higher can play F4V files. The F4V format is based on the format specified byISO/IEC 1449612: ISO base media file format.

Unlike SWF files, F4V files store multibyte integers in big-endianbyte order. For example, asa UI16 in SWF file format, the byte sequence that represents the number 300 (0x12C) is

0x2C 0x01; as aUI16 in F4V file format, the byte sequence that represents the number 300 is

0x01 0x2C.

This chapter discusses all aspectsof the F4V formatexcept metadata. For information on metadata, see Chapter 3, “F4V Metadata, onpage 35.

 

 

The F4V box

 

The fundamental building block of an F4V file is abox which has the following BOX format:

 













































F4V box

 

Field

 

 

Type

 

 

Comment

Header

BOXHEADER

A consistent header that all boxes have

Payload

UI8[]

A number of bytes, the length of which is defined by the BOXHEADER

 

Each box structure begins with a BOXHEADER structure:

BOXHEADER

 

 

Field

Type

Comment

TotalSize

UI32

The total size of the box  in bytes, including this  header

BoxType

UI32

The type of atom

ExtendedSize

If TotalSize equals 1

UI64

The total 64-bit length of the box  in bytes, including this  header




 

Many boxes are wellunder 4 gigabytes in length and can store their size in the TotalSize field. The format also supports very large boxes by setting the 32-bit TotalSize field to1 and storing a 64bit size inExtendedSize.

Each box is identified with a 32-bit type.For most boxes, this 32-bit type doubles as ahumanreadablefour-character ASCII code or FourCC, such as ‘moov’ (0x6D6F6F76) and

‘mdat’ (0x6D646174).

The box payload immediatelyfollows the box header. Thesize ofthe payload in bytes is equal to the total size of the box minuseither 8 bytes or16 bytes, depending on the size ofthe header.

For more information, see section 4.2 of ISO/IEC 1449612.

 

 

ftyp box

 

The F4V formatis based on the ISO MP4 format, which inturn is based onthe Apple QuickTime container format. The subsets ofthe format support different features. The ftyp boxhelps identify the features that a program must support to play a particular file.

Flash Player does not enforce anyrestrictionswith respect toftyp boxes. The program tries toplay any file it is given, within the restrictions of the codec types it supports.

 



























ftyp box

 

Field

 

 

Type

 

 

Comments

Header

BOXHEADER

BoxType = ‘ftyp’ (0x66747970)

MajorBrand

UI32

The primary brand identifier

MinorVersion

UI32

The secondary brand identifier

CompatibleBrands

UI32[]

Arbitrary number of compatible brands, until the end of the box

For more information, see section 4.3 of ISO/IEC 1449612.




 

moov box

 

An F4V file must containone and only one moov box. Themoov box is effectively the“header ofan F4V file. The moov box itselfcontains one or more other boxes, which in turn contain other boxes which define the structure of the F4V data.

 





















moov box

 

Field

Type

Comment

Header

BOXHEADER

BoxType = ‘moov’ (0x6D6F6F76)

Boxes

BOX[]

Many other boxes which define the structure

For more information, see section 8.1 of ISO/IEC 1449612.

 

 

mvhd box

 

An F4V file must containone and only one mvhd box. The mvhd box is contained within a moov box and defines playback information that applies to the entire F4V file.

 



























mvhd box

 

Field

 

 

Type

 

 

Comment

Header

BOXHEADER

BoxType = ‘mvhd’ (0x6D766864)

Version

UI8

Either 0 or 1

Flags

UI24

Reserved, set to 0

CreationTime

if Version == 0

SI32

if Version == 1

The creation time of the F4V file, expressed as seconds elapsed since midnight, January 1, 1904 (UTC)




SI64

 

ModificationTime               if Version == 0

SI32

if Version == 1

SI64




 

The last modification time of the F4V file, expressed as seconds elapsed since midnight, January1, 1904 (UTC)




 

















TimeScale

SI32

Specifies the time coordinate system

 

for the entire F4V file; for example,

100 indicates the time units are 1/100

second each




 















































mvhd box

 

Field

 

 

Type

 

 

Comment

Duration

if Version == 0

SI32

if Version == 1

SI64

The total length of the F4V file presentation with respect to the TimeScale; this  value is also the duration of the longest track in the file

Rate

SI32

The preferred rate of playback, expressed as a fixed  point 16.16 number (commonly 0x00010000 =

1.0, or normal playback rate)

Volume

SI16

The master volume of the file, expressed as a fixed point 8.8 number (commonly 0x0100 = 1.0, or full volume)

Reserved

UI16

Reserved, set to 0

Reserved

UI32[2]

Reserved, set to 0

Matrix

UI32[9]

Transformation matrix for the F4V file; F4V restricts these values to

{0x00010000, 0, 0, 0,

0x00010000, 0, 0, 0,

0x40000000}

Reserved

UI32[6]

Reserved, set to 0

NextTrackID

UI32

The ID of the next track to be added to the presentation; this  value may not

be 0 but  might be all 1’s to indicate an undefined state

For more information, see section 8.3 of ISO/IEC 1449612.




 

trakbox

 

An F4V file must containone or more trak boxes. Each trak box is contained within a moov box. Eachtrak box corresponds toan individual media track within the F4V file and contains other boxes which further define theproperties ofthe media track.

 





















trak box

 

Field

Type

Comment

Header

BOXHEADER

BoxType = ‘trak’ (0x7472616B)

Boxes

BOX[]

Arbitrary number of boxes that define the media track

For more information, see section8.4 of ISO/IEC 1449612.

 

 

udta box

 

The optional udta boxdefines free-form user data. Flash Player does not care what is contained inthisbox. An F4V file cancontain at most one udta box.

 












udta box

 

Field

 

 

Type

 

 

Comment

Header

 

UserData

BOXHEADER

 

UI8[]

BoxType = ‘udta’ (0x75647461)

 

Freeform user data

For more information,  seesection 8.27 of ISO/IEC 14496-12.

 

 

meta box

 

The optional meta box can contain a variety ofother boxes that carry metadata. An F4V filecancontain at most one meta box.

 





















meta box

 

Field

Type

Comment

Header

BOXHEADER

BoxType = ‘meta’ (0x6D657461)

Boxes

BOX[]

Arbitrary number of boxes that define the file’s metadata

For more information, see section 8.44.1 of ISO/IEC 14496-12.




 

mdia box

 

Each trak box must containone and only one mdia box. The mdia box contains boxes that define media track properties.

 





















mdia box

 

Field

Type

Comment

Header

BOXHEADER

BoxType = ‘mdia’ (0x6D646961)

Boxes

BOX[]

Arbitrary number of boxes that define media track properties

For more information, see section 8.7 of ISO/IEC 1449612.

 

 

minf box

 

Each mdia box must contain one and only one minf box. The minf box contains boxes thatdefinethe tracks media information.

 





















minf box

 

Field

Type

Comment

Header

BOXHEADER

BoxType = ‘minf (0x6D696E66)

Boxes

BOX[]

Arbitrary number of boxes that define the track’s media information

For more information, see section8.10 of ISO/IEC 14496-12.

 

 

stbl  box

 

Each minf box must contain one and only one stbl box. Thestbl box contains boxes that define properties about the samples that make up a track.

 

















stbl box

 

Field

 

 

Type

 

 

Comment

Header

BOXHEADER

BoxType = ‘stbl’ (0x7374626C)

Boxes

BOX[]

Arbitrary number of boxes that define properties about the track’s constituent samples




 

For more information, see section8.14 of ISO/IEC 14496-12.

 

 

tkhd box

 

Each trak box must containone and only one tkhd box. The tkhd box describes the main properties ofa track.

 



























tkhd box

 

Field

 

 

Type

 

 

Comment

Header

BOXHEADER

BoxType = ‘tkhd’ (0x746B6864)

Version

UI8

Versions 0 and 1 are defined

Flags

UI24

Bit 0: this  bit is set if the track is enabled

Bit 1 = this bit is set if the track is part of the presentation

Bit 2 = this  bit is set if the track should be considered when previewing the F4V file

CreationTime

if version == 0

UI32

if version == 1

The creation time of the track, expressed as seconds elapsed since midnight, January 1, 1904 (UTC)

UI64




 

ModificationTime               if version == 0

UI32

if version == 1

UI64




The last modification time of the track,expressed as seconds elapsed since midnight, January1, 1904 (UTC)




 



























TrackID Reserved

Duration

UI32

 

UI32

 

if version == 0

The tracks unique identifier

 

Reserved, set to 0

 

The duration of the track, expressed in

 

UI32

if version == 1

UI64

the TimeScale defined in the mvhd box  for this track

Reserved

UI32[2]

Reserved, set to 0

Layer

SI16

The position if the front to back ordering of tracks; this value is expected to be 0 for F4V files

AlternateGroup

SI16

0




 
































tkhd box

 

Field

 

 

Type

 

 

Comment

Volume

SI16

If the track is audio, this value is set to

0x0100 (fixed point 8.8 number representing 1.0), otherwise, it is 0

Reserved

SI16

Reserved, set to 0

TransformMatrix

SI32[9]

A matrix of fixed  point 16x16 values defining a perspective transform; this matrix is restricted to the following values: {0x00010000, 0, 0, 0,

0x00010000, 0, 0, 0,

0x40000000}

Width

SI32

Applicable to a video track

Height

SI32

Applicable to a video track

For more information, see section 8.5 of ISO/IEC 1449612.

 

 

mdhd box

 

A mdia box must containone and only one mdhd box. The mdhd box describes properties about a media track.

 



























mdhd box

 

Field

 

 

Type

 

 

Comment

Header

BOXHEADER

BoxType = ‘mdhd’ (0x6D646864)

Version

UI8

Version 0 and 1 are supported

Flags

UI24

Reserved, set to 0

CreationTime

if version == 0

UI32

if version == 1

The creation time of the box, expressed as seconds elapsed since midnight, January 1, 1904 (UTC)




UI64

 

ModificationTime               if version == 0

UI32

if version == 1

UI64




 

The last modification time of the box, expressedas seconds elapsed since midnight, January1, 1904 (UTC)




 

TimeScale                       UI32                                     The base clock tick frequency that this track uses for timing its media




 



























mdhd box

 

Field

 

 

Type

 

 

Comment

Duration

if version == 0

UI32

if version == 1

UI64

The total duration of this  track, measured in reference to the TimeScale

Pad

UB[1]

Padding, set to 0

Language

UB[5][3]

3-character code specifying language (see ISO  639-2/T); each character is interpreted as 0x60 + (5 bit) code to yield an ASCII character

Reserved

SI16

Reserved, set to 0

For more information, see section 8.8 of ISO/IEC 1449612.

 

 

stsd box

 

The stsd box defines the sample description for a sample table. Each stbl box must containone and only one stsd box.

FLASH FLV及F4V原版官方格式 不必翻译[通俗易懂]An stsd box can contain multipledescriptions for a track,one for each media type containedin the track.

 

stsd box

 

FLASH FLV及F4V原版官方格式 不必翻译[通俗易懂]Field                           Type                               Comment

 

Header                              BOXHEADER                     BoxType = ‘stsd’ (0x73747364)Version                             UI8                                                Expected to be 0

Flags                               UI24                                    None defined, set to 0

 

Count                               UI32                                     The numberof entries




 

Descriptions                        DESCRIPTIONRECORD[ Count]




FLASH FLV及F4V原版官方格式 不必翻译[通俗易懂]An array of records whose types vary depending onwhether the trackcontains audio or video data




 

FLASH FLV及F4V原版官方格式 不必翻译[通俗易懂]A SAMPLEDESCRIPTION recordhasthe following layout:

 

SAMPLEDESCRIPTION

 

FLASH FLV及F4V原版官方格式 不必翻译[通俗易懂]Field                                           Type                              Comment

 

DescriptionLength                   UI32                                    The length of the descriptionrecord

 

Type                                             UI32                                    The type of the description; thisvalue isoften 4 humanreadable ASCII characters that also doubleas the track’scodec identifier

 

FLASH FLV及F4V原版官方格式 不必翻译[通俗易懂]Description                                     UI8[DescriptionLength8]  Per-codec configuration data

 

For more information, see section8.16 of ISO/IEC 14496-12.

 

 

stsc box

 

The stsc box defines the sample-to-chunk mapping in the sample table of a media track. An stblbox must contain one and only one stsc box.

 
































stsc box

 

Field

 

 

Type

 

 

Comment

Header

BOXHEADER

BoxType = ‘stsc’ (0x73747363)

Version

UI8

Expected to be 0

Flags

UI24

Reserved, set to 0

Count

UI32

The number of STSCRECORD

entries

Entries

STSCRECORD[Count]

An array of STSCRECORD structures




 

Each STSCRECORD has the following format:

 






















STSCRECORD

 

Field

 

 

Type

 

 

Comment

FirstChunk

UI32

The first chunk that this  record applies to

SamplesPerChunk

UI32

The number of consecutive samples that this  record applies to

SampleDescIndex

UI32

The sample description that describes this  sequence of chunks

For more information, see section8.18 of ISO/IEC 14496-12.

 

 

stts box

 

The stts box defines the time-tosample mapping for a sample table. Each stbl box mustcontain one and only one stts box.

 























































stts box

 

Field

 

 

Type

 

 

Comment

Header

BOXHEADER

BoxType = stts’ (0x73747473)

Version

UI8

Expected to be 0

Flags

UI24

None defined, set to 0

Count

UI32

The number of STTSRECORD entries

Entries

STTSRECORD[Count]

An array of STTSRECORD structures

 

Each STTSRECORD has the following format:

STTSRECORD

 

 

Field

Type

Comment

SampleCount

UI32

The number of consecutive samples that this STTSRECORD applies to

SampleDelta

UI32

Sample duration

For more information, see section8.15.2 of ISO/IEC 14496-12.




 

ctts box

 

The optional ctts box defines the composition time to sample mapping for a sample table. An stbl box can contain at most one ctts box.

 












ctts box

 

Field

 

 

Type

 

 

Comment

Header

 

Count

 

Entries

BOXHEADER UI32

CTTSRECORD[Count]

BoxType = ‘ctts (0x63747473)

 

The number of CTTSRECORD entries

 

An array of CTTSRECORD structures

FLASH FLV及F4V原版官方格式 不必翻译[通俗易懂]Each CTTSRECORD has the following structure:

 

CTTSRECORD

 

FLASH FLV及F4V原版官方格式 不必翻译[通俗易懂]Field                           Type                               Comment

 

SampleCount                   UI32                                     The number of consecutive samples that this  CTTSRECORD applies to

FLASH FLV及F4V原版官方格式 不必翻译[通俗易懂]SampleOffset                   UI32                                     For  each sample specifiedby the SampleCountfield, this  field containsa positive integer that specifies the composition offset from the decoding

time

 

Samples are not always composed (presented to the user) at the time of decoding.The ctts boxcontains offsets from the decoding time when samples are meant to be presented to the user.

For more information, see section8.15.3 of ISO/IEC 14496-12.

 

 

stco and co64 boxes

 

FLASH FLV及F4V原版官方格式 不必翻译[通俗易懂]The stco and co64 boxes define chunk offsets for each chunk in a sample table. Each sampletable must contain one and only one box of eitherthe stco or co64 type.

 

stco and co64 boxes

 

FLASH FLV及F4V原版官方格式 不必翻译[通俗易懂]Field                           Type                               Comment

 

Header                              BOXHEADER                     BoxType = stco’ (0x7374636F)or

‘co64 (0x636F3634) Version                             UI8                                                Expected to be 0

Flags                               UI24                                             No flagsdefined,set to 0




 

FLASH FLV及F4V原版官方格式 不必翻译[通俗易懂]stco and co64 boxes

 

FLASH FLV及F4V原版官方格式 不必翻译[通俗易懂]Field                           Type                               Comment

 

OffsetCount                     UI32                                     The numberof offsets in the Offsetstable




 

FLASH FLV及F4V原版官方格式 不必翻译[通俗易懂]Offsets                            if BoxType == ‘stco’UI32[OffsetCount]

else if BoxType == ‘co64’

UI64[OffsetCount]




A table of absolute chunk offsets within  the file




 

For more information, see section8.19 of ISO/IEC 14496-12.

 

 

stss box

 

The optional stss box specifies whichsamples within a sample table are sync samples. Sync samples are defined as samplesthat are safe to seek to. If the track is a video track, syncsamples are the keyframes/intraframes that do not rely onany data from any other frames.

An stbl box can containat most one stss box. If the stbl box doesnt contain an stss box, allsamples in the track are treated as sync samples.

 
































stss box

 

Field

 

 

Type

 

 

Comment

Header

BOXHEADER

BoxType = ‘stss’ (0x73747373)

Version

UI8

Expected to be 0

Flags

UI24

No flags defined, set to 0

SyncCount

UI32

The number of entries in SyncTable

SyncTable

UI32[SyncCount]

A table of sample numbers that are also sync samples; the table is sorted in ascending order of sample numbers

For more information, see section8.20 of ISO/IEC 14496-12.




 

stsz box

 

The stsz box specifies the size ofeach sample in a sample table. An stszatom must containone and only one stsz box.

 





































stsz box

 

Field

 

 

Type

 

 

Comment

Header

BOXHEADER

BoxType = ‘stsz’ (0x7374737A)

Version

UI8

Expected to be 0

Flags

UI24

No flags defined, set to 0

ConstantSize

UI32

If all samples have the same size, this field is set with that constant size; otherwise it is 0

SizeCount

UI32

The number of entries in SizeTable

SizeTable

if ConstantSize == 0

UI32[SizeCount]

A table of sample sizes; if

ConstantSize is 0, this table is empty

For more information, see section8.17.2 of ISO/IEC 14496-12.

 

 

chpl box

 

The optional chpl box allows an F4V file tospecify individualchapters along themain timeline of an F4V file. The information in this box is provided toActionScript. The chpl box occurs within a moov box.

 
































chpl box

 

Field

 

 

Type

 

 

Comment

Header

BOXHEADER

BoxType = ‘chpl’ (0x6368706C)

Version

UI8

Expected to be 0

Flags

UI24

Reserved, set to 0

Count

UI8

The number of entries in the Chapters array

Chapters

CHAPTERRECORD[Count]

An array of timestamps along the timeline; each indicates the beginning of a new chapter




 

Each CHAPTERRECORD has the following layout:

 






















CHAPTERRECORD

 

Field

 

 

Type

 

 

Comment

Timestamp

UI64

The absolute timestamp of the chapter, in reference to the master timescale and timeline of the F4V file

TitleSize

UI8

The length of the Title string

Title

UI8[TitleSize]

The chapter title

 

pdin box

 

The optional pdin box defines information about progressive download.  A file can contain one pdin box at the top level of the box hierarchy. The information in this box is provided to ActionScript.

The payload of a pdin box provides hints to software about how much data to downloadbefore the software can safely begin playback.

 
























































pdin box

 

Field

 

 

Type

 

 

Comment

Header

BOXHEADER

BoxType = ‘pdin’ (0x7064696E)

Version

UI8

Expected to be 0

Flags

UI24

Reserved, set to 0

RateDelay

RATEDELAYRECORD[]

Populated until the end of the box

 

Each RATEDELAYRECORD has the following layout:

RATEDELAYRECORD

 

 

Field

Type

Comment

BitRate

UI32

The bit rate (in bytes/second) to be considered for this record

InitialDelay

UI32

The number of milliseconds to delay before beginning playback at this bit rate

    

For more information, see section8.43 of ISO/IEC 14496-12.




 

mdat box

 

An mdat box contains the media datapayload for the F4V file. An F4V file must contain one and only one mdat box. The mdat box occurs at the top level ofan F4V file, along with the moov box.

The mdat box cannot be understood on its own, which is why amoov box must be present inthe file as well.

 





















mdat box

 

Field

Type

Comment

Header

BOXHEADER

BoxHeader = ‘mdat’ (0x6D646174)

Payload

UI8[n]

n bytes of media data, the structure of which is defined in the file’s moov box

For more information, see section 8.2 of ISO/IEC 1449612

 

 

Required structure

 

Flash Player expects a valid F4V file to begin with the one of the following top-level boxes:

       ftyp (see ftyp box on page 18)

     moov (see moov box on page 19)

       mdat (see mdat box on page 32)

Many tools that create these files place anmdat box at the front of the file. Before Flash Player canusethe file, it is necessary tochangethe order of boxes in the file. Some tools store anftyp box followed immediately by an mdat box. Inthese situations, itis still recommended to use a post-processing step to move themoov box to the frontof the file (just after the ftyp box).




 

Supported media types

 

FLASH FLV及F4V原版官方格式 不必翻译[通俗易懂]The following table describes themedia types that Flash Player plays back when the media is encapsulated inside anF4V file.

 

FLASH FLV及F4V原版官方格式 不必翻译[通俗易懂]Media type                 Comments

 

FLASH FLV及F4V原版官方格式 不必翻译[通俗易懂]GIF                                A media type of gif (0x67696620) denotes a still frame of video data compressedusing the CompuServeGIF format. The space character, hex 0x20, is includedto make a completefour-character code.

 

FLASH FLV及F4V原版官方格式 不必翻译[通俗易懂]PNG                              A media type of png (0x706E6720) denotes a still frame of video data compressedusing the standardPNG format. The spacecharacter,

hex 0x20, isincluded to make a completefour-character code.

 

FLASH FLV及F4V原版官方格式 不必翻译[通俗易懂]JPEG                            A media type of jpeg (0x6A706567) denotes a still frame of video datacompressed using the standard JPEG format.

 

FLASH FLV及F4V原版官方格式 不必翻译[通俗易懂]Text                              A media type of either text (0x74657874) or tx3g (0x74783367) indicates that thetrack contains textual data that is made available via ActionScript.

 

FLASH FLV及F4V原版官方格式 不必翻译[通俗易懂]AMF0                         A media type of amf0 (0x616D6630)indicatesthat the track contains data corresponding to the original version of the ActionScript MessageFormat (AMF).

 

FLASH FLV及F4V原版官方格式 不必翻译[通俗易懂]AMF3                           A media type of amf3 (0x616D6633) indicates that the track contains data corresponding to the ActionScript MessageFormat (AMF) version 3.

 

H.264                      A media type of H264 (0x48323634), h264 (0x68323634), oravc1 (0x61766331) indicates that the track is encoded with H.264 video.FlashPlayer supports the following H.264 video profiles:

 0: supported for older media that neglects toset profile

 66: baseline

 77: extended

 88: main

 100: YUV 4:2:0, 8 bits/sample; a.k.a.High”

 110: YUV 4:2:0, 10 bits/sample;a.k.a. “High 10”

 122:  YUV 4:2:2, 10 bits/sample; a.k.a. High 4:2:2”

 144: YUV 4:4:4, 12 bits/sample; a.k.a. “High 4:4:4”




 

FLASH FLV及F4V原版官方格式 不必翻译[通俗易懂]FLASH FLV及F4V原版官方格式 不必翻译[通俗易懂]Media type                 Comments

 

FLASH FLV及F4V原版官方格式 不必翻译[通俗易懂]MP3                          A media type of .mp3 (0x2E6D7033) indicates that the trackcontains MP3 audio data. The dot character, hex 0x2E, is includedto make a complete four-charactercode.




 

AAC

(Flash Player

FLASH FLV及F4V原版官方格式 不必翻译[通俗易懂]9,0,115,0 and higher)




A media type of mp4a (0x6D703461) indicates that the track isencoded with AAC audio. Flash Playersupports the following AAC profiles, denoted bytheirobject types:

 1: main profile

 2: low complexity,a.k.a. LC

 5: high  efficiency/scale band replication, a.k.a.HE/SBR




 

An avcC box occurs inside the stsd box of a sample table when the video codec is H.264, and contains initialization data that an H.264 decoder requires todecodethe stream. Bytes 1

and 3 after the BOXHEADER contain the profile and level, respectively, for the AVC data. For more information aboutthe remainder ofthe avcC box, see section5.3.4.1 of ISO/IEC

1449615.

An esds box occurs inside the stsd box of a sample table when the actioncodecis AAC, and contains initialization data that an AAC decoder requires to decode the stream. See ISO/IEC

144963 for more informationabout the structure of this box.

 

 

Unsupported boxes

 

Many box types are described in the formal ISO specification,  as well as in the original AppleQuickTime specification, that Flash Player does notacknowledge. Flash Player might still play files with these box types, but gracefully disregards these boxes andtheir contents.




FLASH FLV及F4V原版官方格式 不必翻译[通俗易懂]FLASH FLV及F4V原版官方格式 不必翻译[通俗易懂]

 

 

 

 

CHAPTER 3




3

 

F4V Metadata

 

 

 

 

When Flash Player loads an F4V file, various stream properties are made availableto a running ActionScript program via the NetStream.onMetaData property. The availableproperties differ depending on the software used. These properties are:

       duration: a DOUBLE indicating the totallength of the movie inseconds

       moovposition: a DOUBLE indicating theabsolute offsetof the moov box within the

F4V file; this property is useful for determining ifthe file will load progressively

       videocodecid: a STRING with four characters that define the video codec used, if video ispresent and is encoded with a codec that Flash Player can decode

       width: a DOUBLE indicating the width of the video, if video ispresent and is encodedwith a codec that Flash Player can decode

       height: a DOUBLEindicating theheight of the video, if video is present and is encoded with a codec that Flash Player can decode

       avcprofile: a DOUBLE indicating the AVC profile that the video conforms to, if video is present and is encoded with AVC/H.264

       avclevel: a DOUBLE indicating the AVC level that the video conforms to, if video is present and is encoded with AVC/H.264

       videoframerate: a DOUBLEindicating theaverage video frame rate of the video, ifvideo is present and is encoded with a codec that Flash Player candecode

       audiocodecid: a STRING with four characters that define the audio codec used, if audio is present and is encoded with a codec that Flash Player can decode




 

Tag box

 

The F4V file format supports an assortment ofoptional tag boxes that can occur within a moov box. AnFLV file cancontain up to 256 tags (includingthe tags in these boxesand the tags defined inan ilst box).

.                                                                                                                                                              

Tag box

 
































Field

Type

Comment

Header

BOXHEADER

BoxType = one of several

Version

UI8

Must be 0

Flags

UI24

Reserved, set to 0

LanguageCode

UI16

ISO-639-2/T two-letter codes

TagString

UI8[n]

n = remaining size of the box  when the tag is reached; the maximum size that the Player honors for a TagString is

65535 bytes

These tags can occur one level beneath a moov box. Recognized tag types include auth’ (0x61757468), titl’ (0x7469746C), ‘dscp’ (0x64736370), and ‘cprt’ (0x63707274).

 

 

ilst box

 

An ilst box occurs inside a meta box and contains anarbitrary number of metadata tags thatare availableto ActionScript. AnFLV file can contain up to 256 tags (including the tags in this box and in the auth,dscp, andcprt tag box types).

 

.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               






















ilst box

 

Field

 

 

Type

 

 

Comment

Header

BOXHEADER

BoxHeader = ‘ilst (0x696C7374)

TagCount

UI32

The number of tags enumerated in the ilst box

Tags

TAGRECORD[TagCount]

A number of TAGRECORD entries




 

Each TAGRECORD has the following layout:

 










































TAGRECORD

 

Field

 

 

Type

 

 

Comment

TagLength

UI32

The total length of the TAGRECORD, including this length field

TagName

UI8[4]

4 bytes indicating the name of the tag; these bytes usually come from  the human-readable ASCII set, but  not always

DataLength

UI32

The total length of the data portion of the TAGRECORD

DataTag

UI8[4]

The 4 bytes ‘d’,  ‘a’, ‘t’, and ‘a’ to indicate the data portion of the TAGRECORD

DataType

UI32

Specifies the type of data in the data payload of the TAGRECORD

Reserved

UI32

Reserved, set to 0

Payload

UI8[]

An arbitrary number of bytes occupying the remainder of the TAGRECORD; the precise payload format is dependent on the DataType

The supported values for the DataType are:

       0: custom data; in the case of‘trkn’ and ‘disk’ tag types, the data payload is interpreted as a single UI32

       1: text data

       13, 14: binary data

       21: generic data

 

 

Image metadata

 

If an F4V sample is an image type (GIF, PNG, or JPEG), the data is made available to a running ActionScriptprogram throughthe onImageData property. The following properties are present:

       trackid: a DOUBLE indicating the track that this sample belongs to

       data: a BYTEARRAY containing  the compressed image data (that is, the original JPEG, PNG or GIFfile data)




 

Text metadata

 

Text samples (‘text’ or ‘tx3g’) can contain a wide range ofmetadata boxes whosecontents are exposed toa running ActionScript program through the onTextData property.

 

 

styl box

 

A styl box carries text style specifications. This information is exposed toActionScript via the

style property.

 




























































styl box

 

Field

 

 

Type

 

 

Comment

Header

BOXHEADER

BoxHeader = ‘styl’ (0x7374796C)

Count

UI16

The number of entries in the Styles array

Styles

STYLERECORD[Count]

An array of STYLERECORD structures; each is exposed as an ActionScript object

 

An individual STYLERECORD  has the following layout:

STYLERECORD

 

 

Field

Type

Comment

StartChar

UI16

The first character to which this STYLERECORD applies; exposed to ActionScript via a DOUBLE property named startchar

EndChar

UI16

The last character to which this STYLERECORD applies; exposed to ActionScript via a DOUBLE property named endchar

FontID

UI16

The font ID to use for this style; exposed to ActionScript via a DOUBLE property named fontid

FaceStyleFlags

UI8

Exposed to ActionScript via a

DOUBLE property named

 

 

facestyleflags




 



























STYLERECORD

 

Field

 

 

Type

 

 

Comment

FontSize

UI8

The size to use for the font; exposed to

ActionScript via the property

 

 

fontsize

TextColor

UI32

The RGBA color for the text; exposed to ActionScript via the property

 

 

textcolor

 

hlit box

 

An hlit box specifies a range oftext to be highlighting. This information  is exposedto

ActionScript via the highlight property.

 






















hlit box

 

Field

 

 

Type

 

 

Comment

Header

BOXHEADER

BoxHeader = ‘hlit’ (0x686C6974)

StartChar

UI16

The first character to highlight; exposed to ActionScript via a DOUBLE property named startchar

EndChar

UI16

The final character to highlight; exposed to ActionScript via a DOUBLE property named endchar

 

hclr box

 

An hclr box specifies the highlight color for text. This information  is exposed to ActionScript via the highlightcolor property.

 

















hclr box

 

Field

 

 

Type

 

 

Comment

Header

BOXHEADER

BoxHeader = ‘hclr’ (0x68636C72)

HighlightColor

UI16[3]

A three-element array that holds values for red, green, and blue components in that order; exposed to ActionScript via a DOUBLE property named highlightcolor




 

krok  box

 

A krok box specifies karaoke metadata. This information isexposed to ActionScript via the

karaoke property. Times are expressed intimescale units in relation tothe track.

 























































krok box

 

Field

 

 

Type

 

 

Comment

Header

BOXHEADER

BoxHeader = ‘krok’ (0x6B726F6B)

StartTime

UI32

Exposed to ActionScript via a

DOUBLE property named starttime

Count

UI16

The number of entries in the

KaraokeRecords array

KaraokeRecords

KARAOKEREC[Count]

An array of KARAOKEREC structures; each is exposed to ActionScript as an object

 

An individual KARAOKEREC has the following structure:

KARAOKEREC

 

 

Field

Type

Comment

EndTime

UI32

Exposed to ActionScript via a

DOUBLE property named endtime

StartChar

UI16

Exposed to ActionScript via a

DOUBLE property named startchar

EndChar

UI16

Exposed to ActionScript via a

DOUBLE property named endchar

 

dlay  box

 

A dlay box specifies ascroll delay. This information is exposed to ActionScript via the

scrolldelay property, expressedin timescale units in relation to the track.

 






















dlay box

 

Field

 

 

Type

 

 

Comment

Header

BOXHEADER

BoxHeader = ‘dlay’ (0x646C6179)

ScrollDelay

UI32

Exposed to ActionScript via a

DOUBLE property named

 

 

scrolldelay




 

drpo box

 

A drpo box specifies drop shadow offset coordinatesfor text.

 
































drpo box

 

Field

 

 

Type

 

 

Comment

Header

BOXHEADER

BoxHeader = ‘drpo’ (0x6472706F)

DropShadowOffsetX

UI16

Exposed to ActionScript via a

DOUBLE property named

 

 

dropshadowoffsetx

DropShadowOffsetY

UI16

Exposed to ActionScript via a

DOUBLE property named

 

 

dropshadowoffsety

 

drpt box

 

A drpt box specifies drop shadow alpha value.

 

















drpt box

 

Field

 

 

Type

 

 

Comment

Header

BOXHEADER

BoxHeader = ‘drpt (0x64727074)

DropShadowAlpha

UI16

A 16-bit alpha value; exposed to ActionScript via a DOUBLE property named dropshadowalpha

 

href  box

 

An href box specifies ahypertext link with ALT text over a text range. This information is exposed to ActionScript via the hypertext property.

 






















href box

 

Field

 

 

Type

 

 

Comment

Header

BOXHEADER

BoxHeader = ‘href’ (0x68726566)

StartChar

UI16

The beginning character of the text range; exposed to ActionScript via a DOUBLE property named startchar

EndChar

UI16

The last character of the text range; exposed to ActionScript via a DOUBLE property named endchar




 



























href box

 

Field

 

 

Type

 

 

Comment

URLSize

UI8

The length of the URL  string

URL

UI8[URLSize]

The URL  string; exposed to ActionScript via a STRING property named url

ALTSize

UI8

The length of the ALT string

ALT

UI8[ALTSize]

The ALT string which is displayed when the user’s mouse hovers over the link; exposed to ActionScript via a STRING property named alt

 

tbox box

 

A tbox box defines the coordinates fora text box. This information  is exposedto ActionScript via the textbox property.

 
































tbox box

 

Field

 

 

Type

 

 

Comment

Header

BOXHEADER

BoxHeader = ‘tbox’ (0x74626F78)

Top

UI16

The top pixel coordinate; exposed to ActionScript via a DOUBLE property named top

Left

UI16

The left pixel coordinate; exposed to ActionScript via a DOUBLE property named left

Bottom

UI16

The bottom pixel coordinate; exposed to ActionScript via a DOUBLE property named bottom

Right

UI16

The right  pixel coordinate; exposed to ActionScript via a DOUBLE property named right




 

blnk  box

 

A blnk box specifies arangeof text to set blinking. This information is exposed to

ActionScript via the blink property.

 






















blnk box

 

Field

 

 

Type

 

 

Comment

Header

BOXHEADER

BoxHeader = blnk’ (0x626C6E6B)

StartChar

UI16

The first character in the blinking range; exposed to ActionScript via a DOUBLE property named startchar

EndChar

UI16

The ending character in the blinking range; exposed to ActionScript via a DOUBLE property named endchar

 

twrp box

 

A twrp box sets thewrap flag for text.

 






















twrp box

 

Field

 

 

Type

 

 

Comment

Header

BOXHEADER

BoxHeader = ‘twrp’ (0x74777270)

WrapFlag

UI8

A boolean that is nonzero if the text should wrap; exposed to ActionScript via a DOUBLE property named

 

 

wrapflag

 

XMP  Metadata

 

Beginning in version 10, Flash Player can load XMP data embedded in an F4V file. XMP is

Adobes Extensible Metadata Platform. For more information, see www.adobe.com/go/xmp.




 

uuid  box

 

A uuid box exists at the top level ofan F4V file and is the methodby which the file can communicate XMP metadata to a SWF movie via ActionScript.

 






















uuid

 

Field

 

 

Type

 

 

Comment

Header

BOXHEADER

BoxHeader = ‘uuid’ (0x75756964)

UUID

UI8[16]

A 16byte (128-bit) universally unique identifier (UUID). The UUID that must appear here consists of these hexadecimal bytes: BE  7A CF CB  97

A9  42 A8 9C 71 99 94 91 E3 AF AC.

XMPMetadata

UI8[]

XMP metadata, formatted according to the XMP metadata standard; exposed to ActionScript via a STRING property named data

 

Note that the maximum  allowed size ofan XMP metadata boxis 64 megabytes.

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/25496.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信