美文网首页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开发之家自行访问查阅。

    相关文章

      网友评论

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

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