其他分享
首页 > 其他分享> > 5G时代风口浪尖上的音视频开发技术,你还在观望吗?保姆级Android音视频开发学习一篇就够

5G时代风口浪尖上的音视频开发技术,你还在观望吗?保姆级Android音视频开发学习一篇就够

作者:互联网

从技术上来讲,需要从如下两个大类知识点上去积累:

  1. C/C++通用开发知识

音视频开发的主要编程语言就是C和C++。

这块的专业知识积累是通用的,并不局限于某个特定的行业,属于程序员的技术功底。

可以重点关注如下几个方面:

2. 音视频领域专业知识

这块属于从事音视频行业的专业知识。

这块的专业知识是非常多的,每个功能模块背后涉及很多专业的知识。

音视频的开发可以分为两大块,涉及的内容大致如下:

上述内容中,客户端应用开发、音视频引擎SDK、音视频引擎框架、通用服务器开发等主要涉及C/C++通用开发知识,但要设计好这些部分必须对音视频相关的知识和产品业务有比较深刻的理解才能做到。通常,音视频架构师比较关注这些部分。

而音视频引擎底层功能模块和SFU/MCU流媒体服务器的开发,则和音视频的专业知识密切相关。

音视频的开发并不是完全从零开始,而是有许多可以依赖的开源库,但要用好这些库,需要对上述的音视频专业知识有深刻的理解。

比较常见的音视频开源库,如下:

另外,视频的编码和解码可以基于Intel Media SDK和NVIDIA的NVENC来实现。

在海思嵌入式上,海思芯片(如Hi3531D等)提供了硬件的音视频采集、音视频渲染、视频编/解码、视频图像处理等核心功能,这就需要借助于海思提供的SDK进行开发了。

音视频这块,目前的确没有比较系统的教程或者书籍,网上的博客文章也都是比较零散的,希望我后面能挤出时间整一个专题详细讲一讲~~目前的话,我先给出一个大的方向性的学习指南,希望对初学者有所帮助。

我一直相信带着 “任务” 去学习和实践,效率会高很多,因此我列出了一系列音视频相关的 “开发任务”,从简单到困难(当然,不一定非常严格和完美,部分任务先后可调整),大家在完成任务的过程中,遇到任何不懂的地方都要及时去 google,或者去请教身边的大牛,不放过任何一个疑点,相信大家会很快就能把音视频周边相关知识积累起来。

这里整理和概括了(还有部分内容没有截图出来)关于音视频的资料,相信应该是全网最全了,所有资料都是免费分享给大家的,也省去了对音视频感兴趣的小伙伴们四处找资料的时间,如果你正好需要可以扫一扫下方二维码免费获取。

Android 音视频从入门到精通——学习目标

1. 在 Android 平台绘制一张图片,使用至少 3 种不同的 API,ImageView,SurfaceView,自定义 View

2. 在 Android 平台使用 AudioRecord 和 AudioTrack API 完成音频 PCM 数据的采集和播放,并实现读写音频 wav 文件

3. 在 Android 平台使用 Camera API 进行视频的采集,分别使用 SurfaceView、TextureView 来预览 Camera 数据,取到 NV21 的数据回调

4. 学习 Android 平台的 MediaExtractor 和 MediaMuxer API,知道如何解析和封装 mp4 文件

5. 学习 Android 平台 OpenGL ES API,了解 OpenGL 开发的基本流程,使用 OpenGL 绘制一个三角形

6. 学习 Android 平台 OpenGL ES API,学习纹理绘制,能够使用 OpenGL 显示一张图片

7. 学习 MediaCodec API,完成音频 AAC 硬编、硬解

8. 学习 MediaCodec API,完成视频 H.264 的硬编、硬解

9. 串联整个音视频录制流程,完成音视频的采集、编码、封包成 mp4 输出

10. 串联整个音视频播放流程,完成 mp4 的解析、音视频的解码、播放和渲染

11. 进一步学习 OpenGL,了解如何实现视频的剪裁、旋转、水印、滤镜,并学习 OpenGL 高级特性,如:VBO,VAO,FBO 等等

12. 学习 Android 图形图像架构,能够使用 GLSurfaceviw 绘制 Camera 预览画面

13. 深入研究音视频相关的网络协议,如 rtmp,hls,以及封包格式,如:flv,mp4

14. 深入学习一些音视频领域的开源项目,如 webrtc,ffmpeg,ijkplayer,librtmp 等等

15. 将 ffmpeg 库移植到 Android 平台,结合上面积累的经验,编写一款简易的音视频播放器

16. 将 x264 库移植到 Android 平台,结合上面积累的经验,完成视频数据 H264 软编功能

17. 将 librtmp 库移植到 Android 平台,结合上面积累的经验,完成 Android RTMP 推流功能

18. 上面积累的经验,做一款短视频 APP,完成如:断点拍摄、添加水印、本地转码、视频剪辑、视频拼接、MV 特效等功能

相信我,如果你认真把所有任务都完成了,你一定会成为音视频人才招聘市场的香饽饽~~

一,初级入门篇:

一 绘制图片

  1. ImageView 绘制图片

习 OpenGL,了解如何实现视频的剪裁、旋转、水印、滤镜,并学习 OpenGL 高级特性,如:VBO,VAO,FBO 等等

12. 学习 Android 图形图像架构,能够使用 GLSurfaceviw 绘制 Camera 预览画面

13. 深入研究音视频相关的网络协议,如 rtmp,hls,以及封包格式,如:flv,mp4

14. 深入学习一些音视频领域的开源项目,如 webrtc,ffmpeg,ijkplayer,librtmp 等等

15. 将 ffmpeg 库移植到 Android 平台,结合上面积累的经验,编写一款简易的音视频播放器

16. 将 x264 库移植到 Android 平台,结合上面积累的经验,完成视频数据 H264 软编功能

17. 将 librtmp 库移植到 Android 平台,结合上面积累的经验,完成 Android RTMP 推流功能

18. 上面积累的经验,做一款短视频 APP,完成如:断点拍摄、添加水印、本地转码、视频剪辑、视频拼接、MV 特效等功能

相信我,如果你认真把所有任务都完成了,你一定会成为音视频人才招聘市场的香饽饽~~

一,初级入门篇:

一 绘制图片

  1. ImageView 绘制图片

标签:视频,OpenGL,音频,就够,音视频,开发技术,API,Android
来源: https://blog.csdn.net/m0_66144836/article/details/122729716