导航

音视频流媒体高级开发课程

零声教育 Darren 2025年7月

课程购买地址 音视频高级开发课程

课程介绍和课程服务

本课程是零声教育推出的音视频流媒体高级开发课程,课程内容涵盖音视频基础、FFmpeg实战、流媒体客户端、WebRTC项目实战、嵌入式音视频开发、流媒体服务器、Android NDK开发等阶段。

课程适合人群

  • 从事音视频岗位开发的在职工程师
  • 从事嵌入式方向开发的在职工程师
  • 从事Qt/MFC等桌面开发的在职工程师
  • 从事Android/IOS移动开发的在职工程师
  • 从事C/C++后台开发的在职工程师
  • 计算机相关专业的在校生

授课方式和课程服务

  • 200+小时课程,每年有内容更新
  • 老师答疑 工作问题 课程问题
  • 简历梳理 技术点凸显 项目技术梳理
  • 模拟面试 技术表述 项目重点
  • 薪资谈判 福利争取 公司背调
  • offer选择 职业规划 技术前景

第一阶段:音视频基础

1.1 音频基础知识

  • 如何采集声音-模数转换原理
  • 为什么高品质音频采样率>=44.1Khz
  • 什么是PCM
  • 一个采样点用多少位表示
  • 采样值用整数还是浮点数表示
  • 音量大小和采样值大关系
  • 多少个采样点作为一帧数据
  • 左右通道的采样数据如何排列
  • 什么是PCM(脉冲编码调制)
  • 音频编码原理

1.2 视频基础知识

  • RGB彩色原理
  • 为什么需要YUV格式
  • 什么是像素
  • 分辨率、帧率、码率
  • YUV数据存储格式区别
  • YUV内存对齐问题
  • 为什么画面显示绿屏
  • H264编码原理
  • H264 I P B帧的关系

1.3 解复用基础知识

  • 什么是解复用,比如MP4格式
  • 为什么需要不同的复用格式MP4/FLV/TS
  • 常见的复用格式MP4/FLV/TS

1.4 FFmpeg开发环境搭建

  • Windows、Ubuntu、MAC三大平台
  • QT安装
  • FFmpeg命令行环境
  • FFmpeg API环境
  • FFmpeg编译
  • vs2019安装(win平台)

1.5 音视频开发常用工具

  • MediaInfo,分析视频文件
  • VLC播放器,播放测试
  • EasyICE,分析TS流
  • flvAnalyser,分析FLV
  • mp4box,分析mp4
  • audacity,分析音频PCM
  • Elecard_streamEye,分析H264
  • 海康YUVPlayer,分析YUV

第二阶段:FFmpeg实战

2.1 FFmpeg命令

  • 音频PCM/AAC文件提取
  • 视频YUV/H264文件提取
  • 解复用、复用
  • 音视频录制
  • 视频裁剪和合并
  • 图片/视频转换
  • 直播推流和拉流
  • 水印/画中画/九宫格滤镜

2.2 SDL跨平台多媒体开发库实战

  • SDL环境搭建
  • SDL事件处理
  • SDL线程处理
  • 视频YUV画面渲染
  • 音频PCM声音输出

2.3 FFmpeg基石精讲

  • FFmpeg框架
  • FFmpeg内存引用计数模型
  • 解复用相关AVFormat XXX等
  • 编解码相关AVCodec XXX等
  • 压缩数据AVPacket
  • 未压缩数据AVFrame
  • FFmpeg面向对象思想
  • Packet/Frame数据零拷贝

2.4 音视频解复用+解码

  • 解复用流程
  • 音频解码流程
  • 视频解码流程
  • FLV封装格式分析
  • MP4封装格式分析
  • FLV和MP4 seek有什么区别
  • 为什么FLV格式能用于直播
  • 为什么MP4不能用于直播
  • MP4能否用来做点播
  • AAC ADTS分析

2.5 音视频编码+复用合成视频

  • AAC音频编码
  • H264视频编码
  • PCM+YUV复用合成MP4/FLV
  • H264编码原理
  • IDR帧和I帧区别
  • 动态修改编码码率
  • GOP间隔参考值
  • 复用合成MP4音视频不同步问题
  • 编码、复用timebase问题
  • MP4合成IOS不能播放问题

2.6 FFmpeg过滤器

  • FFmpeg过滤chain框架
  • 音频过滤器框架
  • 视频过滤器框架
  • 多路音频混音amix
  • 视频水印watermark
  • 视频区域裁剪和翻转
  • 视频添加logo

2.7 ffplay播放器(开源项目实战)

  • 掌握ffplay.c的意义
  • ffplay框架分析
  • 解复用线程
  • 音频解码线程
  • 视频解码线程
  • 声音输出回调
  • 画面渲染时间间隔
  • 音频重采样
  • 画面尺寸格式变换
  • 音频、视频、外部时钟同步区别

2.8 FFmpeg+QT播放器实战

  • 播放器讲解
  • 播放器框架分析
  • 播放器模块划分
  • 解复用模块
  • 音视频解码
  • 播放器控制
  • 音视频同步
  • dxva2硬解
  • 音量频谱展示
  • 音频均衡器

2.9 ffmpeg多媒体视频处理工具

  • 掌握ffmpeg.c的意义
  • ffmpeg框架分析
  • 音视频编码
  • 封装格式转换
  • 提取音频
  • 提取视频
  • logo叠加
  • 音视频文件拼接
  • filter机制
  • 命令行解析流程

2.10 OBS二次开发-录制推流项目

  • OBS vs2019+QT5.15.2编译
  • 音频配置和初始化分析
  • 音频线程模块采集和编码分析
  • 视频配置和初始化分析
  • 视频线程模块采集和编码分析
  • OBS初始化过程分析
  • 录制流程分析
  • 麦克风采集分析
  • 桌面采集分析
  • X264编码分析

第三阶段:流媒体客户端

3.1 RTMP推拉流项目实战

  • RTMP协议分析
  • wireshark抓包分析
  • H264 RTMP封装
  • AAC RTMP封装
  • RTMP拉流实战
  • H264 RTMP解析
  • AAC RTMP解析
  • RTMP推流实战
  • 没有MetaData能否播放
  • RTMP推流是否会导致延迟

3.2 HLS拉流分析

  • HLS协议分析
  • HTTP协议分析
  • TS格式分析
  • m3u8文件解析
  • wireshark抓包分析
  • HLS拉流实战
  • FFmpeg HLS源码分析
  • HLS多码率机制
  • 如何解决HLS延迟高的问题

3.3 RTSP流媒体实战

  • RTSP协议分析
  • RTP协议分析
  • H264 RTP封装
  • H264 RTP解析
  • AAC RTP封装
  • AAC RTP解析
  • RTCP协议分析
  • RTSP流媒体服务器搭建
  • RTSP推流实战
  • RTSP拉流实战

第四阶段:WebRTC项目实战

4.1 WebRTC中级一对一音视频通话

  • WebRTC通话原理分析
  • WebRTC开发环境搭建
  • coturn最佳搭建方法
  • 如何采集音视频数据
  • 一对一通话时序分析
  • 信令服务器设计
  • SDP分析
  • Candidate类型分析
  • Web一对一通话
  • Web和Android通话

4.2 WebRTC高级-MESH模型多人通话

  • 自定义摄像头分辨率
  • 码率限制
  • 调整编码器顺序
  • Mesh模型多方通话分析
  • 多人通话信令服务器开发
  • 动态分配stun/turn服务器
  • Web客户端源码
  • Android客户端源码

4.3 WebRTC高级-Janus SFU模型多人通话

  • Janus框架分析
  • Janus信令设计
  • 基于Janus实现会议系统
  • Janus Web客户端源码分析
  • Janus Android客户端源码分析
  • Janus Windows客户端源码分析
  • 基于Full ICE的部署
  • 基于Lite ICE的部署
  • Full ICE和Lite ICE的区别
  • 发布订阅模型

第五阶段:嵌入式音视频开发

5.1 嵌入式驱动基础

5.1.1 快速掌握Linux驱动开发

  • Linux嵌入式驱动架构
  • Linux字符设备驱动分析
  • Linux字符设备驱动实践
  • Linux块设备驱动分析

5.1.2 Linux并发

  • 阻塞和非阻塞
  • 中断处理
  • 互斥量
  • 自旋锁

5.2 Linux嵌入式多路监控系统

5.2.1 架构分析和部署

  • 嵌入式多路监控架构分析
  • 部署C++后端服务
  • 部署rv1126设备端程序
  • 部署web远程查看实时画面

5.2.2 alsa驱动源码分析和应用实践

  • alsa架构分析
  • alsa驱动解析
  • alsa声音捕获实战
  • alsa声音播放实战
  • 最完善的alsa接口封装实践

5.2.3 v4l2源码分析和应用实践

  • v4l2架构分析
  • v4l2 rv1126架构
  • v4l2摄像头捕获实战
  • 最完善的v4l2接口封装实践

5.2 Linux嵌入式多路监控系统(续1)

5.2.4 FFmpeg 7.1 ARM交叉编译

  • 交叉编译x264
  • 交叉编译FFmpeg7.1
  • 移植到rv1126开发板
  • 裁剪ffmpeg

5.2.5 FFmpeg 7.1软件编码

  • ffmpeg h264编码
  • h264编码参数优化(延迟/cpu占用率/码率/编码质量)
  • ffmpeg aac编码

5.2.6 FFmpeg 7.1 RTMP推流

  • 推流队列设计
  • 时间戳平滑处理
  • 单纯音频推流测试
  • 单纯视频推流测试
  • 音视频推流测试

5.2 Linux嵌入式多路监控系统(续2)

5.2.7 rv1126硬件编码

  • vi架构分析
  • vi采集摄像头画面
  • venc架构分析
  • venc硬件编码

5.2.8 rv1126 AI人员检测

  • AI人员检测原理分析
  • rockx人员检测实战
  • 项目集成人员检测功能
  • 人员入侵提示

5.2.9 多路监控优化(面试必问)

  • 如何实时网络状况检测
  • 动态调整视频码率
  • 实现子码流推流
  • 音频降噪实践

5.3 智能门禁对讲系统

5.3.1 搭建基础框架和界面

  • 实现界面布局和样式
  • 添加基础控件和组件
  • 实现界面状态切换
  • 配置项目编译环境

5.3.2 实现视频预览功能

  • 实现V4L2Camera类
  • 实现VideoPreviewWidget组件
  • 集成视频预览到主界面
  • 优化视频显示性能
  • 添加视频参数配置

5.3.3 实现网络通信功能

  • 实现NetworkManager类
  • 实现DeviceRegistration类
  • 实现设备注册功能
  • 实现心跳保活机制
  • 添加网络状态监控

5.3 智能门禁对讲系统(续1)

5.3.4 实现音频对讲功能

  • 实现AudioManager类
  • 实现SipManager类
  • 集成PJSIP库
  • 实现SIP通话功能
  • 添加音频设备管理
  • RTP/RTCP音频传输

5.3.5 视频对讲功能

  • 视频采集和处理 (V4L2)
  • H.264硬件编码配置
  • RTP/RTCP视频传输
  • 音视频同步处理

5.3.6 实现门禁控制功能

  • 实现DoorController类
  • 实现GPIO控制
  • 实现开门记录管理
  • 添加安全验证机制
  • 集成到主界面

5.3 智能门禁对讲系统(续2)

5.3.7 业务服务器开发(C++实现)

  • C++网络库搭建
  • MySQL数据库
  • HTTP API服务
  • WebSocket推送服务

5.3.8 SIP服务器

  • Asterisk安装和配置
  • SIP用户账户配置
  • 呼叫路由规则设置
  • 音频编解码配置 (G.711)

5.3 智能门禁对讲系统(续3)

5.3.9 手机APP开发

  • Flutter项目搭建
  • 用户登录注册界面
  • 设备绑定功能
  • 远程开门功能
  • SIP客户端集成
  • 语音对讲界面
  • 通话控制功能
  • 音频处理优化

5.3.10 系统集成

  • 集成所有功能模块
  • 实现完整的业务流程
  • 添加异常处理机制
  • 性能优化和测试
  • 文档编写和整理

第六阶段:流媒体服务器

6.1 SRS 源码剖析

  • 整体框架分析
  • RTMP推流分析
  • RTMP拉流分析
  • HLS拉流分析
  • HTTP-FLV拉流分析
  • FFmpeg转码分析
  • 首屏秒开技术分析
  • forward集群源码分析
  • edge集群源码分析
  • 负载均衡部署方式

6.2 ZLMediaKit源码剖析

  • 整体框架分析
  • 线程模块划分
  • RTSP推流连接处理
  • RTSP拉流连接处理
  • 数据转发模型
  • SDP解析
  • RTP H264解析
  • RTP AAC解析

6.3 WebRTC高级开发-SRS篇

  • RTMP转发WebRTC逻辑
  • WebRTC转发RTMP逻辑
  • WebRTC音视频一对一通话
  • WebRTC多人通话
  • WebRTC SFU模型分析
  • SRTP分析
  • RTCP分析
  • SDP分析
  • NACK分析
  • stun分析

第七阶段:Android NDK开发

7.1 Android NDK开发基础

  • So库适配总结
  • GDB调试技巧
  • Makefile工程组织
  • CMake工程组织
  • 生成指定CPU平台的so库
  • JNI基础和接口生成
  • JNI Native层构建 Java 对象
  • JNI异常处理

7.2 Android FFmpeg编译和应用

  • 编译x264
  • 编译x265
  • 编译mp3
  • 编译fdk-aac
  • 编译FFmpeg
  • 使用ffmpeg实现mp4转格式
  • 使用FFmpeg开发播放器

7.3 Android RTMP推拉流

  • RTMP推流协议实现
  • RTMP拉流协议实现
  • RTMP拉流音视频同步
  • MediaCodec硬件编码
  • MediaCodec硬件解码
  • OpenSL ES播放音频数据
  • OpenGL ES Shader显示视频

7.4 Android Ijkplayer源码分析

  • 编译ijkplayer和实践
  • 项目框架分析
  • 播放状态转换
  • 拉流分析
  • 解码分析
  • 音频播放流程
  • 视频渲染流程
  • 变速播放实现原理
  • 低延迟播放实现
  • 缓存队列设计机制分析

课程核心项目展示

1.ffplay播放器

2.FFmpeg+QT播放器

3.ffmpeg多媒体视频处理工具

4.OBS二次开发-录制推流项目

5.RTMP推拉流项目实战

6.RTSP流媒体实战

7.WebRTC一对一通话

8.WebRTC Mesh模型多人通话

9.WebRTC SFU模型多人通话

10.RV1126多路视频监控

11.智能门禁对讲系统

12.Android RTMP推拉流

选择左侧项目查看详情

学员服务和就业展示

以下是我们部分学员的就业成果展示,涵盖各大知名企业的入职offer

更多学员就业信息 音视频学员offer
更多学员就业信息 音视频学员offer
课程购买地址 音视频高级开发课程