点播封装格式

简介: 点播封装格式

封装格式
封装格式(Format),也称多媒体容器(Multimedia Container),是将已编码压缩好的视频轨道、音频轨道和元数据(视频基本信息如标题、字幕等)按照一定的格式规范,打包放到一个文件中,形成特定文件格式的视频文件。

封装格式主要分为两大类:面向存储的和面向流媒体的。

面向存储的,常见的有AVI、ASF(WMA/WMV)、MP4、MKV、RMVB(RM/RA)等;

面向流媒体的,常见的有FLV、TS(需要配合流媒体网络传输协议,如HLS、RTMP等),MP4也支持流媒体方式(配合HTTP等)。

下面以流媒体传输协议的视角重点介绍面向流媒体的封装格式:

MP4:经典的视频封装格式,移动端(iOS、Android)、PC Web多终端都能良好支持。但MP4的视频文件头太大,结构复杂;如果视频较长(如数小时),则其文件头会过大,影响视频加载速度,故更适合短视频场景。

MP4由一个个的box(以前叫atom)组成,所有的Metadata(媒体描述元数据),包括定义媒体的排列和时间信息的数据都包含在这样的一些结构box中。Metadata 对媒体数据(比如视频帧)引用说明,而媒体数据在这些引用文件中的排列关系全部在第一个主文件中的metadata描述,这样就会导致视频时长越大文件头就会越大、加载越慢。

HLS(HTTP Live Streaming):苹果公司推出的基于HTTP的流媒体网络传输协议,视频的默认封装格式是TS,除了多个TS分片文件,还定义了用来控制播放的m3u8索引文件(文本文件),可以规避普通MP4长时间缓冲头部数据的问题,比较适合点播场景。移动端(iOS、Android)支持较好,但PC端IE存在兼容性问题依赖播放器的二次开发(建议使用阿里云Web播放器)。

FLV:Adobe公司推出的标准,在PC端有Flash的强力支持,但在移动终端只有App实现播放器才能支持(建议使用阿里云播放器),大部分手机端浏览器(特别是苹果的移动设备)均不支持。

DASH(Dynamic Adaptive Streaming over HTTP):使用fragmented MP4(fMP4)格式,将MP4视频分割为多个分片,每个分片可以存在不同的编码形式(如分辨率、码率等);播放器端可自由选择需要播放的视频分片,实现自适应多码率、不同画质内容的无缝切换,提供更好的播放体验。其中MPD文件类似HLS的m3u8文件,国外视频网站如YouTube、Netflix等较多使用DASH。

HLS+fMP4(HTTP Live Streaming with fragmented MP4):此处单列,但本质上还是HLS协议。苹果公司于WWDC 2016宣布新的HLS标准支持文件封装格式为fragmented MP4,使用方法与TS分片类似,意味着一次转码可同时打包成DASH和HLS。

HLS(包括HLS+fMP4)和DASH是最常用的自适应流媒体传输技术(Adaptive Video Streaming),推荐使用。

目录
相关文章
|
存储 网络协议 Linux
视频文件的封装格式
MP4是一套用于音频、视频信息的压缩编码标准,由国际标准化组织(ISO)和国际电工委员会(IEC)下属的“动态图像专家组”(Moving Picture Experts Group,即MPEG)制定
|
编解码 Windows 容器
音视频封装格式和编码格式
音视频封装格式、编码格式知识        常见的AVI、RMVB、MKV、ASF、WMV、MP4、3GP、FLV等文件其实只能算是一种封装标准。 一个完整的视频文件是由音频和视频2部分组成的。H264、Xvid等就是视频编码格式,MP3、AAC等就是音频编码格式。 例如:将一个Xvid视频编码文件和一个MP3音频编码文件按AVI封装标准封装以后,就得到一个A
|
编解码
[笔记]音视频之常见音视频封装格式组成
[笔记]音视频之常见音视频封装格式组成
|
数据安全/隐私保护
【视频点播】播放器vid播放+MtsHlsUriToken
针对视频点播服务的播放器,HLS标准加密使用vid播放的情况,需要增加MtsHlsUriToken的场景
1354 0
【视频点播】播放器vid播放+MtsHlsUriToken
|
编解码
使用librtmp进行H264与AAC直播
libx264版本是128libfaac版本是1.28 1、帧的划分 1.1 H.264帧 对于H.264而言每帧的界定符为00 00 00 01或者00 00 01。 比如下面的h264文件片断这就包函三帧数据 00 00 00 01 67 42 C0 28 DA 01 E0 08 9F...
1516 0
|
JSON 数据格式
FFMPEG音视频开发:获取flv视频格式的时长
FFMPEG音视频开发:获取flv视频格式的时长
331 0
|
C++ 存储
【多媒体封装格式详解】---MP4【4】
前面介绍过的几种格式flv、mkv、asf等。他们音视频的数据包一般都是按照文件的顺序交叉安放。你解析完头部信息后。剩下的一般就按照文件顺序一个数据包一个数据包的解析就行了。但是MP4完全不是这种概念。
1280 0
|
存储
FLV封装格式
FLV封装格式介绍及解释,本文介绍 FLV 里面各种tag的作用。
156 0
|
存储 编解码 网络协议
封装格式介绍
音视频封装格式介绍,FLV,MP4,音视频同步
166 0
|
编解码 内存技术 索引
RTMP直播到FMS中的AAC音频直播
本文引用了下面几个网友的文章: http://sun3eyes.blog.163.com/blog/#m=0&t=3&c=rtmp http://sun3eyes.blog.163.com/blog/static/1070797922012913337667/ http://sun3eyes.
2138 0

热门文章

最新文章