国内是不是很缺音视频的开发人员,想学习音视频开发,感觉网上能搜到的资料很少?
共 2387字,需浏览 5分钟
·
2022-02-09 17:35
随着基础设施的完善(光纤入户、wifi覆盖、5G普及),加之2020年疫情的影响,将短视频、直播、视频会议、在线教育、在线医疗瞬间推到了顶峰,人们对音视频的需求和要求也越来越强烈。
音视频开发学习成本高、效率低,主要有两方面的原因,一是音视频知识庞杂,通俗易懂的资料非常少;二是网上充斥着大量的错误信息,使得很多初学者掉到坑里就爬不出来了。
从事音视频领域的人员可以简单划分为工程开发、算法优化两类,工程开发需要了解整个音视频处理流程,侧重于编码能力和实际解决问题能力;算法优化需要对细分模块非常清楚,侧重于算法效果和性能的调优。从入门的角度看,可以先从工程篇开始,当进入深水区时,就需要学习算法篇。
一、音视频工程篇
初学者可以从开源库(FFMEPG、WebRTC)入手,结合部分书籍和优秀的入门教程,了解音视频工程知识,逐步深入,学习音视频开发。
WebRTC:
WebRTC,名称源自网页实时通信(Web Real-Time Communication)的缩写,是一个支持网页浏览器进行实时语音通话或视频聊天的技术,是谷歌2010年以6820万美元收购Global IP Solutions公司而获得的一项技术。WebRTC提供了实时音视频的核心技术,包括音视频的采集、处理、编解码、网络传输、显示等功能,并且还支持跨平台:windows,linux,mac,android,ios。虽然WebRTC的目标是实现跨平台的Web端实时音视频通讯,但因为核心层代码的Native、高品质和内聚性,开发者很容易进行除Web平台外的移殖和应用。很长一段时间内WebRTC是业界能免费得到的唯一高品质实时音视频通讯技术。2021年1月26日,万维网联盟(W3C)和互联网工程任务组(IETF)同时宣布Web 实时通信(Web Real-Time Communications,简称 WebRTC)发布为正式标准。
书籍:
《WebRTC 零基础开发者教程(中文)》
《WebRTC权威指南(原书第3版) 》
相关链接:
https://webrtc.github.io/samples
FFMPEG:
FFmpeg既是一款音视频编解码工具,同时也是一组音视频编解码开发套件,作为编解码开发套件,它为开发者提供了丰富的音视频处理的调用接口。FFmpeg提供了多种媒体格式的封装和解封装,包括多种音视频编码、多种协议的流媒体、多种色彩格式转换、多种采样率转换、多种码率转换等;FFmpeg框架提供了多种丰富的插件模块,包含封装与解封装的插件、编码与解码的插件等。
书籍:
《FFmpeg从入门到精通》
相关链接:
可以瞻仰雷神作品:https://blog.csdn.net/leixiaohua1020/article/details/15811977
其他书籍:
《Android音视频开发》
《音视频开发进阶指南:基于Android与iOS平台的实践》
二、音视频算法篇
音视频算法主要分为图像处理、视频编解码、语音处理、音频编解码几大部分。算法开发需要很强的理论知识,特别是数学,否则很多公式根本无法理解,只能停留在代码搬运工的程度,也就算不上真正的算法工程师。
图像处理:
图像处理一般分为传统图像处理和基于AI的图像处理。传统图像处理用的最多的就是图像增强(锐化、去噪、对比度、亮度、抗抖动)。AI图像处理包括分类(二分类、多分类)、检测(骨架点检测、人脸检测、行人检测)、分割(全景分割、实例分割、语义分割)等。常用的网络包括resnet及其衍生版、mobilenet v系列、shufflenet系列、Squeezenet系列、VGG系列、Googlenet系列。
书籍:
《数字图像处理》(冈萨雷斯)研究生必修课,附有matlab代码
《学习OpenCV(中文版)》 OpenCV是开源计算机视觉库
视频编解码:
视频编解码主要包括MEPG标准组织的AVC(H264)/HEVC(H265)/VVC(H266),谷歌的AVx系列以及国标AVS系列。国内视频生态中的标准应用:公共服务视频 H.264/h.265,广电视频 H.264/AVS+,文教娱乐以H.264为主、H.265/VP9为辅。视频编解码的唯一标准就是用最低的码率编最好的视频质量。工业级别后续的发展除了各个编码标准的升级外,还有对ROI区域的码率控制、视频编码前增加图像增强、视频编码与AI相结合等、VR技术、4k/8k分布式编码,客观评价指标的权重将越来越弱化。
书籍:
《新一代视频压缩编码标准H.264/AVC》
《H.265/HEVC原理、标准与实现》
语音处理:
语音处理主要包括语音增强、语音识别、语音合成、语义理解,以智能音箱为例,其处理流程为声音采集—>降噪—>语音唤醒—>语音转文字—>语义理解—>回复文字和指令—>文字转声音—>播放声音,语音增强可以用传统数字信号方法也可以用AI方法,语音识别和语义理解都是现在AI应用的大方向。
书籍:
《离散时间语音信号处理》理论性强,附有matlab代码
《实时语音处理实践指南》作者是一名程序员,所以很适合新手入门
音频编解码:
音频编解码技术是一种具体的应用技术,但是可能系统相对复杂。它是信源编解码技术的一个分支,目的就是压缩数据。音频编解码技术分为5大技术:熵编码、量化编码、变换编码、预测编码、音频建模(感知建模,BCC建模,正弦建模等),主流的有AAC、Opus。
书籍:
《语音编码》
学校都是以理论研究为主,侧重学术创新;工作则是以解决实际问题为标准,往往都是工程--理论--工程的步骤。音视频领域博大精深,只能由点及面、慢慢深入,多实践、多看开源、多看博客,有时间研究理论固然很好,但对于普通工程师而言,从一个简单的helloworld入手可能更快更有效。
来自公司资深工程师的推荐,觉得有用点个赞再走啊