知识点概要音视频基础知识开发环境支持 WIN/LINUX/MAC 三大平台FFmpeg 命令FFmpeg APIFFmpeg 播放器FFmpeg 转码器RTMP/RTSP/HLS/HTTP-FLV 流媒体客户端开 发SRS 流媒体服务器源码分析WebRTC 一对一通话WebRTC 多人通话Janus SFU(WebRTC)服务器源码分析1、音视频基础知识基础知识:PCM 格式、编码原理等YUV 格式、IPB 帧原理等Ffmpeg 环境搭建:掌握Windows 平台、Linux 平台、 MAC 平台 三个平台的搭建常用工具:MediaInfo2、FFmpeg 命令学习2.1 命令帮助如何查询 Ffmpeg 命令帮助 Ffmpeg 命令分类2.2 ffplay 命令ffplay 播放控制ffplay 播放 pcm 、yuv 、使用 filter 2.3 ffmpeg 命令pcm 、yuv 、aac、h264提取视频录制命令多媒体文件的分解/复用命令裁剪与合并命令图片/视频互转命令直播相关命令各种滤镜命令3、FFmpeg 编程实战3.1 音视频渲染实战SDL 环境搭建 、事件处理 、线程处理YUV 视频播放实战PCM 声音播放实战3.2 FFmpeg APIFFmpeg 框架分析 、内存模型分析、常用结构体3.3 音视频编解码FFmpeg 解码流程分析AAC、H264 编解码原理AAC、H264 解码实战MP3 转 AAC 实战3.4 音视频封装格式FLV、MP4 封装格式分析 封装格式分析多媒体解复用实战多媒体复用实战多媒体转封装格式实战音频重采样视频尺寸变换3.5 音视频过滤器音视频过滤器视频过滤器过滤器实际项目实现3.6 ffplay 播放器掌握 ffplay.c 的意义ffplay 框架分析音视频解码 、控制 、同步参数机制3.7 播放器开发实战播放器框架分析模块划分音视频解码播放器控制音视频同步3.8 ffmpeg 录制转 码掌握 ffmpeg.c 的意义ffmpeg 框架分析 音视频编码封装格式转换提取音频 、视频 logo 叠加 音视频文件拼接 filter 机制4、流媒体客户端实战4.1 RTMP 流媒体RTMP 协议分析wireshark 抓包分析H264 RTMP 、AAC RTMP封装RTMP 拉流实战H264 RTMP 、AAC RTMP解析RTMP 推流实战4.2 HLS 流媒体HLS 、HTTP协议、TS 格式分析 、wireshark 抓包、FFmpeg HLS 源码分析HLS 拉流实战、多码率机制4.3 HTTP-FLV 流媒体HTTP-FLV 协议分析 、wireshark 抓包分析 、http chunk 机制分析HTTP-FLV 拉流实战FFmpeg HTTP-FLV 源码分析4.4 RTSP 流媒体实战RTSP 、RTP、RTCP协议分析H264 RTP封装、 解析AAC RTP封装 、解析RTSP流媒体服务器搭建、推流、拉流实战wireshark 抓包分析FFmpeg视频私信获取、备注FFmpeg资料。5、SRS 流媒体服务器SRS 4.0 源码剖析整体框架分析RTMP 推流分析、拉流分析HLS 拉流分析HTTP-FLV 拉流分析FFmpeg 转码分析首屏秒开技术分析forward 集群源码分析edge 集群源码分析负载均衡部署方式6、WebRTC 实战6.1 WebRTC 中级开发WebRTC 通话原理分析WebRTC 开发环境搭建coturn 最佳搭建方法如何采集音视频数据一对一通话时序分析信令服务器设计SDP 分析Candidate 类型分析Web 一对一通话Web 和 Android 通话AppRTC 快速演示6.2 WebRTC 高级开发自定义摄像头分辨率码率限制调整编码器顺序Mesh 模型多方通话Janus 框架分析Janus Web、Android、Windows客户端源码分析Janus 信令设计基于 Janus 实现会议系统WebRTC 源码编译拥塞控制算法FEC jitter buffer6.3 Janus 服务器源码分析源码结构插件机制线程分析信令交互过程videoroom 分析sdp、rtp、srtp、rtcp 、stun、turn 分析7、Android NDK 开发音视频开发So 库适配总结JNI Native 层构建 Java 对象JNI 异常处理编译 FFmpeg、ijkplayer基于 ijkplayer 二次开发OpenSL ES 播放音频数据MediaCodec 硬件解码OpenGL ES Shader 显示视频RTMP 推流直播ps:音视频学习知识体系