2、软件环境。音效制作的软件环境包括 *** 作工具和音效素材两方面。
*** 作工具包括音频工作站、效果插件(混响器、均衡器、音调控制器、特殊效果器等)、环绕声软件、音视频合成软件等等,常用的音频编辑软件有Audition、Vegas、Nuendo、LogicAudio、Samplitude、Sonar、SoundForge、Wavelab,常用的音频编辑插件套件有Wave、TC works、Voxengo、UltraFunk等等。上述工具平台和效果插件各具特色,需要依个人 *** 作习惯、硬件条件等选择使用。
音效素材集是音效制作的素材来源,素材集综合了地球上大部分自然发声和地球上不存在的电子声或特殊音效,除了一部分原创音效以外,大部分音效可以通过对素材进行剪辑、再合成、效果处理三步曲得以实现。目前世界上最专业、最全面、最广泛应用于电影、广告、游戏的音效素材集有Sound Ideas General 6000 Soundfx Library、Hollywood Edge、Bigfish soundscan、Lucasfilm SoundFX Library系列套装音效集等等。
3、制作人员
游戏音效制作人员是关键,制作制作人员包括音频程序员和音频制作员,两者都需要有较深的游戏背景。
程序员除了要有相关程序编程方面的专业知识之外,还要配合音频设计员运用相关的音频引擎整合游戏音效达到预期效果。
音频制作人员则要熟悉、精通音频编辑软件的 *** 作,掌握相关的录音技术,最重要的是需要有专业的声音听辨能力,这一点对游戏音效精加工至关重要。
在互联网的职业发展中,特别重要的是具备可迁移专业能力。你可能是一个很厉害的程序员,但是你的专业能力相对垂直和冷门,刚好不是行业内最需要的,很可能在薪资、职业发展方面难以获得提升。人的时间和精力是有限的,大多数人都不可能在各个方面样样精通。在人才市场上,我们应该把自己看成商品,企业购买商品,是为了满足特定的需求,因为我们具备相应的专业能力。如果你希望能够抗周期,在各种环境下能够被需要,你所具备的专业能力就应该符合行业整体的需求背景,这样也就具备了行业内的可迁移专业能力。什么是可迁移专业能力呢?我们所具备的专业能力里,那些即使脱离了当前的公司、也能够在其它地方用到的能力,具有很强的适应性。
换个角度,这样的能力本身也符合行业内的通用需求,当你在各个公司之间换工作的时候,可以跨公司、跨行业被人认可。在互联网研发领域,音视频能力就是一种可迁移专业能力。在疫情背景下,所有人和人之间接触式的业务都在承受压力,任何需要当面接触的业务,都越来越难做了,而那些帮助人们减少接触的非接触式业务迎来了巨大机会。音视频就是非接触式业务环境下的基础能力。有没有发现大家现在越来越习惯线上开会?以前好像开会不见面就觉得别扭,现在是能线上就线上,各种企业线上协作的场景里,音视频等不可避免。
直播电商越来越火,而线下的商场去的人比以前更少了。如电竞场景,今年中国电竞团队夺冠时的火热,预示着接下来电竞直播等还有很大需求。还有全真互联网等新概念,背后也需要很多音视频的基础能力。音视频相关岗位的整体薪资比较高。如果掌握了音视频的开发能力,对于增强自己的职业壁垒非常有用。现在市场上音视频的人才仍然比较紧缺,薪资比较高。大家在增强自己职业能力的时候,可以以薪资作为指南针。老板如果能够少给钱,一定是不愿意多付出工资的,之所以薪资高,就是因为市场上的企业都在争夺这方面的人才。掌握这样的可迁移专业能力,在各个企业之间转换都会更容易。例如,我们可以看到招聘网站上的职位薪资范围,音视频的产品经理、程序员、运维等等,普遍薪资会更高一些:很多公司都很重视音视频业务,例如腾讯。在腾讯2021年第二季度业绩报告中写道:「凭藉云基础设施、PaaS及SaaS技术,我们助力公共服务及传统行业实现数字化。我们在技术及产品开发上的提升,吸引了更多的客户采用我们的平台及软件服务其中,视频化趋势为我们的视频云解决方案提供了更多的机会。根据国际数据公司(IDC)的数据,我们的视频云解决方案收入在中国排名第一。」为什么专门提到音视频呢?也是因为音视频在当前各个行业背景下的基础作用,让腾讯将这一块列为重点。当你在腾讯会议里开会的时候,在玩王者荣耀时,在唱全民 K 歌时,背后其实就是腾讯云音视频的支持,这背后需要强大的技术能力和产品能力。
基于这些能力,开发者可以快速构建诸如在线 K 歌、语音社交、在线会议和线上办公等各种场景里的应用。通过 PaaS,未来对于元宇宙、云游戏等也可以快速做出支持。现在,腾讯云音视频解决方案市场份额保持在30%以上(《2021上半年中国音视频解决方案系列追踪报告》),特别是在泛娱乐、电商、在线教育等细分赛道上是第佼佼者。腾讯云音视频在高清化、交互式、沉浸式赛道上都表现不错,开源了国内首个H.266/VVC播放器,推出了整合TRTC实时音视频通信网络、IM即时通信网络、CDN流媒体分发网络的音视频通信基础网络——RT-ONE,还构建了丰富完善的PaaS及aPaaS产品系列。如何开始学习音视频的开发技术呢?最好的方式是直接先去腾讯云的网站上,在文档中心里浏览一下。 在这里面,提供了整体的架构和丰富的示例:还有专门的新手指引:这里面的文档特别全,相关的内容都在里面了。往往最贴近业内第一线的资源才是最及时有效的,腾讯云音视频的内容很有价值。建议大家可以先以这里为起点,多了解相关的应用场景,寻找自己所在的行业领域能够应用的音视频技术的结合点。疫情期间培养的用户习惯,让协商协作和娱乐音视频变成了刚性需求,接下来还会有更多企业需要音视频相关的能力,具备这些能力,可以在市场上具备更强的竞争力。
总体来讲,音视频开发是有一定的技术门槛的,我觉得至少需要在这个领域踏踏实实积累个3-5年,才能对音视频相关的开发知识有一个整体、深刻的理解。从技术上来讲,需要从如下两个大类知识点上去积累:
C/C++通用开发知识
音视频开发的主要编程语言就是C和C++。
这块的专业知识积累是通用的,并不局限于某个特定的行业,属于程序员的技术功底。
可以重点关注如下几个方面:
计算机系统的底层工作原理
*** 作系统原理
程序的编译、链接和加载机制
C/C++语言特性背后蕴含的思想,底层工作原理,适用场景,存在什么样的问题
软件设计原则和设计模式
数据结构和算法
多线程并发编程原理
网络编程
跨平台
*** 作系统API
软件调试
2. 音视频领域专业知识
这块属于从事音视频行业的专业知识。
这块的专业知识是非常多的,每个功能模块背后涉及很多专业的知识。
音视频的开发可以分为两大块,涉及的内容大致如下:
音视频客户端开发
客户端应用开发
音视频引擎开发
音视频引擎SDK
音视频引擎框架
音视频引擎功能模块
音/视频采集
音/视频渲染
音/视频数据处理
音/视频编/解码
录制
串流
音视频同步
流媒体服务器开发
通用服务器开发知识,需要关注如下几个点
高稳定性
高性能
高并发
高可用
流媒体服务器开发
SFU vs MCU
流媒体协议转换
弱网下的音视频传输协议
录制 &转码
…
上述内容中,客户端应用开发、音视频引擎SDK、音视频引擎框架、通用服务器开发等主要涉及C/C++通用开发知识,但要设计好这些部分必须对音视频相关的知识和产品业务有比较深刻的理解才能做到。通常,音视频架构师比较关注这些部分。
而音视频引擎底层功能模块和SFU/MCU流媒体服务器的开发,则和音视频的专业知识密切相关。
已经给大家准备好了安装环境和各种视频资料,资料放在自己的群里面:832218493(需要自取)
视频数据可以通过如下方式获得:
USB摄像头
专业的硬件视频采集卡(有软压卡和硬压卡之分)
网络摄像机(支持RTSP协议)
*** 作系统提供的屏幕录制API
读取音视频文件并解码
订阅流媒体服务器上的流
音频数据可以通过如下方式获得:
声卡
扬声器播放声音的回环采集(依赖 *** 作系统的API)
读取音视频文件并解码
订阅流媒体服务器上的流
支持音频输入的网络摄像机(支持RTSP协议)
支持音频输入的视频采集卡
在手机上, *** 作系统的SDK会提供相关的音视频采集接口
音/视频渲染
视频渲染一般需要了解OpenGL,而音频渲染需要了解OpenAL
可以通过开源库SDL来快速实现渲染模块
在Windows下使用DirectShow框架, *** 作系统提供了对应的视频和音频渲染模块(通过GraphEdit可以看到)
在DirectShow中渲染器会涉及到音视频同步的策略,当然,也完全可以自己去实现音视频同步模块
音/视频数据处理
这些模块基本是在编码前或解码后,对视频或音频的原始数据进行某种算法上的处理
视频处理主要包括分辨率转换、色彩空间转换、帧率转换、图像增强、多路视频拼接、添加字幕、添加LOGO图片等,这块对整体的性能影响比较大,往往需要使用SIMD指令进行汇编优化或使用GPU算法进行加速
音频处理主要包括回声消除、噪声抑制、自动增益、混音等,这块往往会涉及比较多的信号处理和数学知识,是音频中比较复杂的一块
音/视频编/解码
视频编/解码
要理解视频的基本编码原理,熟悉视频编码的关键参数和码流格式
目前使用比较多的是H.264,H.265开始逐步在使用,其他的视频编码也有很多,如AVS、VP8、VP9等
视频编码对音视频引擎的性能影响比较大,这块基本都是需要使用GPU加速的,目前的Intel集显对H.264和H.265支持还是比较好的,NVIDIA的独立显卡在编码上存在路数的限制;手机上一般都有对应的硬件加速模块;在性能较好的硬件上,可以考虑开源的X264
音频编/解码
要理解音频的基本编码原理,熟悉音频的关键参数和码流格式
目前使用比较多的是AAC,其他的音频编码也有很多,如G7.11、G.722、OPUS等
在PC上,一般音频的相关模块对性能的影响不明显,但在海思嵌入式系统上,音频模块对性能的影响就不能忽略,因为海思基本没有提供音频的硬件加速模块,而ARM CPU性能也有点弱
录制
需要理解FLV、MP4、TS等容器格式
对于特殊的录制方式要注意软件的处理方式,例如,加片头和片尾的录制功能,追加录制
MP4录制要注意moov box放在文件开始或结束对录制文件的写入和点播的影响
录制时音视频均匀混合的策略
串流
理解视频互动、直播和点播的工作原理
关键评价指标
延迟
首屏时间
同步
流畅性
画质/音质
理解下述的几种音视频传输协议
RTMP
HTTP + FLV / Websocket + FLV
HLS
RTP &RTCP
RTSP
SIP
WebRTC
H.323
弱网下的音视频传输协议
理解TCP协议栈原理
可靠的UDP传输协议
KCP
SRT
QUIC
FEC + 丢包重传机制(如NACK)
音视频的开发并不是完全从零开始,而是有许多可以依赖的开源库,但要用好这些库,需要对上述的音视频专业知识有深刻的理解。
比较常见的音视频开源库,如下:
ffmpeg
可以直接使用ffmpeg的命令行实现转码、切片等常见功能
可以基于FFmpeg API封装开发自己的音视频模块
live555
比较完善的RTSP库
x264
比较常用的H.264编码库
fdkaac
比较常用的AAC编解码库
librtmp
支持rtmp协议,产品化时需要自己进一步完善
pjsip
支持sip协议
webrtc
google开源的webrtc库,有比较好的音/视频引擎,对网络状态的实时评估可以借鉴,回声消除模块也是比较有名的
SDL
比较有名的音视频渲染库
SRS
国内比较知名的RTMP流媒体服务器,支持HLS、HTTP+FLV,4.0版本开始支持WebRTC
OWT
Intel开源的WebRTC套件,支持了WebRTC客户端SDK和分布式的WebRTC MCU服务器
OpenCV
著名的视频算法库
另外,视频的编码和解码可以基于Intel Media SDK和NVIDIA的NVENC来实现。
在海思嵌入式上,海思芯片(如Hi3531D等)提供了硬件的音视频采集、音视频渲染、视频编/解码、视频图像处理等核心功能,这就需要借助于海思提供的SDK进行开发了。
顺便给大家推荐一个学习音视频的学习大纲 需要自取:
C++Linux服务器音视频资料分享
QQ群名片
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)