美文网首页Android开发Android开发Android技术知识
音视频开发的四种技术栈突破方向

音视频开发的四种技术栈突破方向

作者: 像程序那样去思考 | 来源:发表于2022-05-26 21:43 被阅读0次

视频、声音、图片是我们日常生活中最常见的三种数据载体,音视频主要处理的也是这三种数据。音视频完整的技术栈是关注这些数据从产生到消费的完整流程,从视觉上、听觉上、感觉上给大家最好的体验。

  • 视频、声音、图片是如何产生的?或者说如何采集的?如何保证视频的清晰度高?如何保证声音的质量好?
  • 怎么保证网络传输视频、音频数据快?弱网情况下如何保证?
  • 怎么以最好的体验渲染视频、声音?2D渲染、3D渲染?多声道、混音?
  • 怎么解析视频、图片、声音呢?

其实上面的这些问题就是当前音视频技术中值得深挖的点?四种突破的方向,每个方向都值得去深挖,如果能在某个方向搞定这些技术点,未来发展可期。

生产侧我们关心的点是三方面:

  • 如何提升视频的画质:HEVC编码、AV1编码、色彩调节、部分超分算法
  • 如何减少导出视频的时间:并行编码、码率优化
  • 如何将视频处理得平滑:光流法插帧

视频播放器是最场景的渲染侧的应用了,虽然播放器比较简单,但是渲染侧包含的内容非常多,以后渲染的重要性也会进一步提高。因为渲染的数据越来越复杂,从2D到3D,到AR画面等等,要求逼真、栩栩如生,就要求我们使用一些高级的渲染引擎,例如filament、Unity等等。渲染侧也有三方面需要重点关注:

  • 提升渲染效率
  • 降低资源占用
  • 提升兼容性

分析侧和算法绑定的比较多一点,有些人可能会将它们归类到算法中,但是它们和音视频的业务结合的比较紧密,例如分析视频中的具体帧:鉴黄、插广告等等,以后音视频的应用必将是智能化的应用,所以很多的优化都和算法紧密相连,例如既可以和生产侧也可以和渲染侧结合的——视频超分,生产侧的超分会做得细致一点,渲染侧的超分就不能从整体视频的角度考虑,只能考虑视频的一部分,OpenCV中提供了很多视频和图片处理的方法,其实并不需要非常高深的算法功底,就可以做出令人惊艳的效果。

传输侧一直以来都非常火,因为音视频的本质是为了交流,你生产的音视频就是信息的载体,信息就是要被分享和处理的,所以传输是重要的一环,虽然现在的网络建设越来越好了,但是还是有很多弱网状态需要处理,RTC中需要解决的核心场景有:

  • 视频超分算法
  • RTC弱网对抗
  • RTC质量检测
  • AI智能降噪
  • 音视频通话

相关学习资源:

Android 音视频开发这块目前没有比较系统的教程或者书籍,网上的博客文章也都是比较零散的。只能通过一点点的学习和积累把这块的知识串联积累起来。

不少人在音视频初级入门过程中只是接触Android多媒体展示相关的API,通过单独的列举和使用这些API,只能让你对Android音视频处理有一个基本的轮廓,知识点都是零散的,根本没有有效的途径将所有知识点串联起来。

这样对于音视频的了解和控制就仅仅局限于最外层的API了,在深入学习之前,往往这些API就已经把脑袋都弄大了,而且,仅仅停留在使用API的层次,不能让你适应不断变化的需求。

如果最开始的方向都错了,那么不管你如何努力,都学不好音视频!

而如果是跟着正确的学习路线一步步深挖,那么一切都不是问题!

这里给大家推荐《音视频开发核心知识点笔记》,有需要的朋友们可以直接前往公号中:Android开发之家自行访问查阅。

音视频初级入门

  • Android 音视频开发(一):通过三种方式绘制图片
  • Android 音视频开发(二):使用 AudioRecord 采集音频PCM并保存到文件
  • Android 音视频开发(三):使用 AudioTrack 播放PCM音频
  • Android 音视频开发(四):使用 Camera API 采集视频数据
  • Android 音视频开发(五):使用 MediaExtractor 和 MediaMuxer API 解析和封装 mp4 文件
  • Android 音视频开发(六):MediaCodec API 详解
  • Android 音视频开发(七):音视频录制流程总结
  • ……

音视频中级进阶:OpenSL 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 响应触摸事件
  • Android OpenGL ES 开发(八): OpenGL ES 着色器语言GLSL
  • Android OpenGL ES 开发(九): OpenGL ES 纹理贴图
  • Android OpenGL ES 开发(十): 通过GLES20与着色器交互
  • ……

如果需要这份《音视频开发核心知识点笔记》,可以前往公号中:Android开发之家自行访问查阅。

音视频高级探究

音视频编解码技术

  • 音视频编解码技术(一):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中重要结构体之间的关系
  • ……
  • FFmpeg 开发之 AVFilter 使用流程总结
  • FFmpeg 过时 Api 汇总整理
  • ……

如果需要这份《音视频开发核心知识点笔记》,可以前往公号中:Android开发之家自行访问查阅。

相关文章

  • 音视频开发的四种技术栈突破方向

    视频、声音、图片是我们日常生活中最常见的三种数据载体,音视频主要处理的也是这三种数据。音视频完整的技术栈是关注这些...

  • 音视频技术栈思维导图

    分享一张音视频技术栈思维导图,希望对即将入行音视频开发领域的同学有帮助。

  • 关于未来规划

    关于未来规划 每半年更新一次 目前现状 毕业三年,两家公司工作经验目前在技术技术栈方向:Linux驱动开发音视频方...

  • 音视频采集学习笔记(一)

    前言 上一篇文章音视频开发的概念(音视频开发概念),这篇介绍音视频的采集的四种方式 (采集实现Demo) 系统封...

  • 01-整体生态概况

    技术栈概览 JavaScript & TypeScript 目前前端技术栈主要都使用 JavaScript 开发。...

  • day01 Spring起步

    一、后端开发的概念和技术栈 1.1 什么是后端开发? 后端开发 1.2 Java后端技术栈梳理 梳理 JAVA W...

  • Spring起步

    一、后端开发的概念和技术栈 1.1 什么是后端开发? 什么是后端开发 Java后端技术栈梳理 1.2 Java后端...

  • day01 spring起步

    一、后端开发的概念和技术栈 1.1后端开发 1.2技术栈 二、javaEE 2.1什么是javaEE JavaEE...

  • 音视频开发进阶—— DSP视频编解码

    前言 即时通讯应用中的实时音视频技术,几乎是IM开发中的最后一道高墙。原因在于:实时音视频技术 = 音视频处理技术...

  • 前后端分离式开发综述

    概述 本文包括:Vue开发技术栈简介;axios上传文件的方法举例;常见的前端错误码。 Vue开发技术栈简介 ...

网友评论

    本文标题:音视频开发的四种技术栈突破方向

    本文链接:https://www.haomeiwen.com/subject/kpypprtx.html