音视频学习路线
共 1506字,需浏览 4分钟
·
2022-02-09 17:34
工作也有些年了,碰到不少同事和朋友问Android开发如何转音视频,或者如何精进音视频开发的能力,这个自己也是一边咨询,一边跟随、一边摸索走过来的。期间也要感谢之前的老大和同事帮助自己打好基础,感谢现在的经理推荐逐渐有更多机会承担音视频开发的责任。没有这么多机缘巧合,自己或许还在Android的路上一去不复返。
谦虚使人进步,骄傲使人落后
刚毕业那会儿,自己对于Android是一无所知、一知半解,能被当时的老大看中,主要就是因为同学的推荐,而且当时公司正好在扩招,只要一点能力都可以吸收进项目组。老大当时手把手教,从Android的基础到音视频封装的基础,细心但是唠叨,是不是喊我们下班、周末时间来加班学习。当时从Android的四大组件、bundle机制,handler等上层应用开始,逐步深入到native层、学习cpp中的相关实现;从activity一路跟踪到PMS、AMS底下实现,一路走来,认识了Android的基本开发。后来慢慢framework也逐渐熟悉了起来。通过源码跟踪、流程图、序列图绘制、文档总结和分享、demo的洗礼,算是正式入门了。主要承担应用功能开发工作。
主线:Android应用开发
天行健,君子以自强不息
由于当时的业务是数字电视相关业务,公司架构是采用芯片厂商的部分解决方案+自研核心功能的组织架构。因此需要研发人员能够了解音视频相关内容,如果能够精通简直是核心骨干了,当时老大就是这样一位。老大带入门,修行看个人。慢慢接触各种音视频的封装格式、Android的MediaPlayer架构、FFMPEG开源库、OpenOMX框架等。从认识了MP4和".mp4"的区别开始,逐步掌握了format封装、网络传输、接收端解码、屏幕显示等音视频编解码的框架,也熟悉了本地文件和网络码流如何在Android系统中流转,如何进行软解、硬解的选择,如何进行显示呈现。这时候自己俨然成为一个Android音视频开发工程师了。主要承担音视频功能优化和问题解决修复工作。正是这段时间的积累,才能为后续工作奠定基础。
主线:Android-->MediaPlayer Java-->MediaPlayer C-->OpenOMX
副线:音视频封装格式-->音视频编解码-->音视频开源框架
儒生俗士,岂识时务?识时务者,在乎俊杰。此间自有卧龙、凤雏。
之后由于老大家庭需要、公司业务调整、自己职业规划等原因,离开了工作四年的公司,来到现在公司。
虽然当时现公司是创业三年的公司,但是团队氛围非常好,经理也比较随和,能力很强。也会鼓励我们做自己擅长的工作,这也是吸引自己的地方。在做了一年多的业务,充分了解公司的业务框架之后,自己有幸承担更多音视频方向的业务和功能提升工作。这时候公司对自己的期待不仅仅是问题解决和功能开发了,主要期待自己音视频工作经验的展示。这个阶段自己积累了WebRTC相关经验,学习弱网优化、传输协议、音视频编解码兼容、音视频传输安全等内容,逐步提升公式产品性能和稳定性、兼容性。对于公司Android产品,自己提升了弱网对抗能力,兼容更多封包格式,做了一些成绩。
主线:webrtc-->VLC-->Quic-->SRT
副线:RTP、RTCP-->RTSP-->RTMP-->NACK-->拥塞控制
流年笑掷,未来可期
未来,自己仍然和公司共成长,同进步
未来,无限可能,无线遐想
未来,可期
附录:附上自己最近再整理学习的音视频相关的Roadmap,不是最全的,但是自己慢慢摸索的,最适合自己的。