不知道大家发现没,近几年,国内对音视频人才需求越来越大了,在某招聘网站上居然薪酬高达60k。

从未来的大趋势来看,随着5G时代的到来,音视频慢慢变成人们日常生活中的必须品。除了在线教育、音视频会议、即时通讯这些必须使用音视频技术的产品外,其它的产品也需要加入音频、视频元素。比如说将现在的网站注册与登陆的图文方式全部改为语音方式是否更加安全?相信随着音视频技术的普及,更加有创意的产品会如雨后春笋般孕育而生。

现在音视频都已经那么火了,现在学还有机会吗?

音视频行业快速发展的底层是信息通信的越来越高效,芯片设备的越来要强大和智能。随着5G、6G的应用,相信未来音视频不是什么发展方向,而是像水电一样的基础功能。也是基于这个认知的改变,让自己坚信了音视频这条发展的道路。

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

下一个10年,技术还是那些技术,主角或许从移动App,变成了AI,边缘计算。如果不是xx战,今年海思的AI芯片,4T算力的可能会在下探到10个美金以下。芯片的大规模量产,价格下降,会带动行业新一轮变革。

软件开发者,也会有相应的全新的机会,音视频,网络通讯,OpenGL/ES 都是必须要掌握的,从事相关开发,加上OpenCV, Tensorflow-lite. 深度学习基础。 个人一点看法,仅供参考。

所以单纯聊 FFmpeg 已经没有什么意义,聊点音视频,数字图像处理,网络通讯,跟 FFmpeg 相关的,或许更有参考价值。FFmpeg 的未来在哪里? 一项技术只能在一个合适的时间段解决一个特定的问题。

编解码都被硬件做了还需要软件开发吗?

编解码无论硬解软解代码量都很少。几十行代码的事。在一个项目中占比很少。大量的代码在于网络通讯,图像处理,软件自身的逻辑等。

如何学习系统性音视频?

下面是我整理的学习路线,相信我,如果你认真学完了,你一定会成为音视频人才招聘市场的香饽饽~~

一、初级入门篇:

一、绘制图片

  1. ImageView 绘制图片

  2. SurfaceView 绘制图片

  3. 自定义 View 绘制图片

二、AudioRecord API详解

三、使用 AudioRecord 实现录音,并生成wav

  • 创建一个AudioRecord对象
  • 初始化一个buffer
  • 开始录音
  • 创建一个数据流,一边从AudioRecord中读取声音数据到初始化的buffer,一边将buffer中数据导入数据流。
  • 关闭数据流
  • 停止录音

四、用 AudioTrack 播放PCM音频

1.AudioTrack 基本使用

  • MODE_STATIC模式
  • MODE_STREAM模式

2.AudioTrack 详解

  • 音频流的类型
  • Buffer分配和Frame的概念
  • AudioTrack构造过程
  1. AudioTrack 与 MediaPlayer 的对比
  • 区别
  • 联系
  • SoundPool

五、使用 Camera API 采集视频数据

1.预览 Camera 数据

2.取到 NV21 的数据回调

六、使用 MediaExtractor 和 MediaMuxer API 解析和封装 mp4 文件

1.MediaExtractor API介绍

2.MediaMuxer API介绍

3.使用情境

七、MediaCodec API 详解

1.MediaCodec 介绍

2.MediaCodec API 说明

3.MediaCodec 流控

  • 流控基本概念
  • Android 硬编码流控
  • Android 流控策略选择

由于文章篇幅受限,剩余内容过多,文中插图有限,下文只能截图目录展示:

所有知识点详细内容都整理在了开源项目【GitHub】,有需要的可以自取。

二、中级进阶篇:

  • Android OpenGL ES 开发(一): OpenGL ES 介绍
  • Android OpenGL ES 开发(二): OpenGL ES 环境搭建
  • Android OpenGL ES 开发(三): OpenGL ES 定义形状
  • Android OpenGL ES 开发(四): OpenGL ES 绘制形状
  • Android OpenGL ES 开发(五): OpenGL ES 使用投影和相机视图
  • Android OpenGL ES 开发(六): OpenGL ES 添加运动效果
  • Android OpenGL ES 开发(七): OpenGL ES 响应触摸事件
  • Android OpenGL ES 开发(八): OpenGL ES 着色器语言GLSL
  • Android OpenGL ES 开发(九): OpenGL ES 纹理贴图
  • Android OpenGL ES 开发(十): 通过GLES20与着色器交互
  • 使用 OpenGL 显示一张图片
  • GLSurfaceviw 绘制 Camera 预览画面及实现拍照
  • 使用OpenGL ES 完成视频的录制,并实现视频水印效果

高级探究篇:

  • 深入学习音视频编码,如H.264,AAC,研究使用开源编解码库,如x.264,JM 等
  • 深入研究音视频相关的网络协议,如 rtmp,hls,以及封包格式,如:flv,mp4
  • 深入学习一些音视频领域的开源项目,如 webrtc,ffmpeg,ijkplayer,librtmp 等等
  • 将 ffmpeg 库移植到 Android 平台,结合上面积累的经验,编写一款简易的音视频播放器
  • 将 x264 库移植到 Android 平台,结合上面积累的经验,完成视频数据 H264 软编功能
  • 将 librtmp 库移植到 Android 平台,结合上面积累的经验,完成 Android RTMP 推流功能

音视频编解码技术

  • 音视频编解码技术(一):MPEG-4/H.264 AVC 编解码标准
  • 音视频编解码技术(二):AAC 音频编码技术

流媒体协议

  • 流媒体协议(一):HLS 协议
  • 流媒体协议(二):RTMP协议

多媒体文件格式

  • 多媒体文件格式(一):MP4 格式
  • 多媒体文件格式(二):FLV 格式
  • 多媒体文件格式(三):M3U8 格式
  • 多媒体文件格式(四):TS 格式
  • 多媒体文件格式(五):PCM / WAV 格式

FFmpeg 学习记录

  • FFmpeg命令行工具学习(一):查看媒体文件头信息工具ffprobe
  • FFmpeg命令行工具学习(二):播放媒体文件的工具ffplay
  • FFmpeg命令行工具学习(三):媒体文件转换工具ffmpeg
  • FFmpeg命令行工具学习(四):FFmpeg 采集设备
  • FFmpeg命令行工具学习(五):FFmpeg 调整音视频播放速度

  • FFmpeg 学习(一):FFmpeg 简介
  • FFmpeg 学习(二):Mac下安装FFmpeg
  • FFmpeg 学习(三):将 FFmpeg 移植到 Android平台
  • FFmpeg 学习(四):FFmpeg API 介绍与通用 API 分析
  • FFmpeg 学习(五):FFmpeg 编解码 API 分析
  • FFmpeg 学习(六):FFmpeg 核心模块 libavformat 与 libavcodec 分析

  • FFmpeg 结构体学习(一): AVFormatContext 分析
  • FFmpeg 结构体学习(二): AVStream 分析
  • FFmpeg 结构体学习(三): AVPacket 分析
  • FFmpeg 结构体学习(四): AVFrame 分析
  • FFmpeg 结构体学习(五): AVCodec 分析
  • FFmpeg 结构体学习(六): AVCodecContext 分析
  • FFmpeg 结构体学习(七): AVIOContext 分析
  • FFmpeg 结构体学习(八):FFMPEG中重要结构体之间的关系

总结:以上就是关于音视频的资料最强整理和概括了(还有部分内容没有截图出来),相信应该是全网最全了,所有资料都是免费分享给大家的,也省去了对音视频感兴趣的小伙伴们四处找资料的时间.

如果你正好需要可以点此处免费获取

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

整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~

最新文章

  1. lua高阶用法 OO的实现
  2. Retrofit2 + OkHttp3设置Http请求头(Headers)方法汇总
  3. iOS - CocoaPods 第三方开源框架管理
  4. Java 内存分配全面浅析
  5. 64位Windows无法打开会声会影X5的解决方法
  6. (32)odoo中的编码问题
  7. 函数ut_malloc_low
  8. 被mysql中的wait_timeout坑了
  9. PHPFarm - How to run multiple versions of PHP on the same computer
  10. 添加Main-Class到manifest中
  11. Python 显示LinkedIn用户作业
  12. linux中tar 打包指定路径文件
  13. 网络攻击技术开篇——SQL Injection
  14. 201521123024 java 第十周学习总结
  15. 网络通信 --> socket通信
  16. BigDecimal 在for循环中相加注意事项
  17. bugku web web基础
  18. Setup Collision and Overlap Event
  19. 关于yum网络版仓库(本地yum仓库的安装配置,如果没网了,做一个局域网内的yum仓库)
  20. vim分屏操作

热门文章

  1. 关于mysql集群主从服务器搭建
  2. WUSTCTF2020 funnyre
  3. CG-CTF WxyVM2
  4. 从零开始给女朋友讲计算机 1 - 从比特、字节、补码到 ASCII、GB2312、Unicode
  5. 重置networker9.0密码
  6. k8s之deployment详解
  7. GDB常用命令整理
  8. windows使用nvm管理node不同版本
  9. Maven作用及应用
  10. 素数(质数)(Java版)