点播封装格式

简介: 点播封装格式

封装格式
封装格式(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),推荐使用。

目录
相关文章
|
人工智能 自然语言处理 人机交互
CosyVoice 2.0:阿里开源升级版语音生成大模型,支持多语言和跨语言语音合成,提升发音和音色等的准确性
CosyVoice 2.0 是阿里巴巴通义实验室推出的语音生成大模型升级版,通过有限标量量化技术和块感知因果流匹配模型,显著提升了发音准确性、音色一致性和音质,支持多语言和流式推理,适合实时语音合成场景。
8091 22
CosyVoice 2.0:阿里开源升级版语音生成大模型,支持多语言和跨语言语音合成,提升发音和音色等的准确性
|
调度 云计算 芯片
云超算技术跃进,阿里云牵头制定我国首个云超算国家标准
近日,由阿里云联合中国电子技术标准化研究院主导制定的首个云超算国家标准已完成报批,不久后将正式批准发布。标准规定了云超算服务涉及的云计算基础资源、资源管理、运行和调度等方面的技术要求,为云超算服务产品的设计、实现、应用和选型提供指导,为云超算在HPC应用和用户的大范围采用奠定了基础。
180069 22
|
数据管理 jenkins 测试技术
自动化测试框架的设计与实现
在软件开发周期中,测试是确保产品质量的关键步骤。本文通过介绍自动化测试框架的设计原则、组件构成以及实现方法,旨在指导读者构建高效、可靠的自动化测试系统。文章不仅探讨了自动化测试的必要性和优势,还详细描述了框架搭建的具体步骤,包括工具选择、脚本开发、执行策略及结果分析等。此外,文章还强调了持续集成环境下自动化测试的重要性,并提供了实际案例分析,以帮助读者更好地理解和应用自动化测试框架。
|
网络虚拟化 安全 网络架构
|
移动开发 编解码 数据可视化
低代码可视化-uniapp SliderRange区间组件-代码生成器
SliderRange区间组件是一种用户界面元素,允许用户通过拖动滑块选择数值范围。组件支持微信小程序、H5和App,具有高度可定制性、响应式设计和多种事件处理功能。适用于价格筛选、音量调节等场景。代码实现包括滑动区域、滑块、事件处理等部分,支持可视化配置步长、颜色等属性。使用时需注意选择合适步长、提供清晰标签和考虑无障碍设计。
444 0
|
前端开发 图形学 UED
深度解析Qt背景设计:从基础到高级,从Widget到Quick(一)
深度解析Qt背景设计:从基础到高级,从Widget到Quick
1334 0
华为手机连不上adb解决方法
1.关闭qq,豌豆荚等一连接usb自动侦测手机的程序。。。 2.安装hisuite软件,这个应该跟相应的版本有关,新版本最好要安装这个软件,否则也可能导致怎么都连接不上 3.打开usb调试功能 4.
5430 0
|
机器学习/深度学习 开发框架 算法
计算机专业毕业设计题目汇总-最新题目 选题 推荐 毕业设计 - 毕设指导 开题报告 论文
计算机专业毕业设计题目汇总-最新题目 选题 推荐 毕业设计 - 毕设指导 开题报告 论文,计算机专业毕业设计题目汇总-最新题目 选题 推荐 毕业设计 - 毕设指导 开题报告 论文,计算机专业毕业设计题目汇总-最新题目 选题 推荐 毕业设计 - 毕设指导 开题报告 论文
2110 0
计算机专业毕业设计题目汇总-最新题目 选题 推荐 毕业设计 - 毕设指导 开题报告 论文
|
存储 Prometheus 监控
【2023】Prometheus-相关知识点(面试点)
【2023】Prometheus-相关知识点(面试点)
2527 0