29 个回答
会C和C++,还有两年的开发基础,转音视频开发,有天然的优势。
首先很多音视频的实现都是以C和C++为基础语言编写的,同时很多大厂、开源库和开源框架也是C和C++为首要语言。所以有C和C++的基础,学习起来至少语言方面不是问题了。
之后就需要补充音视频相关的知识了。从最基础的图像、音频、视频数据上学起,然后逐步拓展知识面,达到音视频专家级别。
偏向应用的,可以学习采集、显示相关内容,可以学习opengl相关库,里面有大量显示相关内容可以学习。延伸部分就是各种APP和应用中特效、转场、滤镜等内容的开发和维护。
偏向格式的,可以学习各种音视频格式,包括常见的MP3、MP4、mkv、flv、ts等。这些是我们常见的播放音视频文件的部分,主要就是各种多媒体封装格式的类型不同,格式头部分不同,音视频组织的方式不同。延伸部分就是音视频播放器的开发和维护等。
偏向编解码的,需要学习大量个编码格式和标准,音频的有PCM/AAC/AC-3/G7XX/opus等编码、视频的H26X标准、MPEG-X标准等。编解码是比较难得部分,涉及大量文档学习和理论学习,以及结合代码学习。这部分需要有一定耐心,因为学习成本比较高,人才相对来说少很多,竞争力还是非常明显的。延伸部分就各种研究员和大厂中编解码标准的建立,以及下一代编码标准等。
偏向网络传输部分,需要学习各种网络协议,比如:TCP/UDP,RTP/RTCP,RTSP、RTMP,以及网络中各种QoS策略等。这部分主要是现在比较火爆的直播、线上会议、线上教育等内容了。
偏向服务端部分,需要学习服务器相关内容,最近比较厉害,国人之光,SRS就是不错的学习内容
当然所有这些需要对于音视频有足够的兴趣,否则很难坚持下去,特别是现在互联网内卷程度非常高,没有足够耐心容易碰到各种瓶颈而放弃的。如果要入坑希望可以静下心来多学习,学看源码,功到自然成。
相关的博客可以看看CSDN中以下几个大神的:
https:// blog.csdn.net/leixiaohu a1020
https:// blog.csdn.net/Dillon201 5
https://blog.csdn.net/shaqoneal
至于实际工作中,就看各个厂商需要的内容了,很多也是边学边用,学以致用的。