快速探索,音视频技术不再神秘

欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~

本文由goo发表于云+社区专栏

与生活紧密相连的音视频,为何有那么多格式?直播、点播以及即时视频其中又有怎样的机制支撑?面对纷繁复杂的音视频知识,应该如何学起?快速探索,音视频技术不再神秘。

前言

面对一门技术,我们熟悉而陌生,我们能够熟练的基于平台的API完成各种各样的需求,掌握平台特性、框架与原理。但随着技术点不断深入,却发现自己存在基础性与深度性的知识盲区。

局限于平台API开发,并不能使我们走的很远。突破技术成长必经的瓶颈期,关键在于技术沉淀与对业务方向相结合,需要我们对知识积累与深入。本文分享了笔者对音视频技术知识网络的探索路径,希望能给大家带来帮助。

一、采集 - 数据从哪里来?

1.1 采样原理

定义:对连续变化图像在空间坐标上做离散化处理,将模拟信号转变成数字信号的过程,即为图像进行采样。

通俗来说:采集就是将看到的东西转成二进制流的过程。

1.2 基础概念

1.2.1 图像

「图像」是个集合的概念,帧、顶场、底场都可以称为图像。

  • 帧 一帧通常是一幅完整图像,当采用逐行扫描方式扫描,每次扫描得到的信号就是一帧。
  • 顶场与底场 采集视频信号时,扫描方式分为逐行扫描与隔行扫描。如果采用逐行扫描,得到的则是一幅完整的图像;而采用隔行扫描(奇、偶数行),则扫描下来的一帧图像就被分为了两个部分,这每一部分就称为「场」,根据次序分为:「顶场」和「底场」
  • 隔行扫描 每一帧被分割为两场画面交替显示。每一帧被分割为顶场与底场,通常是先扫描奇数行得到第一场,然后扫描偶数行得到第二场。由于视觉暂留效应,人眼将会看到平滑的运动而不是闪动的半帧半帧的图像。但是这时会有闪烁出现,尽管不容易被察觉,但会使得人眼容易疲劳。当屏幕的内容是横条纹时,这种闪烁特别容易被注意到,并且会有锯齿瑕疵。
  • 逐行扫描 则是将每帧的所有画面同时显示。每次都显示整个扫描帧,如果逐行扫描的帧率和隔行扫描的场率相同,人眼将看到比隔行扫描更平滑的图像,相对于隔行扫描来说闪烁较小。每一帧图像均是由电子束顺序地一行接着一行连续扫描而成,这种扫描方式称为逐行扫描。
  • 两者区别 举个栗子,25fps 100行帧图像,那么隔行扫描需要一秒扫描50次,但每次只需要扫描50行。而逐行扫描则只需要扫描25次,但每次需要扫描100行。 结论:隔行扫描扫描频率为逐行扫描双倍,信道带宽为逐行扫描的一半。在图像体验降低不多的情况下,信道带宽减少了一半,使得设备成本减少,因此,早期大多数显示器都采用隔行扫描。
  • 传送门:逐行扫描、隔行扫描详细讲解

逐行扫描与隔行扫描

顶场与底场,隔行扫描锯齿瑕疵

1.2.2 颜色模型

RGB颜色模型

RGB模型

RGB分别代表红绿蓝,每种颜色需要用3个数字表示,一个数字占用1字节,一种颜色则需要3字节,24位。

更高效的颜色模型?YUV

YCbCr颜色模型

YCbCr颜色模型是YUV家族的一员,关键特点在于它亮度信号Y与色度信号U、V相互分离。当缺失U、V,仅有Y信号时,也能够表示出黑白图像。

Y = kr\*R + kg\*G + kb\*B

Y 即「亮度」,kr、kg、kb 即 R、G、B 的权重值。

Cr = R – Y; Cg = G – Y; Cb = B – Y;

疑问:对比RGB模型,YCbCr模型每个像素也需要3个信号表示,为什么说该模型更高效?

优化思路

人眼对亮度分辨率敏感度高于色彩敏感度。

视觉特性

基于人眼视觉特性,很明显,我们需要从颜色方面入手,于是提出“色度取样”,使颜色存储减半或者更多。容易实现,编码压力较小,收益较高。

色度取样

优化实现

我们知道显示器扫描原理分为逐行扫描与隔行扫描,每条扫描线被扫描时,色度数值传送频率会比亮度低,颜色取样方式有多种,取样方式通常基于亮度值,以4:X:Y的形式描述,X和Y是每两个色度通道中的数值的相对数量:

显示器扫描显示原理

继续举个栗子:

YCbCr像素点

我们有这样一幅图片,上面有像素阵列:

原始像素阵列

YCbCr 4:4:4

会有以下几种采样优化方式:

4:2:2优化后像素阵列

4:2:2取样方式

4:2:0优化后像素阵列

4:2:0取样方式

上图可以很直观的看出:采用YCbCr颜色模型后,并不需要每个像素都存有3个分量,颜色分量通过“色度取样”后,有效的减少了颜色分量的存储。

1.3 图像感知与获取

<center>

<img src="https://ask.qcloudimg.com/draft/2557878/yjqoq9qlhg.png"

width="70%" />

成像传感器

</center>

  1. 通过电功率和对特殊类型检测能源敏感的传感器材料组合。
  2. 将输入的光照能量变为特殊的电压波形。
  3. 波形的幅度和空间特性都与感知的物理现象有关。为了产生数字图像,接下来需要进行取样与量化处理。

1.4 取样与量化

举个栗子,对于黑白图像图(a)为连续图像,如果需要转换成数字形式,需要几步主要操作:

取样与量化

  1. 取样:(a)图上沿AB线段等间隔对该图像取样,得到灰度级曲线(b)
  2. 量化:

    (c)图右侧将灰度分为8个灰度级,再横向每一取样的连续灰度值,量化为8个灰度之一,最终得到(d)图,感知器输出的量化完成流产生数字图像的过程。

    a. 图像投影至传感器阵列 b. 图像取样与量化结果

二、渲染 - 数据如何展现?

2.1 播放器原理

播放器播放从互联网上播放视频,需要经过:解协议、解封装、解码、音视频同步这几个核心步骤。<center>

互联网播放视频流程

  1. 解协议:将流媒体协议数据,解析为标准封装格式数据。流媒体协议传输音视频数据同时,也会传输一些信令数据,其中包括:播放控制、网络状态描述等。常见流媒体协议如HTTP、RTMP或MMS等。
  2. 解封装:将解协议得到的标准封装格式数据,分离为音频流压缩编码数据与视频流压缩编码数据。封装格式也称为容器,即是将已经编码压缩好的视频轨与音频轨按照一定格式放到一个文件中。 需要注意的是:就算是同一个封装格式,其编码方式并不一定一样,我们可以从后缀名中直观的看到视频文件到封装格式。常见封装格式:avi,rmvb,mp4,flv,mkv等。
  3. 解码:就是将音视频压缩编码数据,解码成为非压缩的音视频原始数据。音频编码标准有AAC,MP3,AC-3等;视频编码标准包含H.264,MPEG2,VC-1等。编解码是整个流程最核心与最复杂的环节。
  4. 音视频同步:根据解封装过程获取的参数信息,将解码出来的音视频数据进行同步对其,最终将数据传送到系统,由系统调用硬件进行播放。

2.2 视频编码方式

视频编解码过程是数字视频压缩与解压缩的过程。

选取音视频编码方案时,需要考虑:视频的质量、码率、编码算法和解码算法的复杂度、针对数据丢失和错误的鲁棒性(Robustness)、编辑的方便性、随机访问、编码算法设计的完美性、端到端的延时以及其它一些因素。

2.2.1 H.26X系列概述

H.26X 系列,由国际电传视讯联盟远程通信标准化组织(ITU-T)主导,包括 H.261、H.262、H.263、H.264、H.265。

  • H.261,主要用于老的视频会议和视频电话系统。是第一个使用的数字视频压缩标准。实质上说,之后的所有的标准视频编×××都是基于它设计的。
  • H.262,等同于 MPEG-2 第二部分,使用在 DVD、SVCD 和大多数数字视频广播系统和有线分布系统中。
  • H.263,主要用于视频会议、视频电话和网络视频相关产品。在对逐行扫描的视频源进行压缩的方面,H.263 比它之前的视频编码标准在性能上有了较大的提升。尤其是在低码率端,它可以在保证一定质量的前提下大大的节约码率。
  • H.264,等同于 MPEG-4 第十部分,也被称为高级视频编码(Advanced Video Coding,简称 AVC),是一种视频压缩标准,一种被广泛使用的高精度视频的录制、压缩和发布格式。该标准引入了一系列新的能够大大提高压缩性能的技术,并能够同时在高码率端和低码率端大大超越以前的诸标准。
  • H.265,被称为高效率视频编码(High Efficiency Video Coding,简称 HEVC)是一种视频压缩标准,是 H.264 的继任者。HEVC 被认为不仅提升图像质量,同时也能达到 H.264 两倍的压缩率(等同于同样画面质量下比特率减少了 50%),可支持 4K 分辨率甚至到超高画质电视,最高分辨率可达到 8192×4320(8K 分辨率),这是目前发展的趋势。
  • 详解待整理另外文章

2.2.2 MPEG系列概述

MPEG 系列,由国际标准组织机构(ISO)下属的运动图象专家组(MPEG)开发。

  • MPEG-1 第二部分,主要使用在 VCD 上,有些在线视频也使用这种格式。该编×××的质量大致上和原有的 VHS 录像带相当。
  • MPEG-2 第二部分,等同于 H.262,使用在 DVD、SVCD 和大多数数字视频广播系统和有线分布系统中。
  • MPEG-4 第二部分,可以使用在网络传输、广播和媒体存储上。比起 MPEG-2 第二部分和第一版的 H.263,它的压缩性能有所提高。
  • MPEG-4 第十部分,等同于 H.264,是这两个编码组织合作诞生的标准。
  • 详解待整理另外文章

2.3 音频编解码方式

除了视频,音频当然也需要编码,而音频常用编码格式:

  • AAC,英文全称 Advanced Audio Coding,是由 Fraunhofer IIS、杜比实验室、AT&T、Sony等公司共同开发,在 1997 年推出的基于 MPEG-2 的音频编码技术。2000 年,MPEG-4 标准出现后,AAC 重新集成了其特性,加入了 SBR 技术和 PS 技术,为了区别于传统的 MPEG-2 AAC 又称为 MPEG-4 AAC。(AAC详解待整理另外文章)
  • MP3,英文全称 MPEG-1 or MPEG-2 Audio Layer III,是当曾经非常流行的一种数字音频编码和有损压缩格式,它被设计来大幅降低音频数据量。它是在 1991 年,由位于德国埃尔朗根的研究组织 Fraunhofer-Gesellschaft 的一组工程师发明和标准化的。MP3 的普及,曾对音乐产业造成极大的冲击与影响。
  • WMA,英文全称 Windows Media Audio,由微软公司开发的一种数字音频压缩格式,本身包括有损和无损压缩格式。

三、处理 - 数据怎么加工?

音视频加工处理,是业务的核心需求,对开发者自由度最大的一个环节,通过音视频处理,可以实现各种各样炫酷的特效。

图像、视频常见处理方式:美化、裁剪、缩放、旋转、叠加、编解码等。

音频常见处理方式:重采样、去噪,回声消除,混音、编解码等

常见框架:

  1. 图像处理:OpenGL,OpenCV,libyuv,ffmpeg 等;
  2. 视频编解码:x264,OpenH264,ffmpeg 等;
  3. 音频处理:speexdsp,ffmpeg 等;
  4. 音频编解码:libfaac,opus,speex,ffmpeg 等。

(传送门:音视频开发开源码工程汇总

四、传输 - 数据如何传输?

4.1 流媒体协议

流媒体,指通过互联网以流式传输方式的媒体。流媒体协议,则是服务器与客户端之间通信遵循但规定。说到音视频传输,我们不得不提流媒体协议,常见流媒体协议有:

协议 概述 特点 应用场景
RTP (Real-time Transport Protocol)一种网络传输协议,RTP协议详细说明了在互联网上传递音频和视频的标准数据包格式。 基于UDP 协议实现 RTP协议常用于流媒体系统(配合 RTSP 协议)
RTCP (Real-time Transport Control Protoco)实时传输协议(RTP)的一个姐妹协议。 RTCP为RTP媒体流提供信道外(out-of-band)控制。RTCP 本身并不传输数据,但和 RTP 一起协作将多媒体数据打包和发送。RTCP 定期在流多媒体会话参加者之间传输控制数据。 为 RTP 所提供的服务质量(Quality of Service)提供反馈。
RTSP (Real Time Streaming Protocol)定义了一对多应用程序如何有效地通过 IP 网络传送多媒体数据。 RTSP 在体系结构上位于 RTP 和 RTCP 之上,使用 TCP 或 UDP 完成数据传输 使用 RTSP 时,客户机和服务器都可以发出请求,即 RTSP 可以是双向的。
RTMP (Real Time Messaging Protocol)Adobe Systems 公司为 Flash 播放器和服务器之间音频、视频和数据传输开发的开放协议。 协议基于 TCP,是一个协议族,包括 RTMP 基本协议及 RTMPT/RTMPS/RTMPE 等多种变种。 一种设计用来进行实时数据通信的网络协议,主要用来在 Flash/AIR 平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信。
RTMFP (Real Time Media Flow0 Protoco)Adobe 公司开发的一套新的通信协议,全称 Real Time Media Flow Protocol 协议基于 UDP,支持 C/S 模式和 P2P 模式,即该协议可以让使用 Adobe Flash Player 的终端用户之间进行直接通信 Adobe Flash Player 的终端用户之间进行直接通信
HTTP (HyperText Transfer Protoco)运行在 TCP 之上 这个协议是大家非常熟悉的,它也可以用到视频业务中来。
HLS (HTTP Live Streaming)是苹果公司实现的基于 HTTP 的流媒体传输协议,全称 ,可支持流媒体的直播和点播 短时长的媒体文件(MPEG-TS 格式),客户端不断的下载并播放这些小文件。由于数据通过 HTTP 协议传输,所以完全不用考虑防火墙或者代理的问题,而且分段文件的时长很短,客户端可以很快的选择和切换码率,以适应不同带宽条件下的播放 HLS 的这种技术特点,决定了它的延迟一般总是会高于普通的流媒体直播协议 主要应用在 iOS 系统,为 iOS 设备(如 iPhone、iPad)提供音视频直播和点播方案。

4.2 网络视频点播业务

公司 协议 封装 视频编码 音频编码 播放器
CNTV HTTP MP4 H.264 AAC Flash
CNTV(部分) RTMP FLV H.264 AAC Flash
华数 TV HTTP MP4 H.264 AAC Flash
优酷网 HTTP FLV H.264 AAC Flash
土豆网 HTTP F4V H.264 AAC Flash
56网 HTTP FLV H.264 AAC Flash
音悦台 HTTP MP4 H.264 AAC Flash
乐视网 HTTP FLV H.264 AAC Flash
新浪视频 HTTP FLV H.264 AAC Flash

网络视频点播业务采用 HTTP 有两方面优势:

  • HTTP 是基于 TCP 协议的应用层协议,媒体传输过程中不会出现丢包等现象,从而保证了视频的质量。
  • HTTP 是绝大部分的 Web 服务器支持的协议,因而流媒体服务机构不必投资购买额外的流媒体服务器,从而节约了开支。

对于封装格式:MP4,FLV,F4V 几者只是容器,带来的差异不大,而关键的是音视频解码方式:H.264与AAC,这两种编码标准目前仍被最广泛的应用。

4.3 网络视频直播业务

公司 协议 封装 视频编码 音频编码 播放器
华数TV RTMP FLV H.264 AAC Flash
六间房 RTMP FLV H.264 AAC Flash
中国教育电视台 RTMP FLV H.264 AAC Flash
北广传媒移动电视 RTMP FLV H.264 AAC Flash
上海IPTV RTSP+RTP TS H.264 MP2 机顶盒

网络视频直播服务采用 RTMP 作为直播协议的好处是可以直接被 Flash 播放器支持,而 Flash 播放器在 PC 时代有着极高的普及率,并且与浏览器结合的很好。因此这种流媒体直播平台基本上可以实现了「无插件直播」,极大降低了用户使用成本。

封装格式、视频编码、音频编码、播放器方面几乎全部采用了 FLV、H.264、AAC、Flash。FLV、RTMP、Flash 都是 Adobe 公司的产品,天生有着良好的结合性。

4.4 总结

以上为PC时代旧数据,现移动互联网已爆发,H5 以及客户端应用的普及,行业中对视频业务技术方案的选择也逐渐在发生着变化,而我们则需要结合眼下的实际情况和技术发展的趋势去做出合适的技术选型。

结语

音视频技术道路很长,本文旨在搭建音视频知识知识网,许多知识未能深入,后续仍需要我们不断学习与实践,抱着追求极致的精神去探索发现,加油,我们共同快速成长!

相关阅读
【每日课程推荐】机器学习实战!快速入门在线广告业务及CTR相应知识

此文已由作者授权腾讯云+社区发布,更多原文请点击

搜索关注公众号「云加社区」,第一时间获取技术干货,关注后回复1024 送你一份技术课程大礼包!

海量技术实践经验,尽在云加社区

原文地址:http://blog.51cto.com/13957478/2315184

时间: 2024-10-06 01:10:08

快速探索,音视频技术不再神秘的相关文章

Android平台下通过JNI快速实现音视频通信

音视频通信 作为独立开发者或想缩短音视频开发周期的公司来说,想要在Android平台下实现音视频通信,最快捷的方法是寻找开源项目或调用其他公司API.之所以这么说是因为音视频通信技术涉及到底层音视频采集.解码. FFmpeg(音视频处理解决方案).媒体流传输协议等太多太多相关技术知识点.试了几个开源项目,视频差强人意,语音与视频不同步等不稳定因素.因此我把目光放到其他公司的API上(AnyChat音视频即时通讯解决方案),demo程序API提供了一系列纯Java语言的调用接口,通过JNI即可调用

Android IOS WebRTC 音视频开发总结(七十)-- 移动端音视频技术优化的七个方向

最近直播很火,很多朋友对背后的技术比较感兴趣,所以今天我们整理一篇关于移动端视频优化的文章,这篇文章是我朋友在一个技术大会上分享过的,更多内容请关注我们的微信公众号:rtcblacker 视频直播为什么会这么火? 首先,音视频直播.点播的需求一直大量存在,包括各种行业应用,比如视频门户.娱乐直播.游戏直播.在线教育.远程医疗,远程监控,企业协作,社交应用等等.“以前之所以没有全面爆发,是因为硬件条件不满足,比如网络的带宽有限”,目前网速仍在不断提升,光纤普及到小区,有线网络的上下行带宽已经达到要

智能家居行业的音视频技术

安全问题一直备受关注,人们生活节奏的加快和生活水平的提升,进一步促进人们安全关键的改变,尤其近年来民用安全市场的走俏,家用安全设备逐步走进消费者家中,如何构建一套自己的家庭安保系统也是不少业主都在考虑的问题. 今年以来,智能家居行业可谓风生水起,作为智能家居中不可缺少的部分,家庭监控的发展被十分看好.家庭监控伴随着视频监控的发展而进步,也是家庭防盗的重要组成部分. 据相关人士介绍,中国的家庭安防市场现尚处在起步阶段,与智能家居领域类似,许多企业都在探索,但可以预计未来的市场规模很大.中国现有城镇

“小程序+直播”怎样搅动音视频技术生态?

责编 / 王宇豪 策划 / LiveVideoStack 12月26日晚间,微信小程序开放了直播能力,并首先向社交.教育.医疗.政务民生.金融等五大应用场景开放.与原生App应用和基于浏览器的H5应用相比,小程序直播会对音视频技术生态带来哪些影响?微信天生的流量优势会给开发者和运营带来机会还是陷阱?LiveVideoStack邀请了若干位有代表性的技术人,分享各自的观点与思考. LiveVideoStack:对于小程序提供的这种实时音视频功能,它是否能满足我们一般的直播需求呢?比如它的延迟大致能

音视频技术开发周刊 93期

『音视频技术开发周刊』由LiveVideoStack团队出品,专注在音视频技术领域,纵览相关技术领域的干货和新闻投稿,每周一期.点击『阅读原文』,浏览第93期内容,祝您阅读愉快. 架构 Nodejs+socket.io搭建WebRTC信令服务器 本文介绍了 Nodejs 的工作原理.Nodejs的安装与布署,以及如何使用 要sokcet.io 构建 WebRTC 信令消息服务器.socket.io 由于有房间的概念所以与WebRTC非常匹配,用它开发WebRTC信令服务器非常方便. 蔡锐涛:CG

成都音视频技术沙龙邀你参加

1月11日,阿里云开发者社区启动的ACE同城会十城巡展首站将在成都举行,这次话题聚焦“文创产业音视频技术”. 最近两年什么剧比较火?<盗墓笔记>.<白夜追凶>.<哪吒之魔童降世>应该都榜上有名.在这些影视剧中运用了诸多新技术创意表现手法,尤其一系列新型的软件和计算机服务正被快速应用到文创产业,比如边看边买.窄带高清体验.千人千面视频推荐.手机投屏.渲染技术等.一个非常明显的现象是,这些优秀影视剧作品正在演绎“视觉”+“技术”这组业务需求和技术实现CP完美融合的画面.1月

远程医疗 音视频技术解决方案

临床医学院承担医.教.研的任务,接待实习学员,培训进修人员,教学任务繁重.手术教学过程,需现场教学,但手术室空间有限,学员多,教学效果差,而且影响手术工作.随着医学领域的不断发展,外科手术技术也在日新月异,利用高端计算机科学技术,对各种手术全程画面影像的实时记录,使之用于研究.教学和病例存档,已经得到非常的重视.有些具有争议的手术,也可以利用这些视频资料作为科学的判断依据.手术后对照这些影像资料进行学术探讨,对于提高手术的成功率能够起到很大的帮助.并可通过网络,得到异地专家手术中的远程指导.这样

下周二推出“音视频技术WebRTC初探”公开课,欢迎捧场!

?? 下周二推出"音视频技术WebRTC初探"公开课,欢迎捧场! 公开课课程链接:http://edu.csdn.net/huiyiCourse/detail/90 课程的解说资料和代码将会在公开课结束后上传到 http://download.csdn.net/user/yangzhenping 以下是课程信息: 课程简单介绍 WebRTC的核心源于GIPS. GIPS(Global IP Sound)原是世界顶尖的互联网音视频方案提供商,于2010年被GOOGLE 用6820万美元收

音视频技术 视频抖动优化

大家在视频聊天中,经常会出现马赛克或是视频短暂卡住不动等,通常是由于网络不稳定,如丢包.抖动等造成的. 一般音视频技术都会加入了丢包重传.抖动优化等措施,可以避免由于网络偶尔变差而对音视频通话效果的影响,但是当网络带宽不足,或是网络状态持续恶化时,下面介绍其中一个跨平台的音视频即时通讯的SDK技术-Any.Chat互动平台,Any.Chat内核提供了一个API接口,可以让上层根据自身的应用来决定选择何种处理方案: 方案一:打开平滑播放模式,该模式下,出现丢包时,继续播放,保持播放的流畅性,但是界