音视频开发,最新学习心得与感悟

news2024/11/25 4:54:41

音视频技术的知识海洋浩瀚无垠,自学之路显得尤为崎岖,技术门槛的存在是毋庸置疑的事实。

对于渴望踏入这一行业的初学者而言,学习资源的匮乏成为了一道难以逾越的障碍。

本次文章主要是给大家分享音视频开发进阶学习路线,虽然我之前写过,但是这次我会结合最新接触到不同层次的人来做一个总结分享!当然还是以入门为主,技术点都是当下企业要求必须要掌握的!

一、学习音视频的门槛高不高?

毋庸置疑,在音视频行业是有技术门槛的,同时学习资料(包括书籍之类的,非常少!)非常少,可以说,市面上系统的音视频书籍非常少,不信大家可以自行去各个网站搜索一下。

不止是书籍方面,连可用的工具都非常少。。。。

总之学习资料这块对新人来说,非常不友好!

二、音视频该怎么学习?

我个人认为,首先你得先对基本的音视频理论知识有基本的了解和掌握,比如说:

  • 1、什么是像素点、分别率?
  • 2、什么是帧率、码率?
  • 3、什么是rgb、yuv、pcm?

我这只是简单的列举了几个例子,这里面在工作当中会涉及到实际的工程问题,所以不展开讲,只是告诉你这些是必须要掌握的基础知识点。

接下来呢,给大家上一份音视频开发思维导图

三、还有哪些音视频知识点需要掌握?

1、流媒体协议:

面试或者实际工作当中,接触比较多的流媒体传输码流协议:

  • rtsp
  • rtmp

那我们该怎么去学习这些协议呢?

相信大部分人,一开始可能是先看理论知识,也就是看一些博客;恩,从我个人的角度来看,这个没有错的,但同时,我相信大部分刚开始学习的人,看完之后,还是一头雾水,或者你还是没有掌握到学习一个陌生的传输协议的共性:

  • 也就是协议头+协议体

恩,有了这个共性后,你可能还是雾水,因为一个协议里面,太多的知识点了,何况你是第一次学习,很陌生。

我们平时开发,对新东西的掌握,都是经历一个折腾期,才会领悟的更深。

所以对于我们学习的时候来说,特别是流媒体传输协议,我更加推荐抓包去学习传输协议,比如上面的编码rtsp代码案例,你可以用wireshark去抓包分析。

2、封装容器和h264:

这里我给一些常见的封装容器去学习:

  • flv
  • mp4
  • ts

然后是对码流进行编码和解码处理,这个肯定要先学习h264,这里主要是要掌握:

  • 什么是I、B、P帧?
  • NALU的码流结构
  • rtp对h264的打包方式的实现掌握,也就对h264裸流数据进行打包处理

我这里有很多细节没有说哈,这个只是给大家总结要重点要掌握的知识提纲,详细技术栈可以私信我拿。

多媒体开源库:

  • ffmpeg
  • gstreamer

这里我更推荐学习ffmpeg

v4l2:

如果你对底层的东西比较感兴趣的话,也可以学习Linux内核里面的v4l2:

最后:

给校招的小伙伴一句话:第一份工作不亚于一次高考,珍惜校招,社招的竞争是你目前想象不到的。能去大厂觉不妥协,IT行业第一份工作背景越好,起点越高,后续发展空间越好!

给那些1-3年的安于现状的伙伴一句话:

不要抱怨市场,不要安于现状,在低端,往中端领域看,在中端往高端领域看。认知以及对自身的要求,都会有所改变。

给那些担心35岁的伙伴一句话:

决定上限的不是年纪,而是技术。最后:希望学习路线对你有所帮助,希望码农的我们越来越好!

粉丝福利,博主耗时2个月整理了一份详细的音视频开发学习路线,涵盖了音视频开发FFmmpeg、流媒体客户端、流媒体服务器、WebRTC、Android NDK开发、IOS音视频开发等等全栈技术栈,并提供了配套的免费领取C++音视频学习资料包、技术视频/代码,内容包括(FFmpeg ,WebRTC ,rtmp ,hls ,rtsp ,ffplay ,编解码,推拉流,srs流媒体服务器,音视频通话等等)↓↓↓↓↓↓见下面↓↓文章底部点击免费领取↓↓

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1992708.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

三大口诀不一样的代码,小小的制表符和换行符玩的溜呀

# 小案例,打印输出加法口诀 for i in range(1,10):for j in range(1,10):if j>i:breakprint(f"{j}{i}{ji}".strip(),end\t)print() print(\n) for i in range(1,10):for j in range(1,10):if j>i:breakprint(f"{j}x{i}{j*i}",end\t)print…

[Spring] Spring AOP

🌸个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 🏵️热门专栏: 🧊 Java基本语法(97平均质量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 🍕 Collection与…

【Linux】sudo提升权限(入门)

相关专栏:《Linux》 目录 1. sudo功能介绍 2. 任何人都能用 sudo 吗? (1)查看配置文件/etc/sudoers (2)修改/etc/sudoers提权 3. 改变sudo输入密码时间 4. 显示sudo 密码 5.常见 sudo 命令 -k 参数 …

ajax part4

图片上传 <!DOCTYPE html> <lang"en"><head>cmeta charset"UTF-8><meta http-equiv"X-UA-Compatibleb content" IEedge"><meta name"viewportR content" wiclthdevic6-widths initial-scalel. 0"&…

做报表用什么工具?不想再用Excel了!!!

一、什么是中国式报表&#xff1f; 不知道大家现在还是使用Excel来制作报表&#xff0c;然后跟领导汇报工作吗&#xff1f;虽然Excel功能很强大&#xff0c;但是用Excel做过中国式报表的小伙伴一定知道它的制作过程有多复杂。 中国式报表可以用一句话简单概括&#xff1a;格式…

C++笔试强训11

文章目录 一、选择题1-5题6-10题 二、编程题题目一题目二 一、选择题 1-5题 A. 不是任何一个函数都可定义成内联函数&#xff1a;这是正确的。因为内联函数需要在编译时展开&#xff0c;如果函数体过大或包含复杂的控制结构&#xff08;如循环、递归等&#xff09;&#xff0c…

Linux/C 高级——分文件编程

1.头文件&#xff1a;.h结尾的文件 头文件引用、宏定义、重命名typedef、结构体、共用体、枚举的定义、函数声明、外部引用extern。 一般全局变量不会定义在头文件中 2.源文件&#xff1a;.c结尾的文件 包含main函数的.c文件&#xff1a;main函数 包含子函数的.c文件&#xff1…

【LLM】-17-会话存储

目录 1、会话存储类型 2、版本代码说明 3、对话缓存存储 3.1、示例代码 3.2、响应response说明 3.3、流式输出 3.4、添加提示词模板 3.5、指定回答语言 4、限制令牌数存储 4.1、trim_messages 4.1.1、自定义tokens计数器 4.1.2、自定义tokens计数器 4.2、完整chat…

HookNet- 用于病理全切片图像的多分辨率语义分割模型|顶刊精析·24-08-08

小罗碎碎念 今天分享的这篇文章是关于一种名为HookNet的新型语义分割模型&#xff0c;它专为病理学全切片图像设计&#xff0c;于2021年发表于《Med Image Anal》&#xff0c;目前IF10.7。 作者角色姓名单位&#xff08;中文翻译&#xff09;第一作者Mart van Rijthoven荷兰Ra…

Spring-boot 集成 SocketIO(看这一篇就够了)

1 前言 1.1 什么是 SocketIO ? Socket.IO 是一个可以在浏览器与服务器之间实现实时、双向、基于事件的通信的工具库。 Socket.IO 能够在任何平台、浏览器或设备上运行,可靠性和速度同样出色。 1.2 websocket和socket.io区别&#xff1f; websocket a&#xff1a;一种让客户…

video标签,去除上下默认边距

不知道为什么&#xff0c;video标签上下会有空白 清除方法 style"width 100%; height100%; object-fit: fill"

校园二手物品交易网站/校园闲置物品交易系统

摘 要 本文论述了校园二手物品交易网站的设计和实现&#xff0c;该网站从实际运用的角度出发&#xff0c;运用了计算机网站设计、数据库等相关知识&#xff0c;网络和JSP技术、SSM框架Mysql数据库设计来实现的&#xff0c;网站主要包括学生注册、学生登录、浏览商品、搜索商品…

Vue+Element Plus后台管理主界面搭建实现

​ 续接Django REST Framework&#xff0c;使用Vite构建Vue3的前端项目 1. 后台管理系统主界面框架搭建 后台系统主界面搭建 新建后台管理文件目录 完成后台整体布局 // 1.主界面 index.vue<script setup lang"ts"></script><template><el-…

应用层HTTP协议

文章目录 应用层HTTP协议1、HTTP协议概念2、URL&#xff08;统一资源定位符&#xff09;2.1、URL的encode&#xff08;编码&#xff09;和decode&#xff08;解码&#xff09; 3、HTTP请求和响应报头格式3.1、请求报头3.2、响应报头 4、HTTP的方法4.1、GET方法4.2、POST方法4.3…

生成模型VAE

VAE likelihood-basedELBOVAESGVB估计器和AEVB算法重参数化 likelihood-based likelihood-based generative models是生成模型的一类范式&#xff0c;通过最大化所有观测数据的似然函数来学习模型参数。 该怎么去理解likelihood-based&#xff0c;基于似然的生成模型&#xf…

互联网重构“规则制定权”,周期性谋咒开始轮转!

周期“魔咒”又开始轮转了。 产业趋势叠加资本周期&#xff0c;使得任何产业都有其周期性规律&#xff0c;传统资源产业是如此&#xff0c;科技产业亦非例外。 刚刚迎来30周年庆的中国互联网赛道就正处于新一轮小周期的节点。随着移动用户量逐渐被开发利用至阶段性顶峰&#…

学习c语言第24天(练习)

编程题 第一题 最大公约数最小公倍数求和 //求最大公约数和最小公倍数之和 //暴力求解 //int main() //{ // int n 0; // int m 0; // while (scanf("%d %d", &n, &m)2) // { // int min n < m ? n : m; // int max n > m ? n : m; //…

原神4.8版本角色数据

<!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>原神4.8版本角色数据</title><style>…

【浏览器插件】Chrome扩展V3版本

前言&#xff1a;Chrome从2022年6月开始&#xff0c;新发布插件只接受V3版。2024年V2版已从应用商店下架。 浏览器扩展插件开发API文档 chrome官网&#xff08;要翻墙&#xff09;&#xff1a; https://developer.chrome.com/docs/extensions/mv3 MDN中文&#xff1a;https:/…

gitee拉取项目,提交代码

1&#xff0c;安装git 2&#xff0c;gitee配置成员仓库权限 3&#xff0c;克隆项目 git clone gitgitee.com:sky474775788/Python_API_AUTO.git 4&#xff0c;配置用户信息 git config --global user.name 林俊xxx git config --global user.email ohnxxxsee1xxx.com 5&…