音视频开发之旅(32)-音视频学习资料

yabin小站

共 4035字,需浏览 9分钟

 ·

2022-02-09 17:35

目录

  1. 为什么要学习音视频?
  2. 如何学习系统性音视频?
  3. 音视频相关的资料
  4. 学习实践的输出文章分类聚合
  5. 收获

最近有朋友问想学习音视频,应该怎么学,有什么资料吗?

这个问题也困扰我很久,几年前就想开始音视频相关的学习,但是一直找不到门道,坚持不过两周。回看这个系列文章,到目前写了30+篇,虽还不敢说已入门,因为越学越发现 不会的知识、需要学的东西就越多。但为什么相比过去几年的几次尝试,这次持续时间更长、不断有文章输出呢?
这篇文章就和对自己进行检视反思,希望对想学习音视频的朋友也有所帮助。

为什么要学习音视频?

我是做android应用开发,android本身也是有很多需要深入学习的内容,越是底层的、基础的东西越是通用,比如说设计模式、数据结构、算法、通信机制、多线程机制、JVM虚拟机等等。把上面这些内容结合具体业务和场景学好应用好,对自己的提升也是十分有裨益。我的一个学习榜样就是在这方面有很深的认知和能力。

对于我个人而言,音视频的情怀,4-5年前已经埋下,当时做了一款直播点播的体育类app,接触到一些音视频相关的知识,当时还写过一篇有头无尾的文章[android音视频点/直播模块开发]: https://blog.csdn.net/u011570979/article/details/51205401,但是后面由于工作方向的外部原因,以及更重要的是自己认知不足,对音视频的学习和发展道路还没有比较强烈的渴望,就不了了之了。

在2020年国庆期间,重新检视了下自己的规划和年度目标,发现最重要的个人目标“音视频开发上道”,竟然还没有具体迈出第一步。和自己认真对话之后想清楚了两个问题

  1. 为什么要学习音视频
  2. 如何系统性的学习音视频
    然后就开始了这一系列的学习实践,主要还是认知的提升、着眼长远、系统性的思维

随着近些年以抖/快为代表的短视频、以B站为代表的长视频的快速发展,对16年左右比较火热的直播进行了一次变化,但是还是在音视频领域,我们来看下来在“Trustdata大数据”最新的数据











上述内容来源于 [Trustdata大数据] : https://mp.weixin.qq.com/s/otGI_yvvF_Q0L2mDrhtxyg

通过上面的Top20排行榜,我们可以清晰的看到直接和音视频相关的app有5个,更惊人的是这top20的app,几乎都有音视频相关的内容,这就是行业现状或者趋势吧。

现在音视频都已经那么火了,现在学还有机会吗?
右侧追击的理论同样适用于我们的学习实践。音视频行业快速发展的底层是信息通信的越来越高效,芯片设备的越来要强大和智能。随着5G、6G的应用,相信未来音视频不是什么发展方向,而是像水电一样的基础功能。也是基于这个认知的改变,让自己坚信了音视频这条发展的道路。

代码引用[FFmpeg 音视频开发 20 年]中的一段文字

下一个10年,技术还是那些技术,主角或许从移动App,变成了AI,边缘计算。如果不是xx战,今年海思的AI芯片,4T算力的可能会在下探到10个美金以下。芯片的大规模量产,价格下降,会带动行业新一轮变革。
软件开发者,也会有相应的全新的机会,音视频,网络通讯,OpenGL/ES 都是必须要掌握的,从事相关开发,加上OpenCV, Tensorflow-lite. 深度学习基础。 个人一点看法,仅供参考。
所以单纯聊 FFmpeg 已经没有什么意义,聊点音视频,数字图像处理,网络通讯,跟 FFmpeg 相关的,或许更有参考价值。FFmpeg 的未来在哪里? 一项技术只能在一个合适的时间段解决一个特定的问题。
编解码都被硬件做了还需要软件开发吗?
编解码无论硬解软解代码量都很少。几十行代码的事。在一个项目中占比很少。大量的代码在于网络通讯,图像处理,软件自身的逻辑等。

二、如何学习系统性音视频?

项目管理的很重要的一环就是任务的拆解,然后逐步的实现。之前是想走捷径,想一步就学成,哪有什么速成之术,特别对于知识系统很庞大的体系,分布拆解、逐步学习实践是非常重要的。
也是在2020年国庆期间,通过搜索资料结合自己的思考,逐步形成了如下5个阶段的学习

  1. 音视频 android基础
  2. OpenGL ES
  3. JNI&NDK系列
  4. FFmpeg、x264
  5. 开源项目(exoplayer、ijkplayer、gpuimage)
  6. 后续待定(暂未加入)… 比如openCV、 webRTC

这些非常重要,这些阶段是学习路上的关键节点,构成了认知地图,然后每个阶段,去找对应的资料再把任务拆解成子任务,通过输出倒逼输入,不断迭代自己的学习写作系统。

三、音视频相关的资料

3.1 图书类

《音视频开发进阶指南》
《FFmpeg从入门到精通》
《OpenGL ES应用开发实践指南》
《OpenGL ES 3.0编程指南》
《OpenGL编程指南》
《计算机图形学基础(OpenGL版)》
《漫画算法》
《编程珠玑》
《算法》
《Tinking in C++》

3.2 系统认知类

[FFmpeg 音视频开发 20 年] : https://blog.csdn.net/chenchao_shenzhen/article/details/111532282?spm=1000.2115.3001.4373
[ Android 音视频开发学习思路 ] : https://www.cnblogs.com/renhui/
[音视频开发学习路线-字节流动] : https://mp.weixin.qq.com/s/u1MktZdId94bqoI-3DWosA

[Android 音视频开发入门指南] : https://blog.51cto.com/ticktick/1956269
[从开发小白到音视频专家] : https://blog.51cto.com/ticktick/2046899

[《ywl5320的专栏》]:https://blog.csdn.net/ywl5320

3.3 在线视频资料

[音视频开发工作经验分享] : https://www.bilibili.com/video/BV1p54y1X7fY

[计算机图形学OPENGL入门] : https://www.bilibili.com/video/BV1px41197A5

[尚硅谷Java数据结构与java算法(Java数据结构与算法)] : https://www.bilibili.com/video/BV1E4411H73v

[【C语言描述】《数据结构和算法》(小甲鱼)] : https://www.bilibili.com/video/BV1jW411K7yg

[黑马程序员匠心之作|C++教程从0到1入门编程,学习编程不再难] : https://www.bilibili.com/video/BV1et411b73Z

[Android设计进阶篇-实战NDK(中)] : https://www.bilibili.com/video/BV1Za4y1J7fQ

[基于FFmpeg+SDL的视频播放器的制作——雷霄骅] : https://www.bilibili.com/video/BV14x411D7FD

四、写文章分类聚合

对自己已写的文章进行聚类,也放在[github]: https://github.com/ayyb1988/mediajourney上,方便后续更新,

阶段一:andorid多媒体

音视频开发之旅(一)三种方式绘制图片

音视频开发之旅(二)AudioRecord录制PCM音频

音视频开发之旅(三)AudioTrack播放PCM音频

音视频开发之旅(四)Camera视频采集

音视频开发之旅(五)MediaExtractor MediaMuxer 实现视频的解封装与合成

音视频开发之旅(六)MediaCodec硬编解流程与实践

阶段二: OpenGL ES

音视频开发之旅(七) OpenGL ES 基本概念

音视频开发之旅(八)GLSL及Shader的渲染流程

音视频开发之旅(九) OpenGL ES 绘制平面图形

音视频开发之旅(十) GLSurfaceView源码解析&EGL环境

音视频开发之旅(11) OpenGL ES矩阵变换与坐标系统

音视频开发之旅(12) OpenGL ES之纹理

音视频开发之旅(13) OpenGL ES 滤镜 (篇一)

音视频开发之旅(14) OpenGL ES 实时滤镜

音视频开发之旅(15) OpenGL ES粒子系统 - 喷泉

音视频开发之旅(16) OpenGL ES粒子效果-烟花爆炸

阶段三: JNI&NDK

音视频开发之旅(17) JNI与NDK的学习和使用

音视频开发之旅(18) JNI - 引用类型、异常处理、函数注册

音视频开发之旅(19)NDK构建方式 ndk-build与cmake

音视频开发之旅(20) 指针、内存模型、引用

音视频开发之旅(21)运算符重载、继承、多态、模版

音视频开发之旅(22) STL 之 容器

子系列 算法

音视频开发之旅(23) 算法系列 - 冒泡排序

音视频开发之旅(24) 算法系列-快速排序

音视频开发之旅(25) 算法系列-堆排序

音视频开发之旅(26) 算法系列-选择、插入排序以及STL中sort的实现

音视频开发之旅(27) 算法序列 - 二叉查找树

音视频开发之旅(28) 算法序列 - 平衡二叉树

音视频开发之旅(29) 算法序列 - 散列表

阶段四 : FFmpeg

音视频开发之旅(30) -音视频基础知识

音视频开发之旅(31) -FFMPEG常用命令

后续系列文章持续输出中,欢迎关注公众号“音视频开发之旅”,一起学习成长。

五、收获

通过互动,得知朋友的困扰,也帮忙自己检视和梳理自己

  1. 重新检视了为什么要学习音视频
  2. 学习音视频的方法、资料
  3. 学习实践的文章分类聚合梳理

感谢你的阅读

下一篇我们学习实践ffmpeg系列,欢迎关注公众号“音视频开发之旅”,一起学习成长。

欢迎交流

浏览 12
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报