你好,我是李江,欢迎你跟我一起走进视频和图像的世界。从今天开始,我要用15节课的时间,和你分享视频中的那些核心技术。
那说起视频,随着以抖音和快手为代表的短视频平台火爆全球,市场对于视频研发人才的需求越来越旺盛。当然还有像随之而来的直播带货、疫情背景下视频会议产品的更新与迭代等等,都给工程师们创造了很多新的机会。
最简单粗暴的方式是,你可以直接通过各种招聘平台去了解相关的就业形势。就拿Android开发为例吧,现阶段做音视频开发的薪资水平,至少比同资历的Android开发高出30%左右。
当然,除了实打实的物质回馈,我想更大的学习动力还是一些新技术、新应用,毕竟好奇是人类的天性,也是技术人进阶的驱动力。
拿我来说吧,我目前是在声网 Agora 担任视频专家,主要从事视频编码和传输方面的工作。但在此之前,我已经积累了8年之久,做过很多新的尝试和探索,收获颇丰。
早在2013年我还在浙大读硕士的时候,我就开始了视频编码与传输方向的研究。之后一步步转向视频编码的应用、传输策略的优化;再到高阶的视频网络传输、带宽预测、抗丢包等网络对抗技术;再后来就是人脸识别、表情识别和人流量检测等各种有意思的视频AI算法的落地。
总结来说,视频领域的方方面面,从底层原理到上层应用,我都有过深度参与和系统性的沉淀。这也是我开这门课的一个原动力,那就是希望能做更多的分享与输出,把这一路上踩的坑、体验到的技术痛点与乐趣与你分享,让更多有兴趣了解、转型视频开发的同学可以快速涉猎视频技术,而音视频工程师或者相关应用的产品经理也可以借此夯实视频基础、优化视频产品设计体验。
在我看来,现在就是视频技术最好的时代。一方面,如你所见,当下即是刚需,视频技术的应用已经成为互联网平台的标配;另一方面,未来即是星辰大海,随着AI、元宇宙等技术的发展,视频技术还有无限的想象空间。
但既然我们前面已经提到了技术痛点这个关键词,那学习门槛还是有的。就比如:
尤其对于一些视频技术小白来说,可能看公式都是有难度的。就比如说下面这个公式:
这其实是一个二维DCT变换公式,是用来将图片从空域转到频域的。对于有些基础的同学来说,可能一眼就能看个大概。但是对于之前没有接触过视频编码的同学来说,可能要先从每个字母代表什么学起,然后才能再去搞清楚公式背后的计算逻辑。
有门槛只是一方面,我认为,视频技术难上手的另一个重要原因就是它涉及的技术太多了,这是事实。比如说视频前处理,就涉及到很多信号处理和AI技术;视频的编码算法,则会涉及到信息论和数学;而视频的传输就更多了,包含了各种网络协议和拥塞控制算法。你可以通过以下这张知识图谱去梳理其中的技术环节,既是构建知识网络,也可以查漏补缺。
另外,也正是因为这点,目前市面上系统讲解视频的书籍和课程也是比较少的。同时,它与火热的音频技术相比,发展时间更短,所以沉淀下来的资料也不多。
清楚了门槛,后面我们要解决的就是怎么迈过去,推开视频技术这扇大门了。
我联想到以前在公司内部做技术分享的场景,复盘问题其实是一种很好的学习方式。所以在设计课程的时候,我就假想同过去的自己对话。回想那些我曾经困惑的技术点和理论,以及难以解决的工程问题,希望能把那些广杂艰深、让初学者望而生畏的核心技术交付给你。
那么这门课程的具体内容是怎样的呢?
我会从视频处理的全链路展开,具体分为图像基础和前处理、视频编码、视频传输和网络对抗、视频封装和播放四个模块。
图像基础和前处理:从视频和图像的基本概念讲起,陆续延伸到视频的颜色空间,尤其是YUV颜色空间,这是视频技术中非常重要的基础知识,同时也是很多视频工程师的学习难点。之后会讨论工程上常用的图像缩放算法及其原理。打好基础,后面事半功倍。
视频编码:主要讲解在视频技术中占据重要地位的视频编码技术,重点学习编码算法的底层原理和具体算法的实现,让我们在使用编解码器的同时,也能更深一层,洞察其工作原理。另外,H264码流是视频开发中必学的,所以我也会在这里和你讨论它的结构以及相关工程问题。深入原理,才能快速实践。
视频传输和网络对抗:以实践为主,讲解具体的视频传输和弱网对抗技术,主要包括如何打包视频、预测网络带宽,以及如何在有限的带宽情况下控制好编码器的码率和发送包的速度。之后,我会手把手带你解决两个代表性的视频Bug“花屏和卡顿”,并介绍一下视频会议中的常用技术SVC。
视频封装和播放:介绍常用的视频封装技术,并解决视频工程难题:音视频同步。
以上就是我要给你分享的重点内容,从最核心的原理、最新的应用到最常见的问题,我相信这门课能帮助你轻松跨入视频技术的大门。
最后,我想说,技术赋能、常变常新,希望我们都能在时代的洪流中锚定目标与方向。最后,欢迎你在留言区中与我交流,不妨说说你对这门课程的期待,或者你在学习视频技术时的经历和痛点,我会更加有针对性地为你答疑解惑!