封装格式 :在观看已经下载好的视频的时候,经常会看到一些视频文件后缀,如.mp4,.flv,.avi,.mkv等等,这些扩展名就可以简单理解为视频的封装格式或者视频的容器格式。

封装 :所谓视频的封装,就是将已经编码好的音频,视频,还可能有字幕,脚本之类的文件按照一定的规范放到一起,形成一个封装格式的文件(封装和编码是两个不同的概念,封装是在“视频流水线”上,编码以后的一个过程,一个容器可以封装多种编码格式的文件,但是只支持特定的编码格式)。封装格式有很多,比如flv,mp4,ts,avi ,mkv等等。

几种常见的封装格式:

1.TS封装格式

TS流最早应用于数字电视领域,视频格式主要是mpeg2。后来,苹果公司发明HLS协议也是基于TS文件的。hls流媒体视频编码的主要格式为h264/mpeg4,音频为aac/mp3。

TS文件分为三层:ts层(如下图)pes(Packet Elemental Stream)层,es层(Elementary Stream)。

es层就是音视频数据,pes层是在音视频数据上加了时间戳等对数据帧的说明信息,ts层是在pes层上加入了数据流识别和传输的必要信息。

ts流结构
由上图可以看出,ts流是由一个个固定大小的包组成的,每个packet大小固定188个字节。

在这里说一下TS流的生产,就不再画深一层的结构图了,深一层结构图自行脑补:

TS流的形成过程:

  1. 将原始音视频数据压缩之后,压缩结果组成一个基本码流(ES)。
  2. 对ES(基本码流)进行打包形成PES。
  3. 在PES包中加入时间戳信息(PTS/DTS)。
  4. 将PES包内容分配到一系列固定长度的传输包(TS Packet)中。
  5. 在传输包中加入定时信息(PCR)。
  6. 在传输包中加入节目专用信息(PSI) 。
  7. 连续输出传输包形成具有恒定比特率的MPEG-TS流。
2.MP4封装格式

MP4,全称MPEG-4 Part 14,是一种使用MPEG-4的多媒体电脑档案格式,其基本存储结构是box,box可以理解为数据对象块,所有数据都必须保存在box中,而且必须包含一个File Type box(ftpy),作为MP4格式的标志并包含关于文件的一些信息。以下是MP4文件的结构树:
MP4文件结构树

ftpy :通常放在文件的开始,作为MP4格式的标志包含关于文件的一些信息

moov :它是一种container box,子box包含了媒体的metadata信息

mdat :包含MP4文件的媒体数据

free :“free”中的内容是无关紧要的,可以被忽略。该box被删除后,不会对播放产生任何影响,只能是size+type,这样组成8个字节的头数据

mvhd :一般作为“moov”的第一个子box出现,相当于整个moov box的“header”

track 表示一些sample的集合,对于媒体数据来说,track表示一个视频或音频序列。

hint track 这个特殊的track并不包含媒体数据,而是包含了一些将其他数据track打包成流媒体的指示信息。

sample 对于非hint track来说,video sample即为一帧视频,或一组连续视频帧,audio sample即为一段连续的压缩音频,它们统称sample。对于hint track,sample定义一个或多个流媒体包的格式。

sample table 指明sampe时序和物理布局的表。

chunk 一个track的几个sample组成的单元。

MP4文件结构:

1、 文件,由很多Box和FullBox组成。
2、 Box,每一个Box由Header和Data组成。
3、 FullBox,是Box的扩展,Box结构的基础上在Header中添加8bits version和24bits flags。
4、 Header,包括了整个Box的长度size和类型type。当size==0时,代表这是文件里最后一个Box;当size==1时,意味着Box长度须要很多其它bits来描写叙述,在后面会定义一个64bits的largesize描写叙述Box的长度;当type是uuid时,代表Box中的数据是用户自己定义扩展类型。
5、 Data,是Box的实际数据,可以是纯数据也可以是很多其它的子Boxes。
6、 当一个Box的Data中是一系列子Box时,这个Box又可成为Container Box。

链接:https://www.jianshu.com/p/bc06344a91ce

原文链接:
https://www.jianshu.com/p/bc06344a91ce MKVToolNix 是一组用于创建,更改,拆分,合并和检查 Matroska 文件(MKV)的工具。借助这些工具,您可以获取有关(mkvinfo)Matroska 文件的信息,从(mkvextract)Matroska 文件中提取曲目/数据,以及从其他媒体文件创建(mkvmerge)Matroska 文件。 Matroska 是一种新的多媒体文件格式,旨在成为未来的新容器格式。 您可以在 http://www.matroska.org/ 上找到有关它及其基础技术,可扩展二进制元语言(EBML)的更多信息。 MKV 封装工具 MKVToolnix 中文版MKVToolnix 中文版 MKVToolnix 是一个高级应用程序,使您可以打开,检查,编辑和混合 Matroska 文件(.mkv)。它也支持其他流行的视频文件类型,以及音轨和字幕。 完整的软件包包括单独的命令行实用程序,用于合并和提取流,查看信息以及编辑标题和章节。它们全部包装在 Windows 版本的图形界面中。 Linux 用户可以使用 Linux 的 MKVToolnix。 检查和处理 Matroska 文件 该工具使您可以查看,附加和拆分轨道,章节和标签,以及编辑各种数据。例如,当涉及常规轨道选项时,您可以设置轨道名称,语言,默认和强制轨道标志,标签以及时间码。 此外,您可以设置纵横比,FPS,延迟,立体镜模式,裁切,提示,压缩模式和自定义命令行参数,以增强功能。外部文件可以作为附件嵌入电影中。 创建和编辑电影章节 还可以创建章并定义属性,例如开始和结束时间,标志,分段和分段版本 UID,以及章名,语言和国家/地区。可配置的全局设置集中于标记文件,是否创建 WebM 兼容文件,拆分模式,文件链接等。 值得考虑的一个重要方面是 MKVToolnix 提供对批处理作业的支持,这意味着您可以在该工具执行耗时的任务时让工作站处于无人看管的状态。 您可以检查当前命令行并将其复制到剪贴板,或将其保存到文件中以供将来的项目使用,管理队列作业,添加命令行选项,从外部文件加载章节,编辑标题以及保存项目是 .mka,.mkv 或 .mk3d 格式的文件。 评估与结论 在我们的测试中,该工具使用较低的 CPU 和 RAM 并不会给计算机性能带来压力。它可以在相当长的时间内执行任务,并且不会触发操作系统挂起,崩溃或提示错误消息。 考虑到其广泛的配置参数,MKVToolnix 应该满足大多数研究,创建,编辑和生成 MKV 文件的专家用户的要求。 1、 文件,由许多Box和FullBox组成。 2、 Box,每个Box由Header和Data组成。 3、 FullBox,是Box的扩展,Box结构的基础上在Header中增加8bits version和24bits flags。... 本文目录1. 概述2. 媒体实现3. 媒体列表4. 小结 1. 概述 看到媒体,不要误解,此处媒体不是指的单纯的图形、视频、音频等媒体形式,而是指的Bootstrap中提供的一种显示组件。 Bootstrap媒体一般由文字、图像构成,大多数情况下图像作为一个抽象代表,文字作为内容描述。 举个最常见例子,微信中的聊天会话就是一个典型的媒体,左侧是头像,右侧上方是微信名称,右侧下方是最新的消息内容。 接下来我们就来使用Bootstrap实现下媒体。 2. 媒体实现 我们以微信聊天会话为例实现下媒体。 首先,我们 多媒体文件封装格式[top] 常见的封装格式有:TS、AVI、MKV、TP、MOV、M2T等等,它们与编码类型没有必然联系。不同的封装方式就好比是不同的盒子,高清视频要用它装起来才能呈现给观众。AVI AVI即音频视频交叉存取格式。1992年初Microsoft公司推出了AVI技术及其应用软件VFW(Video forWindows)。在AVI文件中,运动图像和伴音数据是以交织的方式存储,并独 视频文件格式可以看成一个容器,这个容器包含了如音频轨道、视频轨道和其他一些元数据(元数据包含视频的一些基本信息,比如封面、标题、字幕等)。常见的视频格式: FLV(Flash Video): 由Adobe Flash延伸出来的一种流行网络视频封装格式。文件扩展名flv。 AVI(Audio Video Interleave): 比较早的AVI是微软开发的。是把视频和音频编码混合在一起存储,文件扩展名 1、流媒体封装格式介绍  一个流媒体文件由音频流和视频流两种数据组成。   h264/mpeg4等就是视频流编码格式,视频流一般以帧的单位存在,i帧、p帧、b帧,帧率(frame rate)是每秒显示帧数(frames per second,简称:fps),如果帧率是25,那么帧与帧的时间撮间隔应该是40ms。   adpcm/g711a/g723 等就是音频流编码格式(pcm是 什么是封装格式? 所谓文件封装格式也称多媒体容器(Multimedia Container),与DivX、MP3这类编码格式不同的是,它只是为多媒体编码提供了一个“外壳”,也就是将所有的处理好的视频、音频都包装到一个文件容器内呈现给观众,这个包装的过程就叫封装。 DVD是将标准清晰度的MPEG2视频文件封装到VOB文件内,Blu-ray是将H264等编码的高清晰度视频文件封装到M2T文件内,H 1.什么是多媒体容器       举 个例子,咱们平常所见的那种.rm .rmvb  .mkv .avi视频文件都是多媒体容器文件格式。所谓容器格式就是将不同的多媒体数据流(多条音频流,字幕流和视频流)联合起来加到一个文件(载体)里面.播放 的时候分别对各条多媒体数据流进行解码。多媒体容器 (Multimedia Container)也称为多媒体封装格式,它不同于H.264、DivX、 2、运行mysql docker run --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d -i -p 3306:3306 --restart=always mysql:5.7 以上参数说明 码率或者可以比喻做酒的原料。对于同一个酒瓶和做同一种酒的情况下,如果原料太少,又要要求用酒把酒瓶灌满,此时只好兑水了,酒的品质就会变差了。然而,如果原料太多,又会造成原料浪费。所以要做好酒,我们就需要充足的原料。同样道理,压制一个视频,充 封装格式:(也叫容器)就是将已经编码压缩好的视频流、音频流及字幕按照一定的方案放到一个文件中,便于播放软件播放。 一般来说,视频文件的后缀名就是它的封装格式 封装格式不一样,后缀名也就不一样。(比如.mp4(本地存储) .flv(网络传输比较流行)),不同使用场景封装为不同格式 这里的压缩算法: 视频Video:使用了H264/AVC压缩算法 音频Audio:使用了AAC压缩算法 封装则使用MP4封装格式 常见的视频封装格式 H264+AAC封装为FLV或MP4是最为流行