这套资料的主题非常明确:Android 端的音视频流媒体开发,但它没有把视野局限在 Android SDK 的 MediaCodec 和 Camera2 上,而是把整条链路从 Linux 服务器一直铺到客户端。对于已经能写普通业务 App、但一碰到推流、拉流、RTP/RTCP、SDP 协商就卡壳的开发者来说,这种「服务器 + 协议 + 客户端」三层并行的结构,比只看一份 Android 播放器 Demo 要有参考价值得多。

技术栈覆盖了什么

从资料包的组织方式看,它把流媒体开发拆成了几条相对独立又互相咬合的线:Linux 网络编程基础、UDP 音视频传输、RTMP、RTSP、H264/AAC 封装 MP4、P2P 点对点,以及 WebRTC 全平台的 C++ 实现,最后落到 Android 客户端的集成。这里面有两条主线值得注意。

一条是「传统流媒体协议栈」:RTMP 负责推流,RTSP 负责实时流控制,UDP 承担低延迟传输,MP4 封装解决落盘和回放。这条线是过去十年直播、监控、视频会议里最常见的组合,理解它之后,看市面上大多数开源播放器(如 ijkplayer、ExoPlayer 的 RTSP 扩展)源码会顺畅很多。

另一条是「WebRTC 全平台 C++ 开发」。WebRTC 本身是一套庞大的 C++ 工程,涉及信令、ICE、DTLS、SRTP、拥塞控制等,把它单独列出来,说明这份资料不是停留在调用 Android 端 WebRTC SDK 的层面,而是希望读者能接触 native 层的实现逻辑。这一点对想做跨端音视频或自研传输层的人比较关键。

可复用的工程模块

音视频开发最怕「每个项目都从零造轮子」。这套资料里反复出现的几个模块,本身就具备复用价值:

  • Linux 多用户并发流媒体服务器:涉及 epoll/select 模型、连接管理、多路流分发,是理解并发服务器设计的现成样本。
  • UDP 音视频传输:包含分包、组包、抖动缓冲、丢包重传的思路,可以直接迁移到自研低延迟场景。
  • H264 与 AAC 封装 MP4:这是录制、点播、存档功能的核心,封装逻辑与具体业务无关,抽出来就能用。
  • P2P 点对点:涉及 NAT 穿透、STUN/TURN 的基本思路,对做互动直播或远程控制的开发者有直接帮助。

这些模块的共同点是「边界清晰、输入输出明确」,适合拿来对照自己项目里的实现,而不是照着敲一遍就丢。

和纯看视频的区别

音视频开发有一个特点:光看视频里讲「RTP 包结构」很容易懂,但真到自己抓包分析、处理时间戳回绕、处理关键帧丢失时,就会发现细节全在代码里。这份资料的价值不在于「讲了多少理论」,而在于它把服务器、协议、封装、客户端这些环节都留下了可对照的实现。建议的使用方式是:先挑一条协议线(比如 RTMP 推流),把服务器端和 Android 端的代码对照着跑通,再用抓包工具验证一遍,最后回头补 RTSP 或 WebRTC。这样每学一块就能立刻验证,而不是积累一堆没消化完的概念。

适合谁来对照实践

如果你已经有 Android 开发经验,能独立完成网络请求、多线程、JNI 调用,那么这套资料可以帮你补齐「传输层和协议层」的认知缺口。如果你已经在做音视频相关功能,但一直是调用现成 SDK,那么 Linux 服务器和 WebRTC C++ 这两块能让你从「会用」往「知道为什么这么用」走一步。需要提醒的是,音视频本身涉及网络、编解码、操作系统多个层面,这套资料更适合当作对照实践的参考,而不是一条可以无脑刷完的线性课程。挑自己项目里最缺的那一环先动手,收益会比从头到尾看一遍更明显。

Android 音视频流媒体 开发专家班

深度解析Android音视频流媒体开发

编辑点评

系统讲解Linux流媒体服务器开发,涵盖UDP和WebRTC技术,适合有音视频开发需求的专业人士。

⭐ 编辑推荐

本课程深入解析Android音视频流媒体开发,从Linux服务器到WebRTC全平台,助你成为流媒体开发专家。

✨ 课程亮点

✦Linux流媒体服务器开发
✦UDP音视频传输
✦WebRTC全平台C++开发

课程目录

📁 Linux多用户流媒体并发服务器开发
    013.13 线程Detach封装.mp4  [19.6 MB]
    002.02 x264编码.mp4  [31.1 MB]
    043.43 高性能select epoll.mp4  [62.2 MB]
    034.34 并发多用户缓存队列.mp4  [29.9 MB]
    032.32 linux视频采集与编码.mp4  [37.1 MB]
    038.38 并发多用户视频转发.mp4  [32.5 MB]
    020.20 流媒体服务器跨平台开发.mp4  [69.2 MB]
    028.28 心跳包与客户端状态.mp4  [78.3 MB]
    004.04 x264编码实现.mp4  [46.0 MB]
    044.44 流媒体服务器开发总结.mp4  [58.6 MB]
    017.17 客户端线程库.mp4  [36.9 MB]
    040.40 流媒体服务器客户端测试.mp4  [45.0 MB]
    026.26 更复杂的协议.mp4  [37.5 MB]
    042.42 再看心跳包.mp4  [61.0 MB]
    010.10 接受客户端连接.mp4  [50.9 MB]
    022.23 send recv返回值详解.mp4  [30.9 MB]
    009.09 函数头文件详解.mp4  [35.7 MB]
    001.01 V4L视频采集.mp4  [32.7 MB]
    031.31 摄像头视频采集问题.mp4  [44.4 MB]
    029.29 视频采集编码.mp4  [78.2 MB]
    007.07 套接字选项与大小端.mp4  [33.7 MB]
    041.41 流媒体服务器资源释放问题.mp4  [67.7 MB]
    025.25 网络通讯协议子节对齐.mp4  [34.6 MB]
    006.06 流媒体服务器start.mp4  [78.0 MB]
    039.39 客户端音视频接收实现.mp4  [52.0 MB]
    008.08 网络32位IP地址.mp4  [26.3 MB]
    027.27 数据包发送.mp4  [81.1 MB]
    018.18 非阻塞connect模式.mp4  [23.0 MB]
    011.11 信号优雅结束服务器.mp4  [46.7 MB]
    015.15 创建客户端.mp4  [54.7 MB]
    037.37 缓存队列实现.mp4  [32.7 MB]
    019.19 select函数IO复用.mp4  [30.4 MB]
    012.12 流媒体服务器客户端处理.mp4  [40.5 MB]
    023.22 非阻塞数据接收封装.mp4  [42.5 MB]
    003.03 Linux流媒体服务器项目.mp4  [56.6 MB]
    005.05 Linux流媒体服务器开发.mp4  [37.3 MB]
    014.14 服务器读写线程.mp4  [22.3 MB]
    024.24 什么是通讯协议.mp4  [55.4 MB]
    016.16 客户端建立连接.mp4  [38.2 MB]
    035.35 百万级可伸缩视频服务器.mp4  [34.3 MB]
    045.45 音视频流媒体整个流程.mp4  [35.2 MB]
    033.33 大规模视频转发.mp4  [56.5 MB]
    036.36 转发服务器架构实现.mp4  [21.5 MB]
    030.30 摄像头采集.mp4  [27.1 MB]
    021.21 非阻塞发送函数封装.mp4  [16.4 MB]
📁 Linux流媒体开发UDP篇
    016.16 深入网络通讯协议22 UDP音视频传输15.mp4  [171.0 MB]
    011.11 深入网络通讯协议17 UDP音视频传输10.mp4  [97.6 MB]
    026.26 深入网络通讯协议34 UDP音视频传输27.mp4  [83.0 MB]
    022.22 深入网络通讯协议28 UDP音视频传输21.mp4  [99.7 MB]
    015.15 深入网络通讯协议21 UDP音视频传输14.mp4  [72.4 MB]
    012.12 深入网络通讯协议18 UDP音视频传输11.mp4  [111.0 MB]
    003.03 深入网络通讯协议UDP 02.mp4  [46.3 MB]
    007.07 深入网络通讯协议 06 win socket.mp4  [124.2 MB]
    010.10 深入网络通讯协议16 UDP音视频传输09.mp4  [101.5 MB]
    018.18 深入网络通讯协议24 UDP音视频传输17.mp4  [125.0 MB]
    017.17 深入网络通讯协议23 UDP音视频传输16.mp4  [132.8 MB]
    005.05 深入网络通讯协议UDP 04 丢帧问题.mp4  [74.9 MB]
    001.01 深入网络通讯开发UDP概览.mp4  [24.3 MB]
    009.09  深入网络通讯协议08 UDP可靠性传输框架.mp4  [27.8 MB]
    013.13 深入网络通讯协议19 UDP音视频传输12.mp4  [147.2 MB]
    021.21 深入网络通讯协议27 UDP音视频传输20.mp4  [145.7 MB]
    004.04 深入网络通讯协议UDP 03 分包.mp4  [79.6 MB]
    029.29 深入网络通讯协议37 UDP音视频传输30.mp4  [45.5 MB]
    025.25 深入网络通讯协议33 的UDP音视频传输26.mp4  [134.2 MB]
    006.06 深入网络通讯协议UDP 05 分包算法详解.mp4  [95.8 MB]
    024.24 深入网络通讯协议32 UDP音视频传输25.mp4  [79.2 MB]
    023.23 深入网络通讯协议29 UDP音视频传输22.mp4  [85.0 MB]
    027.27 深入网络通讯协议35 UDP音视频传输28.mp4  [65.7 MB]
    014.14 深入网络通讯协议20 UDP音视频传输13.mp4  [92.3 MB]
    002.02 深入网络通讯协议UDP 01.mp4  [56.1 MB]
    019.19 深入网络通讯协议25 UDP音视频传输18.mp4  [195.8 MB]
    008.08 深入网络通讯协议07 高效可靠的UDP.mp4  [71.6 MB]
    020.20 深入网络通讯协议26 UDP音视频传输19.mp4  [125.3 MB]
    028.28 深入网络通讯协议36 UDP音视频传输29.mp4  [76.4 MB]
📁 WebRTC全平台C++开发
    039.39 WebRTC iOS客户端真机.mp4  [78.7 MB]
    014.14 Janus服务器Android客户端.mp4  [60.9 MB]
    024.24 WebRTC信令交互流程.mp4  [67.3 MB]
    001.01 WebRTC开发实战.mp4  [37.1 MB]
    021.21 WebSocket库.mp4  [50.6 MB]
    036.36 WebRTC Linux P2P点对点通讯.mp4  [156.7 MB]
    042.42 WebRTC 各平台的移植问题.mp4  [101.2 MB]
    033.33 WebRTC 视频渲染.mp4  [61.9 MB]
    013.13 Janus服务器iOS客户端.mp4  [27.9 MB]
    026.26 WebRTC Linux Qt 02.mp4  [104.3 MB]
    012.12 Janus服务器插件和资源.mp4  [38.9 MB]
    037.37 WebRTC VC客户端.mp4  [76.6 MB]
    046.46 FEC和JitterBuffer.mp4  [46.6 MB]
    035.35 WebRTC 用OpenGL渲染.mp4  [68.4 MB]
    045.45 Janus跨区域视频服务.mp4  [69.7 MB]
    008.08 janus服务器搭建03.mp4  [107.2 MB]
    017.17  编译webrtc时的版本问题.mp4  [28.5 MB]
    028.28 WebRTC Qt信号槽冲突问题.mp4  [29.9 MB]
    027.27 WebRTC Qt 配置.mp4  [58.8 MB]
    004.04 快速搭建信令服务器.mp4  [59.3 MB]
    006.06 janus服务器搭建01.mp4  [108.6 MB]
    019.19 WebRTC编译头文件库文件.mp4  [69.5 MB]
    016.16 WebRTC编译.mp4  [69.4 MB]
    002.02 WebRTC技术.mp4  [72.8 MB]
    031.31 WebRTC 信令websocket实现.mp4  [62.9 MB]
    044.44 Janus百万级可扩展开发.mp4  [30.9 MB]
    030.30 WebRTC 交互流程接口02.mp4  [51.2 MB]
    007.07 janus服务器搭建02.mp4  [70.4 MB]
    022.22 建立WebSocket连接.mp4  [59.7 MB]
    043.43 WebRTC 成功应用的案例.mp4  [90.8 MB]
    011.11 WebRTC整套服务开发要点.mp4  [42.1 MB]
    015.15 WebRTC源码编译中的各种问题.mp4  [50.7 MB]
    018.18 WebRTC超过10G的代码下载.mp4  [35.9 MB]
    034.34 WebRTC 开发中的各种问题.mp4  [83.8 MB]
    005.05 阿里云以及VPS.mp4  [75.5 MB]
    020.20 WebRTC静态库.mp4  [68.3 MB]
    032.32 WebRTC 本地视频采集.mp4  [80.5 MB]
    038.38 WebRTC 安卓客户端真机.mp4  [116.0 MB]
    023.23 C++基础与WebRTC.mp4  [8.6 MB]
    009.09 ICE P2P打洞服务器部署的坑.mp4  [126.1 MB]
    025.25 WebRTC Linux Qt 01.mp4  [80.4 MB]
    029.29 WebRTC 交互流程接口01.mp4  [65.6 MB]
    003.03 WebRTC服务器选择.mp4  [45.0 MB]
    040.40 WebRTC 视频会议服务器架构.mp4  [51.5 MB]
    010.10 Janus服务器加密签名证书.mp4  [109.7 MB]
    041.41 WebRTC C++ SDP信令交互.mp4  [31.2 MB]
📁 RTMP流媒体开发
    005.05 libRtmp建立连接.mp4  [22.5 MB]
    002.02 RTMP服务器SRS搭建.mp4  [48.0 MB]
    014.14 RTMP优化总结.mp4  [54.8 MB]
    009.09 发送SPS PPS的RTMP包.mp4  [37.2 MB]
    003.03 RTMP协议及握手.mp4  [31.8 MB]
    008.08 H264解析SPS PPS.mp4  [39.1 MB]
    012.12 FLV格式.mp4  [46.1 MB]
    004.04 RTMP协议chunk.mp4  [55.7 MB]
    013.13 RTMP测试运行.mp4  [40.4 MB]
    010.10 H264组RTMP包发送.mp4  [33.7 MB]
    011.11 发送AAC数据的RTMP包.mp4  [31.8 MB]
    007.07 AAC编码.mp4  [49.8 MB]
    006.06 H264数据编码.mp4  [29.2 MB]
    001.01 RTMP技术概览.mp4  [31.5 MB]
📁 P2P点对点开发实战
    007.07 P2P点对点音视频传输框架04.mp4  [58.5 MB]
    003.03 NAT穿透_UDP打洞.mp4  [37.1 MB]
    001.01 P2P点对点音视频传输概览.mp4  [21.5 MB]
    004.04 P2P点对点音视频传输框架01.mp4  [17.1 MB]
    002.02 NAT类型.mp4  [33.1 MB]
    005.05 P2P点对点音视频传输框架02.mp4  [19.6 MB]
    009.09 P2P点对点音视频传输框架06.mp4  [34.5 MB]
    011.11 P2P点对点音视频传输框架08.mp4  [42.5 MB]
    008.08 P2P点对点音视频传输框架05.mp4  [51.0 MB]
    010.10 P2P点对点音视频传输框架07.mp4  [31.4 MB]
    006.06 P2P点对点音视频传输框架03.mp4  [43.0 MB]
📁 Linux网络编程基础
    018.11 socket通讯编程概览.mp4  [32.6 MB]
    010.03 ubuntu开发环境.mp4  [45.7 MB]
    001.Android 课程介绍.mp4  [18.1 MB]
    008.01 操作系统API以及区别.mp4  [20.3 MB]
    023.16 滑动窗口算法.mp4  [22.9 MB]
    004.2023更新 第一个JNI程序 使用最新AndroidStuido.mp4  [48.8 MB]
    013.06 Linux编程之信号.mp4  [27.3 MB]
    005.2023更新 第一个FFmpeg JNI程序使用最新AndroidStuido.mp4  [49.8 MB]
    021.14 TCP三次握手.mp4  [17.5 MB]
    012.05 Linux多线程.mp4  [19.7 MB]
    002.Android 学习注意事项.mp4  [3.4 MB]
    022.15 深入TCP协议栈.mp4  [42.2 MB]
    006.2023更新 升级到最新AndroidStudio打开课程源码需要注意的问题.mp4  [12.4 MB]
    015.08 CMake详解.mp4  [51.9 MB]
    007.20231124项目迁移到最新Android studio 最新FFmpeg.mp4  [62.0 MB]
    017.10 磁盘读写音频采集.mp4  [71.2 MB]
    016.09 文件读写IO.mp4  [28.5 MB]
    019.12 socket通讯函数详解.mp4  [30.3 MB]
    014.07 linux线程锁.mp4  [11.3 MB]
    020.13 TCP与UDP的应用.mp4  [72.0 MB]
    011.04 进程与子进程.mp4  [22.9 MB]
    003.2023更新从0开始搭建最新AndroidStudio开发环境.mp4  [103.9 MB]
    009.02 参考书和Ubuntu环境.mp4  [15.7 MB]
📁 Android音视频流媒体客户端开发
    003.03 NDK与OpenGLES3.0.mp4  [38.8 MB]
    012.12 解码与FFmpeg子节对齐.mp4  [68.0 MB]
    019.19 渲染模式和JNI调用java.mp4  [82.3 MB]
    015.15 GLM数学库.mp4  [19.2 MB]
    005.05 Java与JNI层传参与用途.mp4  [40.7 MB]
    016.16 OpenGLES渲染类.mp4  [37.1 MB]
    011.11 FFmpeg解码H264.mp4  [61.7 MB]
    001.01 从0构建安卓流媒体客户端.mp4  [38.0 MB]
    007.07 安卓网络通讯客户端.mp4  [33.1 MB]
    010.10 FFmpeg解码初始化.mp4  [50.9 MB]
    006.06 Linux通讯代码移植安卓.mp4  [82.7 MB]
    014.14 C++回调函数.mp4  [45.7 MB]
    004.04 添加NDK接口.mp4  [48.0 MB]
    021.21 网络通讯流媒体职业规划.mp4  [33.5 MB]
    008.08 视频流接收.mp4  [42.7 MB]
    002.02 CMake构建整个项目.mp4  [127.6 MB]
    020.20 项目练习以及总结.mp4  [29.7 MB]
    009.09 CMake配置FFmpeg库.mp4  [30.6 MB]
    013.13 解码后的YUV数据.mp4  [50.1 MB]
    017.17 YUV转RGB shader.mp4  [45.9 MB]
    018.18 OpenGL与Socket线程.mp4  [51.7 MB]
📁 RTSP流媒体开发
    007.07 创建RTSP项目.mp4  [21.0 MB]
    008.08 使用live555错误问题汇总.mp4  [29.8 MB]
    009.09 创建RTSPServer.mp4  [28.4 MB]
    010.10 MediaSession会话.mp4  [39.4 MB]
    003.03 制作live555开发库.mp4  [54.6 MB]
    001.01 RTSP技术概览.mp4  [58.1 MB]
    012.12 给RTSP服务器摄像头编码的264数据.mp4  [41.1 MB]
    002.02 live555服务器搭建.mp4  [44.7 MB]
    014.14 RTSP流媒体项目总结.mp4  [25.5 MB]
    005.05 RTSP协议与SDP.mp4  [19.1 MB]
    011.11 live555事件循环及SDP.mp4  [22.6 MB]
    006.06 RTP和RTCP.mp4  [27.0 MB]
    004.04 live555库案例.mp4  [39.4 MB]
    013.13 RTSP摄像头项目运行.mp4  [28.1 MB]
📁 H264和AAC封装mp4
    006.06 H264帧NALU详解.mp4  [121.9 MB]
    011.11 设置视频AVStream.mp4  [49.8 MB]
    005.05 mp4封装的两种方式.mp4  [35.1 MB]
    002.02 IPB帧及GOP.mp4  [17.6 MB]
    023.23 封装视频与FFmpeg编译选项.mp4  [40.8 MB]
    021.21 封装mp4时间戳详解.mp4  [72.3 MB]
    001.01 H264数据编码.mp4  [31.1 MB]
    003.03 H264的NALU.mp4  [26.2 MB]
    020.20 C++11线程库.mp4  [17.4 MB]
    013.13 封装mp4写头.mp4  [24.9 MB]
    017.17 IDR帧与非关键帧.mp4  [60.5 MB]
    019.19 FFmpeg写视频数据.mp4  [50.8 MB]
    025.25 AAC编码与mp4封装总结.mp4  [83.9 MB]
    024.24 AAC编码器初始化.mp4  [32.1 MB]
    010.10 封装视频AVFormatcontex.mp4  [30.4 MB]
    018.18 AnnexB与avCC详解.mp4  [73.8 MB]
    012.12 设置音频AVStream.mp4  [29.6 MB]
    009.09 视频封装接口定义.mp4  [24.5 MB]
    015.15 H264解析NALU算法.mp4  [44.6 MB]
    004.04 mp4容器与AAC.mp4  [32.6 MB]
    008.08 封装mp4单例模式.mp4  [31.0 MB]
    007.07 CMake与FFmpeg库.mp4  [35.8 MB]
    022.22 视频录制功能使用.mp4  [41.4 MB]
    014.14 CMake依赖的framework.mp4  [38.2 MB]
    016.16 NALU数据处理.mp4  [50.8 MB]

适合人群

  • Android开发工程师
  • 音视频开发爱好者
  • 流媒体平台架构师

🎯 学习收获

  • 掌握Linux流媒体服务器开发
  • 精通UDP音视频传输技术
  • 熟悉WebRTC全平台C++开发

🎉 祝您学习愉快!