前言
随着互联网基础设施的飞速发展,音视频技术已经成为我们日常生活中不可或缺的一部分。短视频、直播、视频会议、在线教育、在线医疗等应用的兴起,不仅极大地丰富了我们的信息获取方式,也对音视频技术提出了更高的要求。
音视频开发的现状与挑战
音视频开发的学习成本高,效率低,这是行业内的共识。
培养一个合格的音视频开发人员需要长期投入和时间,没有足够的实战经验和项目锻炼,很难达到企业的要求。
公司自己培养的音视频开发人才,尤其是高级开发人员,往往不会轻易流失,因为人才是企业的核心竞争力。即便他们跳槽,也通常是向更大的平台发展。
虽然学习的成本是高了一点,但是你一旦掌握音视频,你就会成为市场上炙手可热的人才。
音视频开发的多样性
而且音视频开发还涉及了对个专业方向可供你选择。
- 音视频传输:深入学习各种传输协议、信令控制、数据传输安全等,成为音视频传输领域的专家。
- 编解码技术:掌握H264、H265、VP8、AV1等视频编解码技术,以及PCM、G72x、ilbc等音频编解码技术,为视频质量的提升贡献力量。
- 特效处理:学习图形学知识,探索转码、美颜、滤镜、模糊处理、锐化处理等特效技术,为用户带来更加丰富的视觉体验。
- 服务端开发:搭建媒体服务器,学习音视频数据转发、信令数据处理、拉流、推流协议的处理等,成为服务端开发的中坚力量。
- 音视频格式:研究MP4、MVK、FLV、TS、RMVB、MP3、ogg等音视频数据格式封装,掌握数据格式的转换与优化。
- 开源库学习:深入学习FFMPEG、WebRTC、x264、live555等开源库,站在巨人的肩膀上,快速提升自己的开发能力。
如何学习音视频
音视频技术学起来并不容易,要懂的东西太多:音视频的采集、编码、传输、解码、渲染... 等等,网上也少见体系化的资料。
为了帮助大家能够系统的学习音视频,特地分享一份由字节内部大佬整理的音视频开发教程含面试题的资料,文章内容,图文代码结合,知识点讲解透彻,更易掌握,适合初/中学者以及转行的人学习。
音视频开发教程含面试题
第一章、WebRTC 发送方码率预估实现解析
- 1.基于延迟的拥塞控制原理
- 2.Pacing和包组
- 3.TransportFeedback RTCP报文
- 4.发送方码率预估
- 5.根据探测的网络情况, 预估码率
- 6.发送方码率预估的算法流程
第二章、码率控制基本概念
- 1.X264 中码率控制
- 2.X264 中关于 QP设置
第三章、Speex回声消除代码分析
第四章、房间声学原理与Schroeder混响算法实现
第五章、H264系列--压缩编码技术
- 1.宏块
- 2.帧分组(即GOP)
- 3.运动估计与运动补偿
- 4.帧内压缩(这部分也看不懂,后面补充)
- 5.帧内预测,计数残差值
第六章、RTSP 媒体协议流的录制方案及其覆盖策略详解
- 1.录制视频格式调研
- 2.录制方案选择
- 3.异常处理
- 4.覆盖策略
第七章、webrtc建立连接之ICE框架
- 1.ICE介绍
- 2.ICE架构
- 3.ICE基本功能
- 4.连通性检查
第八章、流媒体协议介绍(rtp/rtcp/rtsp/rtmp/mms/hls)
- 1.RTP
- 2.RTCP
- 3.SRTP & SRTCP
- 4.RTSP
第九章、音视频同步原理及实现
- 1.音视频同步简单介绍
- 2.DTS和PTS简介
- 3.常用同步策略
- 4.音视频同步简单示例代码
第十章、直播概念和流程框架
- 1.直播初始
- 流媒体(直播需要用到流媒体)
- 直播基础知识介绍
- 4 如何快速的开发一个完整的直播app
第十一章、CDN在直播中的运用
- 1.CDN技术原理
- 2.CDN的常用架构
- 3.采用CDN的缺点
第十二章、常见音视频编码格式
- 1.常见的音频编码格式
- 2.各种编码比较
- 3.常见的视频编码格式
第十三章、H.264官方软件JM源代码分析-编码器lencod
- 1.函数调用关系图
- 2.下面解释一下图中关键标记的含义。
- 3.下文记录结构图中几个关键的部分。
第十四章、H.264官方软件JM源代码分析-解码器ldecod
- 1.函数调用关系图
- 2.普通内部函数
- 3.解析函数(Parser)
- 4.熵解码函数(Entropy Decoding)
- 5.解码函数(Decode)
第十五章、Android 音视频技术
- 1.整体流程
- 2.数据采集
- 3.数据处理
- 4.数据编码
第十六章、Web前端WebRTC攻略-媒体协商与SDP简析
- 1.媒体协商
- 2.SDP
- 3.参考文章
第十七章、基于FFmpeg的AVfilter的例子-纯净版
- 1.流程图
- 2.代码
- 3.结果
- 4.下载
第十八章、WebRTC 传输安全机制第二话:深入显出 SRTP 协议
- 1.要解决的问题
- 2.SRTP/SRTCP结构
- 3.Key管理
- 4.序列号管理
第十九章、WebRTC能给我带来什么?
第二十章、视音频数据处理:RGB、YUV像素数据处理
- 1.函数列表
- 2.项目主页
第二十一章、视音频数据处理:PCM音频采样数据处理
- 1.函数列表
- 2.项目主页
第二十二章、视音频数据处理:H.264视频码流解析
第二十三章、视音频数据处理:AAC音频码流解析
第二十四章、视音频数据处理:FLV封装格式解析
- 1.原理
- 2.代码
- 3.结果
- 4.项目主页
第二十五章、视音频数据处理:UDP-RTP协议解析
- 1.原理
- 2.代码
- 3.结果
- 4.项目主页
第二十六章、如何生成mp4文件
- 1.创建文件
- 2.写入视频数据
- 3.结束
- 4.代码
第二十七章、ffmpeg滤镜的基本使用
- 1.滤镜
- 2.简单滤镜
- 3.复杂滤镜
第二十八章、webRTC是如何实现音视频的录制
- 1.什么是webRTC
- 2.webRTC音视频数据采集
- 3.webRTC获取约束
第二十九章、音视频同步算法
- 1.ffplay简介
- 2.为什么要做音视频同步
- 3.音视频同步算法
- 4.音视频时间偏差计算
第三十章、房间声学原理与Schroeder混响算法实现
第三十一章、一个频域语音降噪算法实现及改进方法
第三十二章、HEVC官方软件HM源代码分析-编码器TAppEncoder
- 1.函数调用关系图
- 2.普通内部函数
- 3.CU编码函数
- 4.熵编码函数
第三十三章、HEVC官方软件HM源代码分析-解码器TAppDecoder
- 1.函数调用关系图
- 2.普通内部函数
- 3.解析函数(Parser)
- 4.熵解码函数(Entropy Decoding)
第三十四章、音视频编解码常用知识点
- 1.视频播放器原理
- 2.流媒体协议
- 3.封装格式(容器)
- 4.编解码
第三十五章、微信小程序集成实时音视频通话功能
- 1.背景
- 2.腾讯云——实时音视频
- 3.使用前提
- 4.快速入门
第三十六章、视音频编解码技术零基础学习方法
- 1.生活中的视音频技术
- 2.视频播放器原理
- 3.流媒体协议
- 4.封装格式
第三十七章、RTSP协议学习
- 1.RTSP简介
- 2.RTSP和HTTP RTP(RTCP)的关系
- 3.简单的rtsp交互过程
- 4.RTSP中常用方法
第三十八章、HEVC码流分析
第三十九章、H.264简单码流分析
第四十章、MPEG2简单码流分析
第四十一章、视频码流分析工具
第四十二章、视音频编解码学习工程:H.264分析器
- 1.项目主页
- 2.软件使用介绍
- 3.软件源代码简析
第四十三章、FFmpeg架构之I/O模块分析
- 1.概述
- 2.相关数据结构介绍
第四十四章、[Video and Audio Data Processing] UDP-RTP协议解析
- 1.概念
- 2.代码
第四十五章、RTSP协议实例分析
- 1.前言
- RTSP的请求方法
- RTSP的实例抓包分析
- RTP音视频数据的载体
第四十六章、RTSP协议之TCP/UDP问题
- 1.前言
- 2.RTSP之TCP与UDP方式区别
- 3.总结
第四十七章、ffplay工具命令使用技巧
- 1.前言
- 2.使用技巧
- 3.番外篇
- 4.总结
第四十八章、VLC RTSP网络串流播放失败
- 1.问题描述
- 2.解决方法
- 3.解决效果
第四十九章、RTMP协议详解
- 1.RTMP协议介绍
- 2.包结构
- 3.握手
- 4.发送顺序
第五十章、STUN 原理理解
- 1.STUN简介
- 2.为什么需要STUN?
- 3.STUN主要功能
- 4.stun 的NAT 类型探测流程
开源框架
- 实时音视频开源项目
- 其他音视频开源项目
实践项目
- 音视频通话项目
- Android/iOS视频播放器
- 仿网易云音乐安卓版客户端
- ........
有需要以上的朋友可以关注一下哇哇,以上都可以分享!!!