当前位置:首页 » 《随便一记》 » 正文

企业级Android音视频开发学习路线+项目实战+源码解析(WebRTC Native 源码、X264源码、FFmpeg、Opus源码.....)_datian1234的博客

17 人参与  2022年05月08日 13:25  分类 : 《随便一记》  评论

点击全文阅读


前言

如今音视频的知识纷繁复杂,自己学习非常困难,既需要非常扎实的基础知识,又需要有很多的工程经验;

而音视频从业者基本上有两个层面:一个层面是搞音视频算法,这类人非常少,需要有深的数学能力和算法背景,这类人一般都会选择去大公司,薪水百万是最low 的。

另一个层面是搞工程,这类人相对较多,他们有扎实的理论基础,很强的技术功底,对音频、视频都非常熟悉。这些人工资要比一般开发者高20%左右;随着5G时代的到来,音视频慢慢变成人们日常生活中的必须品。所以,现在有大量的公司开始寻找音视频人才,一个稍好点的音视频人才现在可能会有3-4家公司抢着要。因此,对音视频人才的需求也从小众变成了大众,这更多的是大家对未来市场的预期导致的结果。

可在目前的确没有比较系统的教程或者书籍,网上的博客文章也都是比较零散的,在此小编花费大量时间收集和整理,终于将音视频方面的知识点整理成了一个专题,今天借此文章分享给对音视频感兴趣的小伙伴。

学习方向

我们先来看看一个方向性的学习指南:

  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 特效等功能

相信我,如果你认真把所有任务都完成了,你一定会成为音视频人才招聘市场的香饽饽~~如何才能更好地学好以上知识呢?下面正是要给大家分享小编花费86天整理的关于音视频开发入门到进阶,已整理成PDF文档:文中所有资料都是免费分享给大家的,扫一扫下方CSDN官方认证二维码免费获取↓↓↓请添加图片描述

一、Android音视频硬解码篇

  • 音视频基础知识
  • 音视频硬解码流程:封装基础解码框架
  • 音视频播放:音视频同步
  • 音视频解封和封装:生成一个MP4

二、使用OpenGL渲染视频画面篇

  • 初步了解OpenGL ES
  • 使用OpenGL渲染视频画面
  • OpenGL渲染多视频,实现画中画
  • 深入了解OpenGL之EGL
  • OpenGL FBO数据缓冲区
  • Android音视频硬编码:生成一个MP4

三、Android FFmpeg音视频解码篇

  • FFmpeg so库编译
  • Android 引入FFmpeg
  • Android FFmpeg视频解码播放
  • Android FFmpeg+OpenSL ES音频解码播放
  • Android FFmpeg+OpenGL ES播放视频
  • FFmpeg简单合成MP4:视屏解封与重新封装
  • Android FFmpeg 视频编码

四、直播系统聊天技术

  • 百万在线的美拍直播弹幕系统的实时推送技术实践之路
  • 阿里电商IM消息平台,在群聊、直播场景下的技术实践
  • 微信直播聊天室单房间1500万在线的消息架构演进之路
  • 百度直播的海量用户实时消息系统架构演进实践
  • 微信小游戏直播在Android端的跨进程渲染推流实践

五、阿里IM技术分享

  • 企业级IM王者——钉钉在后端架构上的过人之处
  • 闲鱼IM基于Flutter的移动端跨端改造实践
  • 闲鱼亿级IM消息系统的架构演进之路
  • 闲鱼亿级IM消息系统的可靠投递优化实践


文中所有资料都是免费分享给大家的,扫一扫下方CSDN官方认证二维码免费获取↓↓↓请添加图片描述

深入源码

《音视频精编源码解析》

第一章、WebRTC Native 源码导读

  • 第一节-安卓相机采集实现分析中
  • 第二节-安卓预览实现分析
  • 第三节-安卓视频硬编码实现分析
  • 第四节-VideoCRE与内存抖动优化
  • 第五节-安卓P2P连接过程和 DataChannel 使用
  • 第六节-视频数据native层之旅
  • 第七节-混音
  • 第八节-P2P连接过程完全解析
  • 第九节-API概览
  • 第十节-RTP H.264封包与解包

第二章、X264源码解读

  • 第一节-概述
  • 第二节-x264命令行工具中
  • 第三节-编码器主干部分-2
  • 第四节-x264_slice_write()
  • 第五节-滤波(Filter)部分
  • 第六节-宏块分析(Analysis)部分-帧内宏块(Intra)

第三章、FFmpeg

  • 第—节-FFmpeg编译和集成
  • 第二节-FFmpeg +ANativeWindow 实现视频解码播放
  • 第三节-FFmpeg + OpenSLES 实现音频解码播放
  • 第四节-FFmpeg + OpenGLES实现音频可视化播放
  • 第五节-FFmpeg + OpenGLES 实现视频解码播放和视频滤镜
  • 第六节-FFmpeg播放器实现音视频同步的三种方式
  • 第七节-FFmpeg + OpenGLES 实现3D全景播放器
  • 第八节-FFmpeg 播放器视频渲染优化
  • 第九节-FFmpeg.x264以及fdk-aac 编译整合
  • 第十节-FFmpeg视频录制–视频添加滤镜和编码
  • 第十一节-FFmpeg + Android AudioRecorder音频录制编码由
  • 第十二节-Android FFmpeg 实现带滤镜的微信小视频录制功能

第四章、ijkplayer源码分析系列

  • 第一节-整体结构总结
  • 第二节-read_thread流程
  • 第三节-解码流程
  • 第四节-渲染流程

第五章jsmpeg源码解析

  • 第一节-基础知识字符处理ArrayBuffer TypedArray
  • 第二节-TS码流PAT PMT
  • 第三节-源码buffer.js对Uint8Array的封装
  • 第四节-源码ts.js TS格式解析流程
  • 第五节-源码mpeg1.js MPEG1码流结构
  • 第六节-概要总结

第六章、Live555源码解析

  • 第一节-GROUPSOCK
  • 第二节-MEDIUM媒体基础类
  • 第三节-MEDIASOURCE、MEDIASINK、MEDIASESSION、MEDIASUBSESSION
  • 第四节-FRAMEDSOURCE、RTPSOURCE、RTPSINK
  • 第五节-GENERICMEDIASERVER、RTSPSERVER、RTSPCLIENT
  • 第六节-testRTSPClient
  • 第七节-ServerMediaSession.ServerMediaSubsession、live555MediaServer

第七章、Opus源码解析

  • 第一节-简介
  • 第二节-编解码器使用
  • 第三节-手换一个Opus编码程序
  • 第四节-Opus解码程序实现
  • 第五节-OggOpus封装器全解析
  • 第六节-Opus编码基础之认识声音
  • 第七节-Opus编码基础之压缩编码

总结

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

音视频开发的前景,相信大家从相关的招聘网站上就可以看到,不管是流媒体开发还是音视频处理开发,都是大量招人的,并且由于入门门槛相对较高,学习周期长,薪资也是居高不下。

另外:小编还收集整理一些音视频相关配套视频,相信能使大家学习起来更加快速

文中所有资料都是免费分享给大家的,扫一扫下方CSDN官方认证二维码免费获取↓↓↓请添加图片描述

Android架构师之路很漫长, 一起共勉吧!

学习之路犹如逆水行舟,不进则退,如果你松懈了, 那么你就退步了,而在Android开发工作中没有一门吃香独特的技术,想拿高薪也只能是望尘莫及的。做个勤奋向上的人,加紧学习,抓住中心,宁精勿杂,宁专勿多。


点击全文阅读


本文链接:http://zhangshiyu.com/post/39734.html

音视频  视频  解码  
<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1