阅读《视音频编解码技术零基础学习方法-雷霄骅》摘要
今天闲来无事,逛论坛无意间发现中国传媒大学-雷霄骅,雷神的博文。感叹雷神文章通俗易懂,以及他无私奉献的精神之余,特地写下一片简短的总结。
0.视频常识
平时能遇到各种各样的视频文件*.mp4,*.flv,*.mkv,*.rmvb,*.avi等等。这里看到的文件后缀都是音视频文件不同的封装格式!但是不同的封装格式有支持不同的音视频编码标准。可以通过一个工具查看对应视频采用的技术-MediaInfo!主要的封装格式以及对应的编码标准可以对照下表:
主要封装格式一览
名称 |
推出机构 |
流媒体 |
支持的视频编码 |
支持的音频编码 |
目前使用领域 |
AVI |
Microsoft Inc. |
不支持 |
几乎所有格式 |
几乎所有格式 |
BT下载影视 |
MP4 |
MPEG |
支持 |
MPEG-2, MPEG-4, H.264, H.263等 |
AAC, MPEG-1 Layers I, II, III, AC-3等 |
互联网视频网站 |
TS |
MPEG |
支持 |
MPEG-1, MPEG-2, MPEG-4, H.264 |
MPEG-1 Layers I, II, III, AAC, |
IPTV,数字电视 |
FLV |
Adobe Inc. |
支持 |
Sorenson, VP6, H.264 |
MP3, ADPCM, Linear PCM, AAC等 |
互联网视频网站 |
MKV |
CoreCodec Inc. |
支持 |
几乎所有格式 |
几乎所有格式 |
互联网视频网站 |
RMVB |
Real Networks Inc. |
支持 |
RealVideo 8, 9, 10 |
AAC, Cook Codec, RealAudio Lossless |
BT下载影视 |
1.视频播放器原理
视频播放器播放一个互联网上的视频文件,需要经过以下几个步骤:解协议,解封装,解码视音频,视音频同步。如果播放本地文件则不需要解协议,为以下几个步骤:解封装,解码视音频,视音频同步。他们的过程如图所示。
解协议:通常是将网络传输的流媒体数据解析成标准的封装格式数据,传输协议通常包含RTMP,RTP,HTTP。这些传输协议通常还包含一些信令数据以支持流媒体的播放/暂停等。网络传输的通常形式是:protocol header+data。通俗讲,解协议的任务就是讲data内的音视频数据拿出来。
解封装:此步骤的任务就是将上一步解协议后等到的封装流进行再解析,得到音频数据和视频数据。
解码:将解封装后的压缩音视频数据解压成非压缩的音视频数据。压缩的视频数据解压成YUV或者RGB;压缩的音频数据解压成标准的PCM数据。
视音频同步:就是根据解封装模块处理过程中获取到的参数信息,同步解码出来的视频和音频数据,并将视频音频数据送至系统的显卡和声卡播放出来。
2.音视频编码标准
主要视频编码一览
名称 |
推出机构 |
推出时间 |
目前使用领域 |
HEVC(H.265) |
MPEG/ITU-T |
2013 |
研发中 |
H.264 |
MPEG/ITU-T |
2003 |
各个领域 |
MPEG4 |
MPEG |
2001 |
不温不火 |
MPEG2 |
MPEG |
1994 |
数字电视 |
VP9 |
|
2013 |
研发中 |
VP8 |
|
2008 |
不普及 |
VC-1 |
Microsoft Inc. |
2006 |
微软 |
下面包含一些码流分析工具:
Elecard:http://www.elecard.com/en/index.html
CodecVisa:http://www.codecian.com/
Intel Video Pro Analyzer 2014: https://software.intel.com/en-us/media-solutions-portal,该工具是专门针对最新的H.265和VP9的
雷神自己专门写了一个H.264的分析工具:https://blog.csdn.net/leixiaohua1020/article/details/17933821 膜拜~~~
主要音频编码一览
名称 |
推出机构 |
推出时间 |
目前使用领域 |
AAC |
MPEG |
1997 |
各个领域(新) |
AC-3 |
Dolby Inc. |
1992 |
电影 |
MP3 |
MPEG |
1993 |
各个领域(旧) |
WMA |
Microsoft Inc. |
1999 |
微软平台 |
以上只是总结全部源自雷神的博文,有很多没有总结到位。更多详尽的解释说明,请阅读原文!
阅读《视音频编解码技术零基础学习方法-雷霄骅》摘要相关推荐
- 《JavaScript设计模式与开发实践》阅读摘要
<JavaScript设计模式与开发实践>作者:曾探 系统的介绍了各种模式,以及js中的实现.应用,以及超大量高质量代码,绝对值得一读 面向对象的js 静态类型:编译时便已确定变量的类型 ...
- JS代理模式《JavaScript设计模式与开发实践》阅读笔记
代理模式 代理模式是为一个对象提供一个代用品或占位符,以便控制对它的访问. 保护代理和虚拟代理 保护代理:当有许多需求要向某对象发出一些请求时,可以设置保护代理,通过一些条件判断对请求进行过滤. 虚拟 ...
- 专访《Javascript设计模式与开发实践》作者曾探:爱编程 爱生活
专访<Javascript设计模式与开发实践>作者曾探:爱编程 爱生活 发表于12小时前| 2742次阅读| 来源CSDN| 8 条评论| 作者夏梦竹 专访曾探图书作者Javascr ...
- JavaScript设计模式与开发实践系列之单例模式
本系列为<JavaScript设计模式与开发实践>(作者:曾探)学习总结,如想深入了解,请支持作者原版 单例模式 实现单例模式 单例模式的定义是:保证一个类仅有一个实例,并提供一个访问它的 ...
- 《JavaScript设计模式与开发实践》模式篇(12)—— 装饰者模式
在传统的面向对象语言中,给对象添加功能常常使用继承的方式,但是继承的方式并不灵活, 还会带来许多问题:一方面会导致超类和子类之间存在强耦合性,当超类改变时,子类也会随之 改变;另一方面,继承这种功能复 ...
- JavaScript设计模式与开发实践——JavaScript的多态
"多态"一词源于希腊文polymorphism,拆开来看是poly(复数)+ morph(形态)+ ism,从字面上我们可以理解为复数形态. 多态的实际含义是:同一操作作用于不同的 ...
- 《JavaScript设计模式与开发实践》模式篇(5)—— 观察者模式
发布-订阅模式又叫观察者模式,它定义对象间的一种一对多的依赖关系,当一个对象的状 态发生改变时,所有依赖于它的对象都将得到通知.在 JavaScript 开发中,我们一般用事件模型 来替代传统的发布- ...
- 《JavaScript设计模式与开发实践》模式篇(3)—— 代理模式
代理模式是为一个对象提供一个代用品或占位符,以便控制对它的访问 故事背景: 假设当 A 在心情好的时候收到花,小明表白成功的几率有 60%,而当 A 在心情差的时候收到花,小明表白的成功率无限趋近于 ...
- JavaScript设计模式与开发实践 | 02 - this、call和apply
this JavaScript的this总是指向一个对象,至于指向哪个对象,是在运行时基于函数的执行环境的动态绑定的,而非函数被声明时的环境. this的指向 this的指向大致可以分为以下4类: 作 ...
- 《JavaScript设计模式与开发实践》原则篇(3)—— 开放-封闭原则
在面向对象的程序设计中,开放封闭原则(OCP)是最重要的一条原则.很多时候,一个程序具有良好的设计,往往说明它是符合开放封闭原则的. 当需要改变一个程序的功能或者给这个程序增加新功能的时候,可以使用增 ...
最新文章
- 手撕代码之七大常用排序算法 | 附完整代码
- linux 设置 ls -l 快捷键为 ll 别名
- 我的Thinkpad T410最近老是出Fan error
- CF940D Alena And The Heater
- 【网友投稿】大家都在谈裁员,我却默默干倒了3家公司!
- 小学期实践心得(1)
- php支付接口要改动的参数,php支付接口_php支付宝支付接口程序及参数详解
- hashcat进行rar密码破解可gpu运算
- 查看计算机温度指令,怎么查看电脑温度|查看电脑温度的三种方式
- 一个典型业务系统卡顿故障分析
- mac下Charles的安装和iPhone上的配置
- srand()和rand()函数详解
- Python基础:函数的返回值return
- java获取一天的起止时间
- [sdx12]sdx12平台QCA6174 使用hostapd WiFi 2.4G强制40MHz频宽不生效问题分析及实现
- 自学php看什么视频,PHP自学要多久?看了这11部php视频教程,你就是高手
- iOS Keychain(钥匙串)原理及使用
- lterator,Listlterator
- 2020下半年,最接地气的字节跳动Android面经分享(已收offer
- Unresolved reference ‘sklearn‘问题|scikit-learn包安装
热门文章
- ie8和ie11的html代码生成,ie8升级ie11-IE11,IE8
- DELMIA软件:机器人与行走轴联动实现长焊缝弧焊焊接虚拟仿真
- VS2015 如何打包winform 安装程序
- matlab在非线性动力学,基于Matlab的非线性动力学系统分析
- socks5认证过程
- airtest基本介绍
- Apple Pay接入详细教程
- 如何用Directshow采集摄像头图像
- 网站无法打开显示阻断页面的解决方法
- mw150um 驱动程序win10_水星MW150UM无线网卡驱动下载-水星MW150UM 1.0无线网卡驱动官方版下载[电脑版]-华军软件园...