视频容器与编解码器的区别



这基本是一个老生常谈的东西了,但是我仍然是看了很多资料,加上一点点理解才完全明白了其中的差别所在。

这就像上学时的考试大纲,这种东西要求是识记类型的,没有技术门槛,但是只有你把东西都记住之后,才完全知道书上再说什么。

 

一,容器的概念

什么叫容器,从字面的含义来说,能放东西的东西,就叫容器。

打个比方就像桶,可以装水,可以装油,可以装硫酸,等等。

一部电影,不可能只有图像,还有声音,可能还会有字幕,还会有文件作者,加密信息等等。但是我们又不能把这些东西单独存放,这样太麻烦了。所以发明这样一个“桶”,把图像,声音,字幕等等的东西,一股脑放到一个地方,这个“桶”就叫视频的容器。ps:又叫封装格式。

一般来说,文件的拓展名就是容器名。比如.avi,.mp4,.flv,.mkv等,就是不同的容器。

 

二,编解码器的概念

通常来说,图像信息和声音都很大,如果不压缩存放,空间浪费太严重,而且也不利传输。

为了解决这个问题,人们发明了编码器,说白了,就是用来压缩这些信息的。

不同的编码方式,就是不同的编码器。例如mpeg-1,mpeg-2,mpeg-4,h.264,以及还是草按的h.265

这个东西之所以有很多种类,多半的原因就是各个大厂商为了保护自己的利益,定义一些标准,然后推广,就可以坐吃专利,一本万利,何乐而不为?

 

三,常见的容器类型介绍

不准备写太详细,大多数东西只是做一个提示,可以参考维基百科的介绍,写得太多反而会使人迷糊,只写自己知道的,详细的可以参考资料,只是做一个提纲挈领的东西。

  1. avi:(audio video interleave),是微软在1992年推出的一种多媒体文件格式, 比较老了,对目前的基于网络流播放的方式力不从心。
  2. mp4:标准规范是ISO/IEC 14496-14,由mpeg组织规定。youtube的视频很多是这种封装格式。
  3. mkv:一种由开源组织规定的容器类型,链接是http://www.matroska.org/,现在的高清电影一般都采用这个格式。
  4. ts:同样由mpeg组织规定,一般用于数字电视广播中,平时从网络下载来的电影很少用这种格式封装的。标准是13818-1
  5. rmvb/rm:这是一个由商业公司(RealNetworks)自己定义的,网络比较流行,标准不公开,所以播放这种视频只能用专利播放器。
  6. wmv:不多说了,微软定义的封装格式。
  7. flv:视频网站类似优酷,土豆等,都用这个容器来存储视频,很好的保护原始地址,不容易被下载到,从而起到保护版权的作用。由adobe公司开发。

其他的比如3gp,asf,webm,不一一介绍了。

如果想了解更多。

http://zh.wikipedia.org/wiki/MPEG-1,这个链接下面有个表格,里面的东西非常全面。

 

四,常见编码格式

  1. mpeg-1:mpeg组织最早规定的视频编码格式,标准是iso-11117,主要是vcd在用。
  2. mpeg-2:mpeg组织规定的压缩标准之二,主要用于DVD,数字电视广播(DVD),标准是iso-13818系列。
  3. mpeg-4:mpeg组织规定的压缩标准之三,这里有不少东西要交待,这三个标准其实是随着计算机运算能力越来越强而逐渐产生的,所以压缩的视频质量越来越好,但是算法复杂度却越来越高, 不过计算机能力越来越强,这都不算大问题了。有一个有意思的事就是,为什么没有mpeg-3呢?其实原本是有mpeg-3的,但是mpeg组织在写标准时发现,mpeg-2实在太优秀的,mpeg-3推出的目标,他都能做到,所以就这个项目砍掉了。所以mpeg系统的标准,从1,2,4,就直接到了7,就是一个权衡。mpeg组织内部有两派,一是按1,2,3,4,5这样来。另外一批人觉得,1,2,4,后面按道理怎么也是8啊。折中一下,就是mpeg-7了。ps:mp3是指mpeg-1音频压缩的layer 3.
  4. h264/avc/mpeg-4 part 10:大名鼎鼎的264。由mpeg和itu-t联手组成了一个叫JVT(Joint Video Team)的组织制定的。这个东西容易使人迷糊,因为他得名子太多了。又叫mpeg-4 part 10,又叫avc,又叫h264,而且实际上,基本就是一个东西的不同名子。
  5. vc-1:微软定义的压缩标准,不过后来开放出来了,由电影及电视学会(SMPTE)组织标准化。
  6. realvideo:私有标准,木办法,这个东西人家就是私有的,在国内喜欢盗版的地方,大家都不介意,所以市场比较大,其实在北美那边,这种东西,不太多。这里要注意区别,rm/rmvb是容器类似,realvideo是压缩标准。如果说有共同点,那就是:都是由一家公司提供的。呵呵
  7. avs:最后要说的是,国产标准,没太研究过,不知道到底如何,由国内的联合信源公司开发,提交成国家标准。貌似广电总局已经强制机顶盒一定要支持这种压缩格式,以强推这种标准。就像tds-cdma,wapi,还有移动数字电视的方式一样,行政压迫。呵呵。不好说前景。

转载地址:

http://blog.csdn.net/iloveyin/article/details/24365707

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/575510.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#生成高清缩略图

01/// <summary> 02 /// 为图片生成缩略图 03 /// </summary> 04 /// <param name"phyPath">原图片的路径</param> 05 /// <param name"width">缩略图宽</param> 06 /// <param name"height"…

win7安装nodejs 高版本不支持 换低版本

win7安装nodejs失败 显示This application is only supported on Windows 8.1,Windows Server 2012 R2,or higer. win7安装nodejs失败 在win7重装nodejs&#xff0c;版本是node-v14.16.1-x64&#xff0c;安装时报了win7系统不支持的问题 2021年4月8日 —— 目前除了最新的v14大…

[翻译]创建ASP.NET WebApi RESTful 服务(9)

一旦成功的发布API后&#xff0c;使用者将依赖于你所提供的服务。但是变更总是无法避免的&#xff0c;因此谨慎的制定ASP.NET Web API的版本策略就变得非常重要。一般来说&#xff0c;新的功能需要无缝的接入&#xff0c;有时新老版本需要并行&#xff0c;以便给使用者足够的时…

研究生导师一般希望招什么样的研究生?

虽然还不是导师&#xff0c;但也在学校蹲了不少年头了&#xff0c;看着一级级研究生毕业奔赴各方&#xff0c;其实还是蛮有感触的。 各位同学很多在硕士期间回忆并不算好&#xff0c;其实就是从一开始没有搞明白一件事&#xff1a;导师招生为了什么&#xff0c;我们上研又为了什…

动态调用链接库(dll) 续

20141118 最近一周做了一个关于仓库管理&#xff0c;拣货任务分配的模块&#xff0c;其中涉及到刷卡自动打印领取任务的功能点。 技术点&#xff1a; C#调用C、delphi的动态链接库。动态链接库的调用方法不同。效果也不相同。 DLL位置&#xff1a;执行程序根目录下面 例&#x…

读写日志文件

日志为文本文件每列以制表符隔开 行以换行符隔开 本次示例简单实现如下相关功能&#xff1a;1.正写日志文本 最新的日志放后面2.倒写日志文本 最新的日志放前面3.读日志文本内容显示在Label4.读日志文本内容到DataTable 及 筛选后显示在GridView--------------------(以下操作并…

游戏策划试题(1)——摘自牛客网

对于游戏涉及的不多&#xff0c;但是对暴雪在各种经验贴和小道消息上还是有些了解的。涉猎一下 策划游戏之类 的面试知识&#xff0c;横向拓宽知识面&#xff0c;也有助于自己拓宽视野&#xff0c;看看这种游戏文案策划 作为一名运营策划&#xff0c;你觉得可通过哪些途径起到保…

Android Fragment应用实战

现在Fragment的应用真的是越来越广泛了&#xff0c;之前Android在3.0版本加入Fragment的时候&#xff0c;主要是为了解决Android Pad屏幕比较大&#xff0c;空间不能充分利用的问题&#xff0c;但现在即使只是在手机上&#xff0c;也有很多的场景可以运用到Fragment了&#xff…

初识树莓派

初识树莓派这一微型计算机&#xff0c;基本了解概念&#xff0c; 1、树莓派简介 Raspberry Pi(中文名为“树莓派”,简写为RPi&#xff0c;或者 RasPi/RPi)是为学生计算机编程教育而设计&#xff0c;只有信用卡大小的卡片式电脑&#xff0c;其系统基于Linux开发而来的。树莓派由…

ffmpeg抓取rtsp流并保存_详细解析RTSP框架和数据包分析(1)

0.引言 本文主要讲解RTSP框架和抓取RTSP数据包&#xff0c;进行详细分析。可以阅读以下几篇文章&#xff0c;能够帮助你更详细理解。 手把手搭建RTSP流媒体服务器 HLS实战之Wireshark抓包分析 HTTP实战之Wireshark抓包分析 1.RTSP协议简述 RTSP&#xff1a;Real Time Stream…

遍历窗体中所有控件的信息

public void TraverControl(Control Ctl) {   foreach (Control c in Ctl.Controls)  {     label1.Text "\n" "" c.Name "" "\n";     //用于显示窗体中包含的所有的控件名&#xff0c;首先显示的是最外层的控件  …

xshell 软件的窗口一直是置顶 调整为不置顶

突然感觉xshell 软件的窗口一直是置顶状态&#xff0c;点别的软件窗口点不过去&#xff0c; 搜索一下&#xff1a;微信的 alta是截图&#xff0c;和xshell这个冲突了。如果在xshell下按了这个&#xff0c;不知不觉就被置顶了。。。。。MMP 即这个意思&#xff1a; 如果要修改…

Linux下Vim工具常用命令

原文地址&#xff1a; http://www.cnblogs.com/lizhenghn/p/3675011.html 在linux下做开发&#xff0c;甚至是只做管理维护工作&#xff0c;也少不了Vim的使用。作为一个新手&#xff0c;我也是刚刚接触&#xff0c;本节将我日常使用或收集的Vim常用命令记录下来。 当然&#x…

整理加解释:以太网、快速以太网、千兆以太网和万兆以太网分别的概念和区分 大详解

一、以太网是什么 以太网(Ethernet)最早是由Xerox(施乐)公司创建的局域网组网规范&#xff0c;1980年DEC、Intel和Xeox三家公司联合开发了初版Ethernet规范—DIX 1.0&#xff0c;1982年这三家公司又推出了修改版本DIX 2.0&#xff0c;并将其提交给EEE 802工作组&#xff0c;经I…

zoj 1109 Language of FatMouse 解题报告

题目链接&#xff1a;http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId109 题目意思&#xff1a;给出一个mouse-english词典&#xff0c;问对于输入的mouse单词&#xff0c;能否在这个词典里找出对应的english&#xff0c;不能输出“eh” 这里用到map来做&#xf…

测试telnet安装成功 以及如何进入和退出telnet命令模式

telnet装好之后&#xff0c;测试。 输入&#xff1a;telnet www.baidu.com 80 出现如图提示是意思是&#xff1a; 正常连通。 然后 按 ctrl ] 进入telnet客户端命令模式&#xff0c;然后用quit退出。进入linux命令模式。

数据按时间拆开分批处理示例

我现在的问题是有一个大的事实表,已经有数十亿条数据,过来的临时表需要merge进去. 临时表的大小也不确定,可能上十亿也可能只有几百几千万而已. 如果直接让这两个表merge起来,则需要很大的内存来进行处理.所以我就想着把数据进行按时间拆分的处理,然后merge进去, 拆分的条件是如…

Linux E325: ATTENTION Found a swap file by the name “./.backu.sh.swp“

在vi编辑时遇到: E325: ATTENTION Found a swap file by the name "./.backu.sh.swp"错误代码。 原因是上次编辑的时候&#xff0c;卡了或者别的原因ctrl c强制退出了。下次进来Linux还是默认进入这个上次强制退出的文件&#xff0c;所以报错。 解决方…

python 函数的参数对应

作者&#xff1a;Vamei 出处&#xff1a;http://www.cnblogs.com/vamei 欢迎转载&#xff0c;也请保留这段声明。谢谢&#xff01; 我们已经接触过函数(function)的参数(arguments)传递。当时我们根据位置&#xff0c;传递对应的参数。我们将接触更多的参数传递方式。 回忆一下…

telnet远程登陆、mstsc远程控制、SSH之间的比较和区别

Telnet与远程桌面mstsc 一 演示 打开mstsc演示&#xff1a; 01 win r 输入mstsc 02 输入要远程的机子的用户名和密码 03 登录 04 连接开启了&#xff0c;如图即是通过win窗口操作远程机子。 以上是使用mstsc打开一个远程连接来通过windows窗口的方式来控制远程机器。 …