今天闲来无事,逛论坛无意间发现中国传媒大学-雷霄骅,雷神的博文。感叹雷神文章通俗易懂,以及他无私奉献的精神之余,特地写下一片简短的总结。

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

Google

2013

研发中

VP8

Google

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

微软平台

以上只是总结全部源自雷神的博文,有很多没有总结到位。更多详尽的解释说明,请阅读原文!

阅读《视音频编解码技术零基础学习方法-雷霄骅》摘要相关推荐

  1. 《JavaScript设计模式与开发实践》阅读摘要

    <JavaScript设计模式与开发实践>作者:曾探 系统的介绍了各种模式,以及js中的实现.应用,以及超大量高质量代码,绝对值得一读 面向对象的js 静态类型:编译时便已确定变量的类型 ...

  2. JS代理模式《JavaScript设计模式与开发实践》阅读笔记

    代理模式 代理模式是为一个对象提供一个代用品或占位符,以便控制对它的访问. 保护代理和虚拟代理 保护代理:当有许多需求要向某对象发出一些请求时,可以设置保护代理,通过一些条件判断对请求进行过滤. 虚拟 ...

  3. 专访《Javascript设计模式与开发实践》作者曾探:爱编程 爱生活

     专访<Javascript设计模式与开发实践>作者曾探:爱编程 爱生活 发表于12小时前| 2742次阅读| 来源CSDN| 8 条评论| 作者夏梦竹 专访曾探图书作者Javascr ...

  4. JavaScript设计模式与开发实践系列之单例模式

    本系列为<JavaScript设计模式与开发实践>(作者:曾探)学习总结,如想深入了解,请支持作者原版 单例模式 实现单例模式 单例模式的定义是:保证一个类仅有一个实例,并提供一个访问它的 ...

  5. 《JavaScript设计模式与开发实践》模式篇(12)—— 装饰者模式

    在传统的面向对象语言中,给对象添加功能常常使用继承的方式,但是继承的方式并不灵活, 还会带来许多问题:一方面会导致超类和子类之间存在强耦合性,当超类改变时,子类也会随之 改变;另一方面,继承这种功能复 ...

  6. JavaScript设计模式与开发实践——JavaScript的多态

    "多态"一词源于希腊文polymorphism,拆开来看是poly(复数)+ morph(形态)+ ism,从字面上我们可以理解为复数形态. 多态的实际含义是:同一操作作用于不同的 ...

  7. 《JavaScript设计模式与开发实践》模式篇(5)—— 观察者模式

    发布-订阅模式又叫观察者模式,它定义对象间的一种一对多的依赖关系,当一个对象的状 态发生改变时,所有依赖于它的对象都将得到通知.在 JavaScript 开发中,我们一般用事件模型 来替代传统的发布- ...

  8. 《JavaScript设计模式与开发实践》模式篇(3)—— 代理模式

    代理模式是为一个对象提供一个代用品或占位符,以便控制对它的访问 故事背景: 假设当 A 在心情好的时候收到花,小明表白成功的几率有 60%,而当 A 在心情差的时候收到花,小明表白的成功率无限趋近于 ...

  9. JavaScript设计模式与开发实践 | 02 - this、call和apply

    this JavaScript的this总是指向一个对象,至于指向哪个对象,是在运行时基于函数的执行环境的动态绑定的,而非函数被声明时的环境. this的指向 this的指向大致可以分为以下4类: 作 ...

  10. 《JavaScript设计模式与开发实践》原则篇(3)—— 开放-封闭原则

    在面向对象的程序设计中,开放封闭原则(OCP)是最重要的一条原则.很多时候,一个程序具有良好的设计,往往说明它是符合开放封闭原则的. 当需要改变一个程序的功能或者给这个程序增加新功能的时候,可以使用增 ...

最新文章

  1. 手撕代码之七大常用排序算法 | 附完整代码
  2. linux 设置 ls -l 快捷键为 ll 别名
  3. 我的Thinkpad T410最近老是出Fan error
  4. CF940D Alena And The Heater
  5. 【网友投稿】大家都在谈裁员,我却默默干倒了3家公司!
  6. 小学期实践心得(1)
  7. php支付接口要改动的参数,php支付接口_php支付宝支付接口程序及参数详解
  8. hashcat进行rar密码破解可gpu运算
  9. 查看计算机温度指令,怎么查看电脑温度|查看电脑温度的三种方式
  10. 一个典型业务系统卡顿故障分析
  11. mac下Charles的安装和iPhone上的配置
  12. srand()和rand()函数详解
  13. Python基础:函数的返回值return
  14. java获取一天的起止时间
  15. [sdx12]sdx12平台QCA6174 使用hostapd WiFi 2.4G强制40MHz频宽不生效问题分析及实现
  16. 自学php看什么视频,PHP自学要多久?看了这11部php视频教程,你就是高手
  17. iOS Keychain(钥匙串)原理及使用
  18. lterator,Listlterator
  19. 2020下半年,最接地气的字节跳动Android面经分享(已收offer
  20. Unresolved reference ‘sklearn‘问题|scikit-learn包安装

热门文章

  1. ie8和ie11的html代码生成,ie8升级ie11-IE11,IE8
  2. DELMIA软件:机器人与行走轴联动实现长焊缝弧焊焊接虚拟仿真
  3. VS2015 如何打包winform 安装程序
  4. matlab在非线性动力学,基于Matlab的非线性动力学系统分析
  5. socks5认证过程
  6. airtest基本介绍
  7. Apple Pay接入详细教程
  8. 如何用Directshow采集摄像头图像
  9. 网站无法打开显示阻断页面的解决方法
  10. mw150um 驱动程序win10_水星MW150UM无线网卡驱动下载-水星MW150UM 1.0无线网卡驱动官方版下载[电脑版]-华军软件园...