音视频知识总结(转载自雷霄骅)

进入快手一段时间之后就发现了自己在音视频方面相关理论知识的不足,但一直没有合适的方向、引导以及资料进行学习,甚是苦恼。

偶然的一个时间点,发现了 CSDN 雷霄骅前辈的音视频音视频总结,一开始没发觉什么,但后来看了其他资料后才越来越体会到博客的不明觉厉。

故而产生了边学习边总结串联的想法,此文便在这种背景下产生,如果你对音视频也很感兴趣,而苦于没有入门资料,不妨跟着本文探索音视频的广阔领域。

0. MediaInfo

MediaInfo 用来分析视频和音频文件的编码和内容信息,除了提供DLL之外,本身也提供GUI工具用于查看视频信息,新版本的MediaInfo支持HEVC。

支持文本,表格,树形图,网页等查看方式,可导出文本,CSV,HTML等文件格式,源码分析参考

0.1 支持信息

类目

具体信息

内容信息标题,作者,专辑名,音轨号,日期,总时间等
视频编码器,长宽比,帧频率,比特率等
音频编码器,采样率,声道数,语言,比特率
文本语言和字幕
段落段落数,列表

0.2 支持格式

类目

具体信息

视频格式MKV, OGM, AVI, DivX, WMV, QuickTime, Real, MPEG-1, MPEG-2, MPEG-4, DVD (VOB)等
编码器DivX, XviD, MSMPEG4, ASP, H.264, AVC等
音频格式OGG, MP3, WAV, RA, AC3, DTS, AAC, M4A, AU, AIFF等
字幕格式SRT, SSA, ASS, SAMI等

1. 视频播放原理

音视频技术主要包含以下几点:封装技术,视频压缩编码技术以及音频压缩编码技术。如果考虑到网络传输的话,还包括流媒体协议技术。

1.1 源码解析

视频播放器的源代码详细解析(Media Player Classic - HCMplayerFFplayXBMC

1.2 视频播放过程

视频播放器播放一个互联网上的视频文件,需要经过以下几个步骤:解协议,解封装,解码音视频,音视频同步。

过程

作用

说明

对比分析

解协议

流媒体协议数据 ——>>

封装格式数据

HTTP、RTMP、MMS等流媒体协议在传输视音频数据的同时,也会传输包括对播放的控制(播放,暂停,停止),或者对网络状态的描述等一些信令数据,解协议就是去除掉信令数据而只保留视音频数据。

例如,RTMP协议传输数据解协议后会输出FLV格式的数据。

流媒体系统对比
解封装

封装格式数据  ——>>

      音频流压缩编码数据

 +   视频流压缩编码数据

封装的作用就是将已经压缩编码的视频数据和音频数据按照一定的格式放到一起,包括MP4,MKV,RMVB,TS,FLV,AVI等格式。

例如,FLV格式数据经解封装后会输出H.264编码的视频码流和AAC编码的音频码流。

封装格式对比
解码音视频

视频/音频压缩编码数据 ——>>

非压缩的视频/音频原始数据

音频的压缩编码标准包含AAC,MP3,AC-3等;视频的压缩编码标准则包含H.264,MPEG2,VC-1等,

压缩编码的视频数据 ——>> 非压缩的颜色数据,如YUV420P,RGB

压缩编码的音频数据 ——>> 非压缩的音频抽样数据,如PCM数据

视频编码器对比

音频编码格式对比

音视频同步-

解封装获取参数 ——>> 同步解码出来的视频和音频数据

将视频音频数据送至系统的显卡和声卡播放出来。

视频播放器对比

2. 流媒体协议

流媒体协议是服务器与客户端之间通信遵循的规定,包括RTSP+RTP、RTMP,MMS,HTTP等,因互联网网络环境的不稳定性,RTSP+RTP较少用于互联网视音频传输。

互联网视频服务通常采用TCP作为其流媒体的传输层协议,因而像RTMP,MMS,HTTP这类的协议广泛用于互联网视音频服务之中。

这类协议不会发生丢包,因而保证了视频的质量,但是传输的效率会相对低一些。

名称

推出机构

传输层协议

客户端

目前使用领域

详细说明

RTSP+RTP

IETF

TCP+UDPVLC, WMPIPTV

因采用UDP传输音视频,支持组播,效率较高,RTSP协议学习笔记

但缺点是网络不好的情况下可能丢包,影响视频观看质量。

因而围绕IPTV的视频质量的研究还是挺多的,IPTV视频码流分析

RTMPAdobe Inc.TCPFlash互联网直播+点播

RTMP规范简单分析RTMP流媒体播放过程

相关工具源码分析RTMP协议学习

RTMFPUDPFlash互联网直播新的流媒体协议,支持P2P
MMSMicrosoft Inc.TCP/UDPWMP互联网直播+点播-
HTTPWWW+IETFTCPFlash互联网直播-

3. 封装格式

封装格式就是把视频数据和音频数据打包成一个文件的规范。仅仅靠看文件的后缀,很难能看出具体使用了什么音视频编码标准。
有些比较优秀的封装格式支持的视音频编码标准十分广泛,如MKV;而有些落后的封装格式支持的视音频编码标准很少,如RMVB。
除了AVI之外,其他封装格式都支持流媒体,即可以“边下边播”。

名称

推出机构

流媒体

支持的视频编码

支持的音频编码

目前使用领域

相关经验

AVI

Microsoft Inc.

不支持

几乎所有格式

几乎所有格式

BT下载影视

TS封装格式分析器

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等

互联网视频网站

FLV封装格式分析器

MKV

CoreCodec Inc.

支持

几乎所有格式

几乎所有格式

互联网视频网站

-

RMVB

Real Networks Inc.

支持

RealVideo 8, 9, 10

AAC, Cook Codec, RealAudio Lossless

BT下载影视

-

4. 视频编码

视频编码的主要作用是将视频像素数据(RGB,YUV等)压缩成为视频码流,从而降低视频的数据量,是视音频技术中最重要的技术之一。

视频码流的数据量占了视音频总数据量的绝大部分,高效率的视频编码在同等的码率下,可获得更高的视频质量。各种编码器命令行

注:视频编码技术在整个音视频技术中应该是最复杂的技术,零基础可先买书看下原理(如《现代电视原理》、《数字电视广播原理与应用》中的部分章节)

名称

推出机构

推出时间

目前使用领域

码流分析相关参考(前辈研究成果)

HEVC(H.265)

MPEG/ITU-T

2013

研发中

HEVC码流简单分析

编码效率对比 、与x264性能对比HEVC优势

详解 AV1 的编码算法

AV1(VP9)

Google

2013

研发中

 

H.264

MPEG/ITU-T

2003

各个领域

H.264简单码流分析

H.264码流分析器

JM12.2RC参考 、 x264码率控制

MSU出品、 X264 输出的统计值的含义

MPEG4

MPEG

2001

不温不火

  

MPEG2

MPEG

1994

数字电视

MPEG2简单码流分析

 
VP8

Google

2008

不普及

 VP8介绍  、 WebM (VP8) vs H.264

VC-1

Microsoft Inc.

2006

微软平台

  
AVSAVSWC--

 

相关介绍 、 官网

主流以及下一代编码标准之间的比较可以参考文章:视频编码方案之间的比较(HEVC,H.264,MPEG2等) 、 视频码流分析工具

此外,在码率一定的情况下,几种编码标准的比较可参考:限制码率的视频编码标准比较(包括MPEG-2,H.263, MPEG-4,以及 H.264)

结果大致是这样的: HEVC > VP9 > H.264> VP8 > MPEG4 > H.263 > MPEG2。

5. 音频编码

音频编码的主要作用是将音频采样数据(PCM等)压缩成为音频码流,从而降低音频的数据量,也是一个重要的技术。

音频编码技术近期绝大部分的改动都是在MP3的继任者——AAC的基础上完成的。

音频编码方案之间音质比较(AAC,MP3,WMA等),结果大致是这样的:AAC+ > MP3PRO > AAC> RealAudio > WMA > MP3

名称

推出机构

推出时间

目前使用领域

相关参考(前辈研究成果)

AAC

MPEG

1997

各个领域(新)

AAC格式简介AAC专利介绍AAC格式分析器

AAC规格(LC,HE,HEv2)及性能对比

AC-3

Dolby Inc.

1992

电影

AC-3技术综述

MP3

MPEG

1993

各个领域(旧)

 

WMA

Microsoft Inc.

1999

微软平台

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值