首页 » 软件开发 » 流媒体开发工程师的工作内容主要是做什么 ?(音视频开发流媒体学习音频)

流媒体开发工程师的工作内容主要是做什么 ?(音视频开发流媒体学习音频)

乖囧猫 2024-07-25 03:46:29 0

扫一扫用手机浏览

文章目录 [+]

很多大厂数年前就已经构建了各自的音视频底层框架,发展到现在底层框架层面是不是比较完善了,现在的需求是不是就只有 修bug、适配新协议 这些?

具体到业务上又会有哪些需求呢?

在大厂里流媒体/音视频工作到底需要做些什么?

流媒体开发工程师的工作内容主要是做什么 ?(音视频开发流媒体学习音频) 软件开发
(图片来自网络侵删)
一、音视频的本质

音视频的本质就是在极端复杂的网络情况下,充分利用终端硬件,给用户最好的音视频体验。

所以说,音视频的开发过程其实是一个追求极致的过程。

换句话说,如果你的业务有很多用户,是公司的主营业务,上面老板也非常重视这一块业务,那你能做的事情就会很多。

如果你的业务可做可不做,你连修bug、适配新协议这些工作都不用做。

其实很多初创公司都是拿webrtc直接编译,然后用接口封装下,就用于直播、视频通话了。

二、大厂的现状是怎么样的呢?

首先,当今的流媒体应用领域已经不仅仅局限于视频通话了,它面向的是音频通话、直播、极速直播(比如远程抓娃娃)、视频会议、在线教育、视频通话、互动白板等诸多业务场景或领域。

每个领域的用户痛点是不同的,所以底层框架并不是“很早就构建”。

要完整解决用户问题,在webrtc形成的音视频底层框架的基础上,轻则换组建,重则要重构。

比如你要应用于连麦直播,为了提升音频质量,至少音频编码要从opus换成aac吧。

至于重构,出于信息安全的考虑,我只能告诉你,这几个大厂的音视频底层框架其实都是经过重构过的。

接下来,我从流媒体涉及到的模块以及分工来展开讲述

现在的流媒体开发,已经不是几个人小作坊似的开发模式了,一般会按照模块进行部门或组的分工。

大体可以分为SDK组,主要职能是提供对外接口支持、对接指导以及业务层、逻辑层的维护;

音频组,主要工作分为音频工程开发、音频算法开发、音频传输开发。

其中,音频算法开发主要是实现特定业务场景或通用场景的音频前处理算法开发及优化、以及音频编解码协议、算法、实现的优化,音频传输开发主要是在jitbuffer,plc等技术基础上进行音频传输的优化,而音频工程开发主要是集成其他两部分同事的工作打包给SDK同事进行流媒体SDK的集成开发;

视频组,主要职能就是视频图像处理及视频编解码;

网络组,主要职能就是负责流媒体的传输模块,在保证延时的基础上提升流媒体的弱网抗性,这个模块里耳熟能详的技术有fec,arq,svc等等,其实也远远不限定于这些技术。

经过业务场景多元化和模块划分很细的讲解,你应该知道这里工作量很大了吧。

每个大厂的阶段不一样,业务不一样,这里不太好直接指明他们具体会有哪些工作,也涉及到人家信息安全的风险,只能说这里工作量很大,不然人家也不会招那么多人,而且还在继续招人。

为了让你初步了解这里的工作量,举个例子,比如音频采集。
你看起来是不是很容易。

但是实际上,现在大厂里面有一些人就是专门做这一块的,因为现实中设备很复杂,比如你要考虑蓝牙、麦克风、耳机等等不同设备的采集,兼容性问题突出;

其次,不同设备不同场景下的采集方式是不一样的,比如你用耳机采集,回声问题影响较小,如果你应用于直播场景,那你就要关掉硬件降噪,对软件3A进行适配,在不引入回声的基础上提升音质;

最后就是,Android里面,opensl和audiotrack,audiorecord不同设备不同场景下的选择也是一大难点。

三、关于日常工作“修Bug”,还是纠正一下。

对咱们做工程的来说,工作永远不可能是修Bug,即使产品或者技术再稳定,更不要把自己的工作局限为修Bug。

一旦一个音视频SDK接入的APP多了,用户规模上去了,整个SDK方方面面都是挑战,比如稳定性、性能优化、SDK本身质量、音视频体验上的优化。

即使你修一个Bug,也不会是一个单点问题,而是系统问题,你需要考虑对其他模块的影响,你需要考虑是否有一种通用的方案来系统解决同类型的问题,甚至你需要考虑解决了这个Bug之后怎么验证等等。

上面这些都是我们的日常工作。
除了日常工作,其他的需要思考的地方就更多了。

比如你要考虑排障成本、测试效率、服务成本(需要基于用户反馈找到ROI,以最小成本满足用户需求),也要考虑SDK的复用,如何快速赋能更多业务。

每个大厂阶段不一样,水平不一样,你的leader水平可能也不一样,这些你可能之前没有考虑过,但是实际上真正提升技术以及让你的SDK做的更好都是我们需要深刻思考的。

四、封神之路

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

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

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

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

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

这里给大家推荐《音视频开发核心知识点笔记》,有需要的朋友们可以直接私信我【音视频】即可免费领取!

音视频初级入门

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 着色器语言GLSLAndroid OpenGL ES 开发(九): OpenGL ES 纹理贴图Android OpenGL ES 开发(十): 通过GLES20与着色器交互……

如果需要这份《音视频开发核心知识点笔记》,直接私信我【音视频】即可免费领取!

音视频高级探究

音视频编解码技术

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

流媒体协议

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

多媒体文件格式

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

FFmpeg 学习

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

FFmpeg 学习(一):FFmpeg 简介FFmpeg 学习(二):Mac下安装FFmpegFFmpeg 学习(三):将 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 汇总整理……

如果需要这份《音视频开发核心知识点笔记》,直接私信我【音视频】即可免费领取!

相关文章

语言中的借用,文化交融的桥梁

自古以来,人类社会的交流与发展离不开语言的传播。在漫长的历史长河中,各民族、各地区之间的文化相互碰撞、交融,产生了许多独特的语言现...

软件开发 2025-01-01 阅读1 评论0

机顶盒协议,守护数字生活的新卫士

随着科技的飞速发展,数字家庭逐渐走进千家万户。在这个时代,机顶盒成为了连接我们与丰富多彩的数字世界的重要桥梁。而机顶盒协议,作为保...

软件开发 2025-01-01 阅读1 评论0

语言基础在现代社会的重要性及方法步骤

语言是人类沟通的桥梁,是社会发展的基础。语言基础作为语言学习的基石,对于个人、社会乃至国家的发展具有重要意义。本文将从语言基础在现...

软件开发 2025-01-01 阅读2 评论0

粤语电影,传承文化,点亮时代之光

粤语电影,作为中国电影产业的一朵奇葩,以其独特的地域特色、丰富的文化内涵和鲜明的艺术风格,赢得了广大观众的喜爱。本文将从粤语电影的...

软件开发 2025-01-01 阅读3 评论0

苹果游戏语言,塑造未来娱乐体验的基石

随着科技的飞速发展,游戏产业逐渐成为全球娱乐市场的重要支柱。在我国,游戏产业更是蓬勃发展,吸引了无数玩家和投资者的目光。而在这其中...

软件开发 2025-01-01 阅读1 评论0