当前位置:文档之家› mp4文件格式

mp4文件格式

mp4文件格式
mp4文件格式

MP4文件格式

综述

关键概念

MP4文件格式中,所有的内容存在一个称为movie的容器中。一个movie可以由多个track s组成。每个track就是一个随时间变化的媒体序列,例如,视频帧序列。track里的每个时间单位是一个sample,它可以是一帧视频,或者音频。sample按照时间顺序排列。注意,一帧音频可以分解成多个音频sample,所以音频一般用sample作为单位,而不用帧。MP4文件格式的定义里面,用sample这个单词表示一个时间帧或者数据单元。每个track会有一个或者多个sample description s。track里面的每个sample通过引用关联到一个sample description。这个sample description s定义了怎样解码这个sample,例如使用的压缩算法。

与其他的多媒体文件格式不同的是,MP4文件格式经常使用几个不同的概念,理解其不同是理解这个文件格式的关键。

这个文件的物理格式没有限定媒体本身的格式。例如,许多文件格式将媒体数据分成帧,头部或者其他数据紧紧跟随每一帧视频,!!!TODO(例如MPEG2)。而MP4文件格式不是如此。

文件的物理格式和媒体数据的排列都不受媒体的时间顺序的限制。视频帧不需要在文件按时间顺序排列。这就意味着如果文件中真的存在这样的一些帧,那么就有一些文件结构来描述媒体的排列和对应的时间信息。

MP4文件中所有的数据都封装在一些box中(以前叫atom)。所有的metadata(媒体描述元数据),包括定义媒体的排列和时间信息的数据都包含在这样的一些结构box中。MP4文件格式定义了这些这些box的格式。Metadata对媒体数据(例如,视频帧)引用说明。媒体数据可以包含在同一个的一个或多个box里,也可以在其他文件中,metadata允许使用URLs来引用其他的文件,而媒体数据在这些引用文件中的排列关系全部在第一个主文件中的metadata描述。其他的文件不一定是MP4文件格式,例如,可能就没有一个box。

有很多种类的track,其中有三个最重要,video track包含了视频sample;audio track 包含了audio sample;hint track稍有不同,它描述了一个流媒体服务器如何把文件中的媒体数据组成符合流媒体协议的数据包。如果文件只是本地播放,可以忽略hint track,他们只与流媒体有关系。

媒体文件的物理结构

Box定义了如何在sample table中找到媒体数据的排列。这包括data reference(数据引用), the sample size table, the sample to chunk table, and the chunk offset table. 这些表就可以找到track中每个sample在文件中的位置和大小。

data reference允许在第二个媒体文件中找到媒体的位置。这样,一部电影就可以由一个媒体数据库中的多个不同文件组成,而且不用把它们全部拷贝到另一个新文件中。例如,对视频编辑就很有帮助。

为了节约空间,这些表都很紧凑。另外,interleave不是sample by sample,而是把单个track的几个samples组合到一起,然后另外几个sample又进行新的组合,等等。一个track的连续几个sample组成的单元就被称为chunk。每个chunk在文件中有一个偏移量,这个偏移量是从文件开头算起的,在这个chunk内,sample是连续存储的。

这样,如果一个chunk包含两个sample,第二个sample的位置就是chunk的偏移量加上第一个sample的大小。chunk offset table说明了每个chunk的偏移量,sample to chunk table说明了sample序号和chunk序号的映射关系。

注意chunk之间可能会有死区,没有任何媒体数据引用到这部分区域,但是chunk内部不会有这样的死区。这样,如果在节目编辑的时候,不需要一些媒体数据,就可以简单的留在那里,而不用引用,这样就不用删除它们了。类似的,如果媒体存放在第二个文件中,但是格式不同于MP4文件格式,这个陌生文件的头部或者其他文件格式都可以简单忽略掉。

Temporal structure of the media

文件中的时间可以理解为一些结构。电影以及每个track都有一个timescale。它定义了一个时间轴来说明每秒钟有多少个ticks。合理的选择这个数目,就可以实现准确的计时。一般来说,对于audio track,就是audio的sampling rate。对于video track,情况稍微复杂,需要合理选择。例如,如果一个media TimeScale是30000,media sample durations是1001,就准确的定义了NTSC video的时间格式(虽然不准确,但一般就是29.97),and provide 19.9 hours of time in 32 bits.

Track的时间结构受一个edit list影响,有两个用途:全部电影中的一个track的一部分时间片断变化(有可能是重用);空白时间的插入,也就是空的edits。特别注意的是如果一个track 不是从节目开头部分开始,edit list的第一个edit就一定是空的edit。

每个track的全部duration定义在文件头部,这就是对track的总结,每个sample有一个规定的duration。一个sample的准确描述时间,也就是他的时间戳(time-stamp)就是以前的sample的duration之和。

Interleave

文件的时间和物理结构可以是对齐的,这表明媒体数据在容器中的物理顺序就是时间顺序。另外,如果多个track的媒体数据包含在同一个文件中,这个媒体数据可以是interleaved。一般来说,为了方便读取一个track的媒体数据,同时保证每个表紧凑,以一个合适的时间间隔(例如1秒)做一次interleave,而不是sample by sample。这样就可以减少chunk的数据,减小chunk offset table的大小。

Composition

如果多个audio track包含在同一个文件中,他们有可能被混合在一起进行播放,并且由一个总track volume和左/右balance控制。

类似的,video track也可以根据各自的层次序列号(从后向前)和合成模式进行混合。另外,每个track可以用一个matrix进行变换,也可以全部电影用一个matrix进行变换。这样既可以进行简单操作(例如放大图像,校正90o旋转),也可以做更复杂的操作(例如shearing, arbitrary rotation)。这个混合方法只是非常简单,是一个缺省的方法,MPEG4的另一份文档会定义更强有力的方法(例如MPEG-4 BIFS)。

mp4文件例子

Darwin Streaming Server里面有一些很好的工具,可以帮助分析mp4文件格式。

但是如果可以自己逐字节的parse文件,可以更好的了解mp4文件格式。这里我就逐字节的分析文件结构。文件例子是DSS里面包含的sample_100kbit.mp4

Movie Atom - MOOV

Movie atom定义了一部电影的数据信息。它的类型是'moov',是一个容器atom,至少必须包含三种atom中的一种—movie header atom('mvhd'), compressed movie atom('cmov')和reference movie atom ('rmra')。没有压缩的 movie header atom必须至少包含movie header atom 和reference movie atom 中的一种。也可以包含其他的atom,例如一个clipping atom ('clip'),一个或几个track atoms ('trak'),一个color table atom ('ctab'),和一个user data atom ('udta')。其中movie header atom定义了整部电影的time scale,duration信息以及display characteristics。track atom定义了电影中一个track的信息。Track就是电影中可以独立操作的媒体单位,例如一个声道就是一个track。

Compressed movie atoms 和reference movie atoms 不太使用,不在本文讨论范围内。本文主要讨论uncompressed movie atoms。

以下是实际的sample_100kbit.mp4的部分字节,可以看到结果是

主要包含四个子atom,movie header atom(mvhd), 一个audio track atom(trak),一个video track atom(trak)。

Movie Header Atoms - MVHD

Movie header atom定义了整个movie的特性,例如time scale和duration,它的atom类型是'mvhd'。

Track Atoms - TRAK

一个Track atom定义了movie中的一个track。一部movie可以包含一个或多个tracks,它们之间相互独立,各自有各自的时间和空间信息。每个track atom 都有与之关联的media atom。Track主要用于以下目的:

?包含媒体数据引用和描述(media tracks)

?包含modifier tracks (tweens等)

?对于流媒体协议的打包信息(hint tracks)。Hint tracks可以引用或者复制对应的媒体sample data。

Hint tracks和modifier tracks必须保证完整性,同时和至少一个media track一起存在。换句话说,即使hint tracks复制了对应的媒体sample data,media tracks 也不能从一部hinted movie中删除。

Track atoms 的atom类型是'trak'. Track atom要求必须有一个track header atom ('tkhd') 和一个media ato m ('mdia')。其他的track clipping atom ('clip'),track matte atom ('matt'),edit atom ('edts'),track reference atom ('tref'),track load settings atom ('load'),a track input map atom ('imap')以及user data atom ('udta')都是可选的。

Track atoms是一个容器atom,本身没有特别的字段,需要子atom来进一步说明有效的内容。

Video track的值

每个trak都包含了一个track header atom

Track Header Atoms - TKHD

每个trak都包含了一个track header atom. The track header atom 定义了一个track的特性,例如时间,空间和音量信息,它的类型是('tkhd').

保留4这里为0

Duration4The duration of this track (in the movie’s time coordinate system).

Note that this property is derived from the track’s edits. The value of this

field is equal to the sum of the durations of all of the track’s edits. If there is

no edit list, then the duration is the sum of the sample durations, converted

into the movie timescale.

保留8这里为0

Layer2The track’s spatial priority in its movie. The QuickTime Movie Toolbox uses

this value to determine how tracks overlay one another. Tracks with lower

layer values are displayed in front of tracks with higher layer values.

Alternate group 2 A collection of movie tracks that contain alternate data for one

another. QuickTime chooses one track from the group to be used when the

movie is played.

The choice may be based on such considerations as playback quality,

language, or the capabilities of the computer.

音量2播放此track的音量。1.0为正常音量

保留2这里为0

矩阵结构36该矩阵定义了此track中两个坐标空间的映射关系宽度4如果该track是video track,此值为图像的宽度

高度4如果该track是video track,此值为图像的高度

Video track的值

Edit Atoms - EDTS

Edit atoms 定义了创建movie中一个track的一部分媒体。所有的edit都在一个表里面,包括每一部分的时间偏移量和长度。Edit atoms 的类型是'edts'。如果没有该表,则此track会被立即播放。一个空的edit用来偏移track的起始时间。

如果没有edit atom 或edit list atom,则此track使用全部媒体。

Edit atoms是一个容器atom,本身没有特别的字段,需要子atom来进一步说明有效的内容。

Video track的值

Edit List Atoms - ELST

1.Edit list atom 用来映射movie的时间到此track media的时间。所有信息在一个edit list 表

中,见下图。Edit list atoms 的类型是'elst'.

Video track的值

Track Reference Atoms - TREF

Track reference atoms define relationships between tracks. Track reference atoms allow one track to specify how it is related to other tracks. For example, if a movie has three video tracks and three sound tracks, track references allow you to identify the related sound and video tracks. Track reference atoms have an atom type value of 'tref'.

Track references are uni-directional and point from the recipient track to the source track. For example, a video track may reference a time code track to indicate where its time code is stored, but the time code track would not reference the video track. The time code track is the source of time information for the video track.

A single track may reference multiple tracks. For example, a video track could reference a sound track to indicate that the two are synchronized and a time code track to indicate where its time code is stored.

A single track may also be referenced by multiple tracks. For example, both a sound and video track could reference the same time code track if they share the same timing information.

If this atom is not present, the track is not referencing any other track in any way. Note that the array of track reference type atoms is sized to fill the track reference atom. Track references with a reference index of 0 are permitted. This indicates no reference.

Each track reference atom defines relationships with tracks of a specific type. The reference type implies a track type. Following table shows the track reference types and their descriptions.

Table: Track reference types

Reference

type Description

tmcd Time code. Usually references a time code track.

chap Chapter or scene list. Usually references a text track.

sync Synchronization. Usually between a video and sound track. Indicates that the two tracks are synchronized. The reference can be from either track to the other, or there may be two references.

scpt Transcript. Usually references a text track.

ssrc Nonprimary source. Indicates that the referenced track should send its data to this track, rather than presenting it. The referencing track will u se the data to modify how it presents its data. See “Track Input Map Atoms” (page 51) for more information.

hint The referenced tracks contain the original media for this hint track.

Each track reference type atom contains the following data elements.

Size

A 32-bit integer that specifies the number of bytes in this track reference type atom.

Type

A 32-bit integer that identifies the atom type; this field must be set to one of the values shown

in above table.

Track IDs

A list of track ID values (32-bit integers) specifying the related tracks. Note that this is one case

where track ID values can be set to 0. Unused entries in the atom may have a track ID value

of 0. Setting the track ID to 0 may be more convenient than deleting the reference.

You can determine the number of track references stored in a track reference type atom by subtracting its header size from its overall size and then dividing by the size, in bytes, of a track ID.

Media Atoms - MDIA

Media atoms定义了track的媒体类型和sample数据,例如音频或视频,描述sample数据的media handler component,media timescale and track duration以及media-and-track-specific 信息,例如音量和图形模式。它也可以包含一个引用,指明媒体数据存储在另一个文件中。也可以包含一个sample table atoms,指明sample description, duration, and byte offset from the data reference for each media sample.

Media atom 的类型是'mdia'。它是一个容器atom,必须包含一个media header atom ('mdhd'),一个handler reference ('hdlr'),一个媒体信息引用('minf')和用户数据atom('udta').

Video track的值

Media Header Atoms - MDHD

Media header atom 定义了媒体的特性,例如time scale和duration。它的类型是'mdhd'.

Audio track的值

Video track的值

Handler Reference Atoms - HDLR

Handler reference atom 定义了描述此媒体数据的media handler component,类型是'hdlr'。在过去,handler reference atom也可以用来数据引用,但是现在,已经不允许这样使用了。一个media atom内的handler atom解释了媒体流的播放过程。例如,一个视频handler处理一个video track。

Video track的值

Media Information Atoms - MINF

Media information atoms的类型是'minf',存储了解释该track的媒体数据的handler-specific的信息。media handler用这些信息将媒体时间映射到媒体数据,并进行处理。它是一个容器atom,包含其他的子atom。

这些信息是与媒体定义的数据类型特别对应的,而且media information atoms 的格式和内容也是与解释此媒体数据流的media handler 密切相关的。其他的media handler不知道如何解释这些

Video track的值

高清视频封装格式解析

高清视频封装格式解析 为了使得各位网友更加了解高清方面的知识,享受高清品质更完美的生活,ZOL推出了高清大讲堂,希望能够为网友提供一些关于生活中接触高清的相关时候能够游刃有余一些,在上一期为大家介绍了视频编码的问题,这次为大家介绍一下跟视频编码紧紧联系,跟我们也是接触最多的封装格式的问题。点击上一期《ZOL高清大讲堂:视频编码格式全面解析》 视频编码说到底是一种压缩视频的算法,而视频封装格式就是我们见到的成型的文件类型了,所以说,视频封装格式肯定是我们“熟悉的陌生人”。我们接触的视频,包括我们从网上下载了在影音软件或播放机中观看的视频以及我们手机、MP4等多种播放器材中的文件,在人们讨论中基本上谈到的某某手机能播放什么格式类型的影片,口中的这个格式就是指“封装格式”,就是已经成型的文件类型。我们天天会接触到他,但是并不一定了解他。今天希望大家看完这期的高清大讲堂能有所收获。 其实了解视频的封装格式对我们以后了解视频的播放是很有必要的。在上一期我们了解了视频的编码的方式有哪些,这是我们了解封装格式的一个前提,而本期的封装格式我们了解了以后会对于以后生活中选择播放器材以及甄别机器的播放性能都有一定的帮助。而且对于越来越娱乐化,无论是手机还是平板电脑亦或是电脑上面多媒体在生活中都成为主流的时候。我们多了解一些这方面的内容更是非常有必要。而在家庭娱乐中,如果你想让自己的家庭影院成为强大的“无所不播”的设备的话,更要打起精神看过来了。 视频封装格式如何理解? 笔者曾经随机的询问过各行各业各个年龄阶层文化水平的人,发现对于视频接触无论是多还是少的人很少有人能清楚的分清楚视频编码还有封装格式。主要原因笔者认为一方面是由

MP4文件格式解析-----个人总结讲解

目录 1.引言 (1) 2.MP4中一些概念详解 (1) 3.MP4文件结构分析 (1) 3.1box结构 (1) 3.2MP4总体结构 (2) 3.3Movie box(moov) (3) 3.3.1Movie Header box(mvhd) (3) 3.3.2Trak box (4) 3.4Media box (6) 3.4.1Media header box(mdhd) (6) 3.4.2Hdlr box (7) 3.4.3Minf box (7) 3.5Sample Table Box(stbl) (8) 3.5.1Sample Description Box(stsd) (8) 3.5.2Time To Sample Box(stts) (8) 3.5.3Sample Size Box(stsz) (8) 3.5.4Sample To Chunk Box(stsc) (8) 3.5.5Sync Sample Box(stss) (9) 3.5.6Chunk Offset Box(stco) (9)

MP4文件格式解析总结 1.引言 MP4是一种常见的多媒体容器格式,对应MPEG-4标准,这种容器格式非常全面开放,被认为可以在其中嵌入任何形式的数据,各种编码的视频、音频等都可以。在MP4文件中,媒体的描述信息与媒体数据是分开的,并且媒体数据的组织也很自由,不一定要按照时间顺序排列。同时,MP4也支持流媒体,MP4目前被广泛用于封装h.264视频和AAC音频,是高清视频的代表。MP4格式的官方文件后缀名是“.mp4”,还有其他的以mp4为基础进行的扩展或者是缩水版本的格式。 2.MP4中一些概念详解 MP4文件格式中,所有的内容存在一个称为movie的容器中。一个movie可以由多个tracks组成。每个track就是一个随时间变化的媒体序列,track里的每个时间单位是一个sample,它可以是一帧视频,或者一段连续的压缩音频。sample按照时间顺序排列。其中一帧音频可以分解成多个音频sample,所以音频一般用sample作为单位,而不用帧。MP4文件格式的定义里面,用sample表示一个时间帧或者数据单元。 几个连续的sample就构成了一个chunk。 3.MP4文件结构分析 3.1box结构

如何转换高清MP4视频格式

如何转换高清MP4视频格式 小编毕业之际,就有一个小小的想法,那就是和身边的小伙伴们拍一场微电影作为纪念,小编是一个敢想敢做的人,买了台相机,剪辑完在校园里拍摄的视频片段,最终微电影剪辑才告一段落。不过剪辑完视频后才发现文件太大啦,无法在手机上观看。那么电脑视频转换器哪个好用? 使用工具:视频转换器https://www.doczj.com/doc/628534259.html, 方法步骤: 下载并安装完这款迅捷视频转换器之后,接下来小编已经开始迫不及待的想为大家介绍这款软件功能啦!安装的详细过程这里直接跳过。呐,这款软件的界面是长酱紫。安装好这款软件之后,感觉有一股洪荒之力在召唤着我。

看完这简单的操作界面后,那么下来了就开始我们的视频格式转换工作了。首先我们看到左上角的添加视频这个按钮,我们鼠标单击它,然后会自动弹出一个文件夹,下图有显示。 开始找到你要转换格式的视频素材的位置,最后再点击打开按钮,这里还支持多个视频同时转换哦,如果想要添加多个视频片段,你可以按住Ctrl 不放再左键点击鼠标进行多个选择,选择完之后再点击打开按钮导入需要转换的视频或者可以将视频拖拽添加。

我这里随便选择找了3个素材给大家作为例子,点击打开按钮之后,你可以看到刚刚选择的3个视频已经跑到软件界面中间啦,还能看到一些参数,那我们先看一下输出大小和输出格式吧,那我应该怎样把他们转换成MP4格式呢? 下图中的操作步骤一目了然,不过我还是继续来跟大家介绍一下吧,

今天我告诉自己我要勤奋起来了,我们先找到输出格式,也就是最下面的那个小红圈圈这里,点击一下会出现一个选择栏(这里有视频,音频,设备等等)选择完你要转换的终端后再选择你要转换的格式就可以了。 当你选择完转换的格式后,细心的大佬们就会发现参数那里的输出大小和输出格式已经被改变了,输出格式由原来的格式转变成我想要的MP4格式,现在距离成功又接近一步了,乐呵呵。我们对转换后保存路径进行用户自定义设置,你可以存放在桌面,D盘、E盘等等,然后点击右下角按钮开始转换。

MP4、FLV格式视频文件转换

MP4、FLV格式视频文件转换 一、转换成.mp4文件 同视频码率情况下,MP4文件清晰度比较高,压缩质量很好。为了使视频在网站顺利播放,转换时需注意: 1、视频编码请选择H264/AVC或者x264编码 2、音频编码建议选择AAC编码 3、视频码率(比特率)建议在800~1500KBS之间,不宜超过2000KBS 4、音频采样率为44100HZ(赫兹),码率在64~128KBS,不宜超过256KBS 5、帧频(每秒帧数)为25帧/秒。目前部分视频转码后在网站播放时会出现播放等待情况,这是由于MP4文件在网络播放时需要寻找head文件引起的,这时候可以在转码时将帧频设置为偶数就可以了,一般为24。 下图为使用格式工厂软件进行MP4格式转码时的设置截图,请参考设置:

二、转换为.flv文件 .flv文件体积较小,压缩比大,会损失画质,但是却可以在网站流畅播放。转换时需要注意: 1、.flv文件在网络播放为视频流播放,其编码格式请使用转码软件默认的编码。一般为:flv1或者on2vp6 2、音频设置也使用默认 3、转换flv文件尽量不要使用h264编码,否则会出现无法播放或者只能播放一部分的情况 4、在使用格式工厂进行.flv转换时需要注意“屏幕大小”选项,请根据原视频比例尺寸进行选择。如果不知道原视频屏幕大小,请选择“缺省”。 下图为使用格式工厂软件进行.flv文件转码时的设置截图,请参考设置:

三、注意事项 1、请根据原视频大小和网站上传限制调整码率大小。 2、为防止转换后视频比例变形,请转码时选择合适屏幕大小。 3、如果发现转码后的视频开头或者结尾没有声音或者声音突然变小,请尝试选择格式工厂软件里面的“二次编码”选项 4、不要过多次数的转码视频,损失画面质量。 5、格式工厂软件建议使用3.0版本,最新版本许多编码不稳定。

mp4文件结构解析

MPEG-4文件结构解析 目前MP4的概念被炒得很火,也很乱。最开始MP4指的是音频(MP3的升级版),即MPEG-2 AAC标准。随后MP4概念被转移到视频上,对应的是MPEG-4标准。而现在我们流行的叫法,多半是指能播放MPEG-4标准编码格式视频的播放器。但是这篇文章介绍的内容跟上面这些都无关,我们要讨论的是MP4文件封装格式,对应的标准为ISO/IEC 14496-12,即信息技术视听对象编码的第12部分:ISO基本媒体文件格式(Information technology Coding of audio-visual objects Part 12: ISO base media file format)。ISO/IEC组织指定的标准一般用数字表示,ISO/IEC 14496即MPEG-4标准。 MP4视频文件封装格式是基于QuickTime容器格式定义的,因此参考QuickTime的格式定义对理解MP4文件格式很有帮助。MP4文件格式是一个十分开放的容器,几乎可以用来描述所有的媒体结构,MP4文件中的媒体描述与媒体数据是分开的,并且媒体数据的组织也很自由,不一定要按照时间顺序排列,甚至媒体数据可以直接引用其他文件。同时,MP4也支持流媒体。MP4目前被广泛用于封装h.264视频和AAC音频,是高清视频的代表。 现在我们就来看看MP4文件格式到底是什么样的。 1、概述 MP4文件中的所有数据都装在box(QuickTime中为atom)中,也就是说MP4文件由若干个box组成,每个box有类型和长度,可以将box理解为一个数据对象块。box中可以包含另一个box,这种box称为container box。一个MP4文件首先会有且只有一个“ftyp”类型的box,作为MP4格式的标志并包含关于文件的一些信息;之后会有且只有一个“moov”类型的box(Movie Box),它是一种container box,子box包含了媒体的metadata信息;MP4文件的媒体数据包含在“mdat”类型的box(Midia Data Box)中,该类型的box也是container box,可以有多个,也可以没有(当媒体数据全部引用其他文件时),媒体数据的结构由metadata进行描述。 下面是一些概念: track表示一些sample的集合,对于媒体数据来说,track表示一个视频或音频序列。 hint track这个特殊的track并不包含媒体数据,而是包含了一些将其他数据track打包成流媒体的指示信息。 sample对于非hint track来说,video sample即为一帧视频,或一组连续视频帧,audio sample即为一段连续的压缩音频,它们统称sample。对于hint track,sample定义一个或多个流媒体包的格式。

常见视频文件格式

常见的视频文件格式 3GP .flash,.mp4,.mid, .wma, .rmvb,.rm, AVI, 清格式小,也是最清晰的一种,rmvb,wma中等清晰, rm以上是比较常见的, AVI一般比较大, 都是格式比较小的适合网络播放与移动媒体设备播放晰度稍微差些. .flash,.mp4,.mid, 3GP. 用的 视频文件格式有不同的分类,如: asx :wmv软微视、频asf、rmvb 、:Real rm Player mpe mpg mpeg视、MPEG、频:3gp 视频手:机mov Apple视频:m4v Sony视:频、mp4vob 、flv、mkv、dat、avi:频视见常他其 AVI ,就是把视开发的。其含义是是比较早的AVI:AVIMicrosoftAudio Video Interactive余年了,虽然发布过改AVI频和音频编码混合在一起储存。也是最长寿的格式,已存在10格式上限制比较多,只能有一个视频轨道和AVI年发布),但已显老态。于版(V2.01996一个音频轨道(现在有非标准插件可加入最多两个音频轨道),还可以有一些附加轨道,avi :名档副。能功制控何。字如文等AVI任供提不式格WMV )是微软公司开发的一组数位视频编解码格式的通称,Video(WMV Windows Media版权ASF封装格式FormatSystems Advanced ()是其。封装的WMV档具有“数位ASFwmvhd 。功护保”能名:wmv/asf、档副MPEG )认Experts Picture :MPEG(Moving MPEG格式Group)国际标准组织,是一个(IS0,受到大部份机器的支持。其储存方式多样,可以适应不同的应用环可的媒体封装形式的控1(mux)档的档容器格式在MPEG-4境。Layer 等中规定。15(avc)14(mpg)、、MPEG的一个、字幕(音轨制功能丰富,可以有多个视频(即角度)、位图MPEG字幕)等等。、:dat(3G还广泛的用于准3GP简化版本手机上。副档名、DVD)用于、vobmpg/mpeg 等)机手于用(3gp/3g2. MPEG1 MPEG1:是一种MPEG(运动图像专家组)多媒体格式,用于压缩和储存音频和视频。用于计算机和游戏,MPEG1 的分辨率为352 x 240 象素,帧速率为每秒25 帧(PAL)。MPEG1 可以提供和租赁录像带一样的视频质量。 MPEG2 MPEG2:是一种MPEG(运动图像专家组)多媒体格式,用于压缩和储存音频及视频。供

常用视频文件格式大全

常用视频文件格式大全 3GP 3GP是一种3G流媒体的视频编码格式,主要是为了配合3G网络的高传输速度而开发的,也是目前手机中最为常见的一种视频格式。目前,市面上一些安装有Realplay播放器的智能手机可直接播放后缀为rm的文件,这样一来,在智能手机中欣赏一些rm格式的短片自然不是什么难事。然而,大部分手机并不支持rm格式的短片,若要在这些手机上实现短片播放则必须采用一种名为3GP的视频格式。目前有许多具备摄像功能的手机,拍出来的短片文件其实都是以3GP为后缀的. ASF ASF 是Advanced Streaming format 的缩写,由字面(高级流格式)意思就应该看出这个格式的用处了吧。说穿了ASF 就是MICROSOFT 为了和现在的Real player 竞争而发展出来的一种可以直接在网上观看视频节目的文件压缩格式!由于它使用了MPEG4 的压缩算法,所以压缩率和图像的质量都很不错。因为ASF 是以一个可以在网上即时观赏的视频“流”格式存在的,所以它的图象质量比VCD 差一点点并不出奇,但比同是视频“流”格式的RAM 格式要好。不过如果你不考虑在网上传播,选最好的质量来压缩文件的话,其生成的视频文件比VCD (MPEG1)好是一点也不奇怪的,但这样的话,就失去了ASF 本来的发展初衷,还不如干脆用N AVI 或者DIVX 。但微软的“子第”就是有它特有的优势,最明显的是各类软件对它的支持方面就无人能敌。 AVI AVI——Audio Video Interleave,即音频视频交叉存取格式。1992年初Microsoft公司推出了AVI技术及其应用软件VFW(Video for Windows)。在AVI文件中,运动图像和伴音数据是以交织的方式存储,并独立于硬件设备。这种按交替方式组织音频和视像数据的方式可使得读取视频数据流时能更有效地从存储媒介得到连续的信息。构成一个AVI文件的主要参数包括视像参数、伴音参数和压缩参数等。AVI文件用的是AVI RIFF形式,AVI RIFF 形式由字符串“AVI”标识。所有的AVI文件都包括两个必须的LIST块。这些块定义了流和数据流的格式。AVI文件可能还包括一个索引块。只要遵循这个标准,任何视频编码方案都可以使用在AVI文件中。这意味着AVI有着非常好的扩充性。这个规范由于是由微软制定,因此微软全系列的软件包括编程工具VB、VC都提供了最直接的支持,因此更加奠定了AVI在PC上的视频霸主地位。由于AVI本身的开放性,获得了众多编码技术研发商的支持,不同的编码使得AVI不断被完善,现在几乎所有运行在PC上的通用视频编辑系统,都是以支持AVI为主的。AVI的出现宣告了PC上哑片时代的结束,不断完善的AVI格式代表了多媒体在PC上的兴起。说到AVI就不能不提起英特尔公司的Indeo video系列编码,Indeo 编码技术是一款用于PC视频的高性能的、纯软件的视频压缩/解压解决方案。Indeo音频软件能提供高质量的压缩音频,可用于互联网、企业内部网和多媒体应用方案等。它既能进行音乐压缩也能进行声音压缩,压缩比可达8:1而没有明显的质量损失。Indeo技术能帮助您构建内容更丰富的多媒体网站。目前被广泛用于动态效果演示、游戏过场动画、非线性素材保存等用途,是目前使用最广泛的一种AVI编码技术。现在Indeo编码技术及其相关软件

视频文件格式和视频编码方式区别

目前网上的各种视频格式可以说是泛滥成灾,加上各个PMP(Portable Media Player,便携式媒体播放器)生产厂家的对自己产品在功能方面的炒作,使得很多人对视频格式的名称都是一头的雾水。 经常有些童鞋问我类似下面的问题。 A问我说:“我的MP4分明写着能播放AVI吗?为什么这一个AVI文件就播放不了?” B问:“我的MP4支持Mpeg-4啊,为什么Mp4文件不能播放呢?” 好的,下面我从最基本的概念给大家解释一下,顺便回答这两个问题 首先大家要清楚两个概念,视频文件格式和视频编码方式。 视频文件格式一般情况下从视频文件的后缀名就能看出来,比如AVI,Mp4,3gp,mov,rmvb等等。这些格式又叫做容器格式(container format),顾名思义就是用来装东西的,你可以把它想象成为一个便当盒,或者野餐篮(兄弟,你没吃早饭吧)。 通常我们从网上下载的电影都是有声音的(废话,难道你只看默片!众人扔香蕉皮),所以容器格式中一般至少包含有两个数据流(stream),一个视频流,一个音频流,就好比是一个便当盒里装着的配菜和米饭。 视频编码方式则是指容器格式中视频流数据的压缩编码方式,例如Mpeg-4,,,等等。而视频数据采用了何种编码方式是无法单单从文件格式的后缀上看出来的。就是说你无法从一个盖着盖子的便当盒外面看出里面装了什么配菜。 如果你想播放一个视频文件,第一步你的播放器(不论是软件的还是硬件的)要能够解析相应的容器格式,这一步也叫做解复用(demux),第二步你的播放器要能够解码其中所包含视频流和音频流。这样影片才能播放出来。 打个不太恰当的比方,播放器好比你雇用的一个试菜员,由他来品尝便当(视频文件),然后告诉你便当里装了什么东西。(没天理阿!我想自己吃,好的当然可以,0x00 00 01 B6 05 FF 36 1A 50 …… ……,俄~) 所以试菜员首先要懂得如何打开便当盒,还要知道吃的出来便当盒里装了什么配菜,这样你才能获得你想要的信息。 回过头来看前面的两个问题,用以上的比喻翻译一下。 问题A,我的试菜员能打开AVI这种便当的,为什么我不能知道里面装了什么? 回答很简单,虽然他能够打开便当,但是吃不出里面的东西是什么。理论上没有一个播放器能够播放所有的AVI格式的电影,因为你不知道我会往里面放什么配菜。 问题B,我的试菜员吃过Mpeg-4这种牛排阿,为什么不能打开Mp4这种便当盒呢? 这个问题通过翻译之后看起来已经不是问题了,Mpeg-4是视频编码方式,而Mp4是容器格式,两者本来就不是一个范畴里的东西。 好了下面简单介绍一下流行的视频格式。 AVI是音频视频交错(Audio Video Interleaved)的英文缩写,它是Microsoft公司开发的一种数字音频与视频文件格式,允许视频和音频交错在一起同步播放。 AVI文件的格式是公开并且免费的,大量的视频爱好者在使用这种文件格式。很多PMP 唯一能支持的格式就是AVI格式,一般的PMP都带有可以转换其他格式视频成为AVI格式的软件。 AVI文件采用的是RIFF(Resource Interchange File Format,资源互换文件格式)文件结构,RIFF是Microsoft公司定义的一种用于管理windows环境中多媒体数据的文件格

常见的视频文件格式

常见的视频文件格式 AVI, 、wma, 、rmvb,、rm, 、flash,、mp4,、mid, 3GP 以上就是比较常见的, AVI一般比较大, 也就是最清晰的一种,rmvb,wma中等清晰, rm格式小,清晰度稍微差些、、flash,、mp4,、mid, 3GP都就是格式比较小的适合网络播放与移动媒体设备播放用的、 视频文件格式有不同的分类,如: 微软视频:wmv、asf、asx Real Player :rm、rmvb MPEG视频:mpg、mpeg、mpe 手机视频:3gp Apple视频:mov Sony视频:mp4、m4v 其她常见视频:avi、dat、mkv、flv、vob AVI AVI:比较早的AVI就是Microsoft开发的。其含义就是Audio Video Interactive,就就是把视频与音频编码混合在一起储存。AVI也就是最长寿的格式,已存在10余年了,虽然发布过改版(V2、0于1996年发布),但已显老态。AVI格式上限制比较多,只能有一个视频轨道与一个音频轨道(现在有非标准插件可加入最多两个音频轨道),还可以有一些附加轨道,如文字等。AVI格式不提供任何控制功能。副档名:avi WMV WMV(Windows Media Video)就是微软公司开发的一组数位视频编解码格式的通称,ASF(Advanced Systems Format)就是其封装格式。ASF封装的WMV档具有“数位版权保护”功能。副档名:wmv/asf、wmvhd MPEG MPEG格式:MPEG(Moving Picture Experts Group),就是一个国际标准组织(IS0)认可的媒体封装形式,受到大部份机器的支持。其储存方式多样,可以适应不同的应用环境。MPEG-4档的档容器格式在Layer 1(mux)、14(mpg)、15(avc)等中规定。MPEG的控制功能丰富,可以有多个视频(即角度)、音轨、字幕(位图字幕)等等。MPEG的一个简化版本3GP 还广泛的用于准3G手机上。副档名:dat(用于DVD)、vob、mpg/mpeg、3gp/3g2(用于手机)等

MP4文件结构刨析

Overview and Introduction Core Concepts MP4文件格式中,所有的内容存在一个称为movie的容器中。一个movie可以由多个track s 组成。每个track就是一个随时间变化的媒体序列,例如,视频帧序列。track里的每个时间单位是一个sample,它可以是一帧视频,或者音频。sample按照时间顺序排列。注意,一帧音频可以分解成多个音频sample,所以音频一般用sample作为单位,而不用帧。MP4文件格式的定义里面,用sample这个单词表示一个时间帧或者数据单元。每个track会有一个或者多个sample description s。track里面的每个sample通过引用关联到一个sample description。这个sample description s定义了怎样解码这个sample,例如使用的压缩算法。 与其他的多媒体文件格式不同的是,MP4文件格式经常使用几个不同的概念,理解其不同是理解这个文件格式的关键。 这个文件的物理格式没有限定媒体本身的格式。例如,许多文件格式将媒体数据分成帧,头部或者其他数据紧紧跟随每一帧视频,!!!TODO(例如MPEG2)。而MP4文件格式不是如此。文件的物理格式和媒体数据的排列都不受媒体的时间顺序的限制。视频帧不需要在文件按时间顺序排列。这就意味着如果文件中真的存在这样的一些帧,那么就有一些文件结构来描述媒体的排列和对应的时间信息。 MP4文件中所有的数据都封装在一些box中(以前叫atom)。所有的metadata(媒体描述元数据),包括定义媒体的排列和时间信息的数据都包含在这样的一些结构box中。MP4文件格式定义了这些box的格式。Metadata对媒体数据(例如,视频帧)引用说明。媒体数据可以包含在同一个的一个或多个box里,也可以在其他文件中,metadata允许使用URLs来引用其他的文件,而媒体数据在这些引用文件中的排列关系全部在第一个主文件中的metadata描述。其他的文件不一定是MP4文件格式,例如,可能就没有一个box。 有很多种类的track,其中有三个最重要,video track包含了视频sample;audio track包含了audio sample;hint track稍有不同,它描述了一个流媒体服务器如何把文件中的媒体数据组成符合流媒体协议的数据包。如果文件只是本地播放,可以忽略hint track,他们只与流媒体有关系。 Physical structure of the media Box定义了如何在sample table中找到媒体数据的排列。这包括data reference(数据引用), t he sample size table, the sample to chunk table, and the chunk offset table. 这些表就 可以找到track中每个sample在文件中的位置和大小。 data reference允许在第二个媒体文件中找到媒体的位置。这样,一部电影就可以由一个媒体数据库中的多个不同文件组成,而且不用把它们全部拷贝到另一个新文件中。例如,对视频编辑就很有帮助。 为了节约空间,这些表都很紧凑。另外,interleave不是sample by sample,而是把单个track 的几个samples组合到一起,然后另外几个sample又进行新的组合,等等。一个track的连续

常见的视频文件格式

常见的视频文件格式 AVI, .wma, .rmvb,.rm, .flash,.mp4,.mid, 3GP 以上是比较常见的, AVI一般比较大, 也是最清晰的一种,rmvb,wma中等清晰, rm格式小,清晰度稍微差些. .flash,.mp4,.mid, 3GP都是格式比较小的适合网络播放与移动媒体设备播放用的. 视频文件格式有不同的分类,如: 微软视频:wmv、asf、asx Real Player :rm、rmvb MPEG视频:mpg、mpeg、mpe 手机视频:3gp Apple视频:mov Sony视频:mp4、m4v 其他常见视频:avi、dat、mkv、flv、vob AVI AVI:比较早的AVI是Microsoft开发的。其含义是Audio Video Interactive,就是把视频和音频编码混合在一起储存。AVI也是最长寿的格式,已存在10余年了,虽然发布过改版(V2.0于1996年发布),但已显老态。AVI格式上限制比较多,只能有一个视频轨道和一个音频轨道(现在有非标准插件可加入最多两个音频轨道),还可以有一些附加轨道,如文字等。AVI格式不提供任何控制功能。副档名:avi WMV WMV(Windows Media Video)是微软公司开发的一组数位视频编解码格式的通称,ASF(Advanced Systems Format)是其封装格式。ASF封装的WMV档具有“数位版权保护”功能。副档名:wmv/asf、wmvhd MPEG MPEG格式:MPEG(Moving Picture Experts Group),是一个国际标准组织(IS0)认可的媒体封装形式,受到大部份机器的支持。其储存方式多样,可以适应不同的应用环境。MPEG-4档的档容器格式在Layer 1(mux)、14(mpg)、15(avc)等中规定。MPEG的控制功能丰富,可以有多个视频(即角度)、音轨、字幕(位图字幕)等等。MPEG的一个简化版本3GP还广泛的用于准3G手机上。副档名:dat(用于DVD)、vob、mpg/mpeg、3gp/3g2(用于手机)等

MP4视频格式怎么快速转换成WEBM视频

现在网络上都有很多查找视频资源的网站和工具,而且大部分网站和工具都是提供MKV视频格式和MP4视频格式的。网上还会出现一种一种视频格式,WEBM视频格式。这个WEBM格式画面清晰而且比特率也比较低。也就是说同样参数的视频文件,可能WEBM格式的视频会占用更小的内存。所以今天教大家如何把MP4视频格式快速转换成WEBM视频。 下面使用两种方法转换视频格式: 第一种:修改后缀名 1、简单的方法就是直接修改名称。但是这个方法并不是所以的格式都可以这么做,有些修改后会打不开。选择MP4视频然后右键重命名将MP4格式改成WEBM格式即可。

第二种:专业的视频转换器 1、在使用视频转换器之前还是需要先安装软件的。在迅捷视频官网中把迅捷视频转换器的安装文件下载到本地,然后需要设置安装的位置,然后就可以点击立即安装了。不然就会安装到C:\Program Files (x86)\videconverter路径中。 2、然后就是打开软件进行下一步的操作了。可以看到有很多的功能提供给我们使用和操作的。不过这里需要转换视频的格式,所以直接点击视频转换,然后进入其对应的转换页面中。至于其他的功能之后可以使用的。

3、然后就可以看到空白一片的操作界面,现在就需要把MP4视频添加到软件中了。点击添加文件按钮然后选择下载完成的MP4视频导入其中。或者使用添加文件夹的方法以及拖拽视频也能够导入视频文件。

4、然后就可以设置转换输出的文件格式了。软件之默认转换成MP4格式,而此次转换的源文件也是MP4格式,如果不做修改是不能转换格式的。所以在输出格式中选择WEBM—同原文件,这就把视频格式和分辨率都设置完成了。 5、如果觉得这些视频分辨率太少,无法满足自己的需求,那么,可以点击添加自定义设置,然后再进入自定义参数设置面板中设置更多更详细的输出文件参数。包含帧数、分辨率、比特率、取样频率和声道等众多参数。

dash mp4 数据格式

DASH MP4数据格式 1 一般MP4文件格式 1.1 MP4基本概念 MP4(MPEG-4 Part 14)是一种常见的多媒体容器格式,它是在“ISO/IEC 14496-14”标准文件中定义的,属于MPEG-4的一部分,是“ISO/IEC 14496-12(MPEG-4 Part 12 ISO base media file format)”标准中所定义的媒体格式的一种实现,后者定义了一种通用的媒体文件结构标准。 MP4是一种描述较为全面的容器格式,被认为可以在其中嵌入任何形式的数据,各种编码的视频、音频等都不在话下,不过常见的大部分的MP4文件存放A VC(H.264)或MPEG-4(Part 2)编码的视频和AAC编码的音频。MP4格式的官方文件后缀名是“.mp4”,还有其他的以mp4为基础进行的扩展或者是缩水版本的格式,包括:M4V, 3GP, F4V等。 1.2 Box基本概念 mp4是由一个个“box”组成的,大box中存放小box,一级嵌套一级来存放媒体信息,box的基本结构如图1。 图1 box的基本结构 Box字节序为网络字节序,也就是大端字节序(Big-Endian)。由header和data 组成,其中header统一指明box的大小和类型,data根据类型有不同的意义和格式。 标准的box开头的4个字节(32位)为box size,该大小包括box header和box data整个box的大小。如果box很大(例如存放具体视频数据的mdat box),超过了uint32的最大数值,size就被设置为1,表示这个box的大小为large size,真正的size值要在largesize字段上得到。如果size为0,表示该box为文件的最后一个box,文件结尾即为该box结尾。 size后面紧跟的32位为box type,一般是4个字符,如“ftyp”、“moov”等,这些box type都是已经预定义好的,分别表示固定的意义。 一个mp4文件有可能包含非常多的box,在很大程度上增加了解析的复杂性,网页https://www.doczj.com/doc/628534259.html,/atoms.html记录了当前注册过的box类型。大部分mp4文件

各种音视频编解码学习详解

各种音视频编解码学习详解 编解码学习笔记(一):基本概念 媒体业务是网络的主要业务之间。尤其移动互联网业务的兴起,在运营商和应用开发商中,媒体业务份量极重,其中媒体的编解码服务涉及需求分析、应用开发、释放license收费等等。最近因为项目的关系,需要理清媒体的codec,比较搞的是,在豆丁网上看运营商的规范标准,同一运营商同样的业务在不同文档中不同的要求,而且有些要求就我看来应当是历史的延续,也就是现在已经很少采用了。所以豆丁上看不出所以然,从wiki上查。中文的wiki信息量有限,很短,而wiki的英文内容内多,删减版也减肥得太过。我在网上还看到一个山寨的中文wiki,长得很像,红色的,叫―天下维客‖。wiki的中文还是很不错的,但是阅读后建议再阅读英文。 我对媒体codec做了一些整理和总结,资料来源于wiki,小部分来源于网络博客的收集。网友资料我们将给出来源。如果资料已经转手几趟就没办法,雁过留声,我们只能给出某个轨迹。 基本概念 编解码 编解码器(codec)指的是一个能够对一个信号或者一个数据流进行变换的设备或者程序。这里指的变换既包括将信号或者数据流进行编码(通常是为了传输、存储或者加密)或者提取得到一个编码流的操作,也包括为了观察或者处理从这个编码流中恢复适合观察或操作的形式的操作。编解码器经常用在视频会议和流媒体等应用中。 容器 很多多媒体数据流需要同时包含音频数据和视频数据,这时通常会加入一些用于音频和视频数据同步的元数据,例如字幕。这三种数据流可能会被不同的程序,进程或者硬件处理,但是当它们传输或者存储的时候,这三种数据通常是被封装在一起的。通常这种封装是通过视频文件格式来实现的,例如常见的*.mpg, *.avi, *.mov, *.mp4, *.rm, *.ogg or *.tta. 这些格式中有些只能使用某些编解码器,而更多可以以容器的方式使用各种编解码器。 FourCC全称Four-Character Codes,是由4个字符(4 bytes)组成,是一种独立标示视频数据流格式的四字节,在wav、avi档案之中会有一段FourCC来描述这个AVI档案,是利用何种codec来编码的。因此wav、avi大量存在等于―IDP3‖的FourCC。 视频是现在电脑中多媒体系统中的重要一环。为了适应储存视频的需要,人们设定了不同的视频文件格式来把视频和音频放在一个文件中,以方便同时回放。视频档实际上都是一个容器里面包裹着不同的轨道,使用的容器的格式关系到视频档的可扩展性。 参数介绍 采样率 采样率(也称为采样速度或者采样频率)定义了每秒从连续信号中提取并组成离散信号的采样个数,它用赫兹(Hz)来表示。采样频率的倒数叫作采样周期或采样时间,它是采样之间的时间间隔。注意不要将采样率与比特率(bit rate,亦称―位速率‖)相混淆。 采样定理表明采样频率必须大于被采样信号带宽的两倍,另外一种等同的说法是奈奎斯特频率必须大于被采样信号的带宽。如果信号的带宽是100Hz,那么为了避免混叠现象采样频率必须大于200Hz。换句话说就是采样频率必须至少是信号中最大频率分量频率的两倍,否则就不能从信号采样中恢复原始信号。 对于语音采样: ?8,000 Hz - 电话所用采样率, 对于人的说话已经足够 ?11,025 Hz ?22,050 Hz - 无线电广播所用采样率 ?32,000 Hz - miniDV 数码视频camcorder、DAT (LP mode)所用采样率 ?44,100 Hz - 音频CD, 也常用于MPEG-1 音频(VCD, SVCD, MP3)所用采样率

mp4文件格式

MP4文件格式

综述 关键概念 MP4文件格式中,所有的内容存在一个称为movie的容器中。一个movie可以由多个track s组成。每个track就是一个随时间变化的媒体序列,例如,视频帧序列。track里的每个时间单位是一个sample,它可以是一帧视频,或者音频。sample按照时间顺序排列。注意,一帧音频可以分解成多个音频sample,所以音频一般用sample作为单位,而不用帧。MP4文件格式的定义里面,用sample这个单词表示一个时间帧或者数据单元。每个track会有一个或者多个sample description s。track里面的每个sample通过引用关联到一个sample description。这个sample description s定义了怎样解码这个sample,例如使用的压缩算法。 与其他的多媒体文件格式不同的是,MP4文件格式经常使用几个不同的概念,理解其不同是理解这个文件格式的关键。 这个文件的物理格式没有限定媒体本身的格式。例如,许多文件格式将媒体数据分成帧,头部或者其他数据紧紧跟随每一帧视频,!!!TODO(例如MPEG2)。而MP4文件格式不是如此。 文件的物理格式和媒体数据的排列都不受媒体的时间顺序的限制。视频帧不需要在文件按时间顺序排列。这就意味着如果文件中真的存在这样的一些帧,那么就有一些文件结构来描述媒体的排列和对应的时间信息。 MP4文件中所有的数据都封装在一些box中(以前叫atom)。所有的metadata(媒体描述元数据),包括定义媒体的排列和时间信息的数据都包含在这样的一些结构box中。MP4文件格式定义了这些这些box的格式。Metadata对媒体数据(例如,视频帧)引用说明。媒体数据可以包含在同一个的一个或多个box里,也可以在其他文件中,metadata允许使用URLs来引用其他的文件,而媒体数据在这些引用文件中的排列关系全部在第一个主文件中的metadata描述。其他的文件不一定是MP4文件格式,例如,可能就没有一个box。 有很多种类的track,其中有三个最重要,video track包含了视频sample;audio track 包含了audio sample;hint track稍有不同,它描述了一个流媒体服务器如何把文件中的媒体数据组成符合流媒体协议的数据包。如果文件只是本地播放,可以忽略hint track,他们只与流媒体有关系。 媒体文件的物理结构 Box定义了如何在sample table中找到媒体数据的排列。这包括data reference(数据引用), the sample size table, the sample to chunk table, and the chunk offset table. 这些表就可以找到track中每个sample在文件中的位置和大小。 data reference允许在第二个媒体文件中找到媒体的位置。这样,一部电影就可以由一个媒体数据库中的多个不同文件组成,而且不用把它们全部拷贝到另一个新文件中。例如,对视频编辑就很有帮助。 为了节约空间,这些表都很紧凑。另外,interleave不是sample by sample,而是把单个track的几个samples组合到一起,然后另外几个sample又进行新的组合,等等。一个track的连续几个sample组成的单元就被称为chunk。每个chunk在文件中有一个偏移量,这个偏移量是从文件开头算起的,在这个chunk内,sample是连续存储的。

手机视频文件格式解析之 3GP-MP4

[转]手机视频文件格式解析之 3GP/MP4 2010-06-03 13:39 作者: k歌之王 2009-08-23 前言:做完了手机全能播放器的项目,又要告别几个月来并肩作战,即将去北京发展的Manager zhu。准备把 做过的3GP/FLV/AVI格式整理一遍,算是对几个月辛苦成果的总结,也为后来者提供一些参考。 1. 概述 流行的文件格式背后都有大公司的支持。FLV得益于ADOBE公司推动的网络视频分享风潮,而AVI则是MICROSOFT首创的RIFF即视频和音频交织在一起同步播放。 3GP/MP4是APPLE提出并得到ISO标准支持作为NOKIA等手机的默认视频格式。3GP是MP4格式在手机上的简化版。MP4的codec组合一般是mpeg4 + AAC, 3GP则按版本演进分为3gpp r5(h.263/mpeg4 + AMR-NB/AMR WB), 3gpp r6(增加h.264视频和aacPlus音频支持)。 有人会把MP4和MPEG4搞混,前者是文件容器(container),后者是视频编码格式,容器的作用是把压缩编码 后的视频和音频数据尽可能紧凑的排布,就好像阿甘的巧克力盒子,你并不知道盒子里有什么,但你可以按照 既定的线索解开文件,取出你需要的数据。 文件格式一般包括以下三要素: header: 标记文件类型,音视频码流的基本属性信息 index: 索引表,每个frame有对应的offset,size,timestamp. stream: 真正的音视频流数据。 任何文件格式都应该有以上3要素。当然AVI视频没有索引也能播放,但不能拖放seek,需要自己重建索引。解 析器(demuxer)根据frame_id找到其在文件中的offset和size,然后读取出来解码并播放。 2. 文件格式分析 下面来分析一下3GP/MP4文件格式。APPLE的格式有2个特点,1. 排布紧凑几乎没有冗余数据(AVI则有很多junk 数据),2.音视频码流数据可随意存放而不需按时间顺序排布。

高清视频格式详解

你好,mkv、rmvb、avi、MP4、flv、wmv这些指的都是文件格式,也就是封装格式,而不是真正的数据压缩格式,至于他们的特点,下面分别来说。 首先纠正一下上面说的一个观点,其实mkv和avi并不能说成是高清格式,所谓的高清(High Definition )指的是分辨率达到一定水平之上才称之为高清,像720p、1080i、1080p、a1080、a720、816p 。进行高清视频编码时一般使用的编码格式为H.264、VC-1,而进行封装时可以使用mkv、mp4、avi这类文件格式进行封装。所以mkv、avi只是一种封装格式,里面装的视频如果是一个320x240分辨率的,那这个视频就不是一个高清视频。下面说说这几种格式的特点。 1、mkv:mkv不等同于音频或视频编码格式,它只是为这些进行过音视频编码 的数据提供了一个封装的格式,简单的说就是指定音视频数据在文件中如何排列放置。 MKV最大的特点就是能容纳多种不同类型编码的视频、音频及字幕流,俗称万能媒体容器。 MKV加入AVI所没有的EDC错误检测代码,这意味着即使是没有下载完毕的MKV 文件也可以顺利回放,这些对AVI来说完全是不可想象的。虽然MKV加入了错 误检测代码,但由于采用了新的更高效的组织结构,用MKV封装后的电影还是 比AVI源文件要小了约1%,这就是说即使加上了多个字幕,MKV文件的体积也 不可能比AVI文件大。 MKV支持可变帧率,它可在动态画面中使用较大的帧率,而在静态画面中使用较小的帧率,这样可以有效的减少视频文件的体积,并改善动态画面的质量。它的作用比目前广泛使用的VBR(可变码率)更为明显。 2、avi 可容纳多种类型的音频和视频流,他的封装格式比较老了,在功能上不能像mkv那样满足更多的需求

相关主题
文本预览
相关文档 最新文档