1. 流媒体基础概念:什么是流媒体、流媒体协议概览(RTMP/HLS/DASH)、音视频编解码基础

各位同学好,我是这门课的主讲。今天咱们聊聊流媒体的地基——那些你天天用、但可能没细想过的基础概念。

说实话,我刚开始接触流媒体时,也被一堆协议和编码格式搞得头大。后来踩了不少坑,才慢慢理清脉络。这一章,我就把那些最核心的东西,用大白话给你讲明白。

1.1 到底什么是流媒体?

流媒体,说白了就是「边下边播」。你不需要等整个视频文件下载完,就能直接看。这跟咱们以前用迅雷下电影不一样——下完才能看,那是「下载播放」。

我举个例子。你打开抖音刷视频,点一下就开始播了,这就是流媒体。背后是服务器不断把数据「流」到你的手机上。你看到的每一帧,都是实时到达的。

核心特征:

  • 实时性:数据持续传输,用户几乎无等待
  • 交互性:支持暂停、快进、回退等操作
  • 适应性:根据网络状况自动调整画质

我在做第一个直播项目时,以为流媒体就是简单的「推流→拉流」。结果上线第一天,用户反馈卡成幻灯片。后来才发现,网络抖动时,播放器根本没做缓冲策略。嗯,这里要注意——流媒体不是「一直传数据」那么简单,它有一套完整的缓冲、丢帧、重传机制。

1.2 流媒体协议概览

协议就是「沟通的规矩」。服务器和播放器怎么握手、数据怎么打包、遇到错误怎么处理,都得按协议来。目前主流的就三个:RTMP、HLS、DASH。

1.2.1 RTMP(Real-Time Messaging Protocol)

RTMP 是 Adobe 搞出来的,当年 Flash 时代的老大哥。它基于 TCP,延迟低,适合直播推流。

我个人习惯在推流端用 RTMP,因为它稳定、延迟可控。但有个问题——它默认走 1935 端口,很多企业防火墙会拦。我曾经在客户现场折腾了一下午,才发现是防火墙把端口封了。

特性 说明
传输层 TCP(可靠传输)
延迟 1-3 秒(低延迟)
适用场景 直播推流、互动直播
缺点 不支持 HTML5 原生播放,需要转封装

1.2.2 HLS(HTTP Live Streaming)

HLS 是苹果推出的,现在基本是点播和直播的标配。它把视频切成一个个小片段(通常是 2-10 秒),通过 HTTP 传输。播放器下载一个 m3u8 索引文件,就知道去哪拿这些片段。

你想想看,HLS 最大的好处是什么?它走 HTTP,不会被防火墙拦。而且天然支持自适应码率——网络好时播高清,网络差时自动切到低清。

避坑指南: 我曾经在 HLS 直播中遇到一个坑——切片时长设成了 10 秒,结果用户切换清晰度时,要等 10 秒才能看到效果。后来我把切片时长改成 4 秒,切换就流畅多了。但切片太短会增加服务器压力,一般 4-6 秒是比较平衡的选择。

1.2.3 DASH(Dynamic Adaptive Streaming over HTTP)

DASH 是 MPEG 组织推的标准,跟 HLS 思路类似,也是切片+HTTP。但它更开放,不绑定特定厂商。DASH 用 MPD(Media Presentation Description)文件描述视频信息,而 HLS 用 m3u8。

说实话,DASH 在 Android 和智能电视上用得比较多。HLS 在苹果生态里是亲儿子。实际项目中,我经常两个都支持——这叫「多协议兼容」。

对比项 HLS DASH
标准制定 Apple MPEG
索引文件 .m3u8 .mpd
编码支持 H.264/H.265 任意编码
浏览器支持 Safari 原生 需 MSE 支持

1.3 音视频编解码基础

原始视频数据有多大?我算给你看:1080p 分辨率、30fps、每帧 24 位色,一秒钟的数据量大约是 1920×1080×30×3 ≈ 186MB。一部 90 分钟的电影,就是 1TB 左右。不压缩,谁也传不动。

编解码就是「压缩」和「解压缩」的过程。编码器把原始数据变小,解码器再把它还原成能看的画面。

1.3.1 视频编码标准

  • H.264(AVC):目前最普及,兼容性最好。我在项目中 90% 的场景都用它。
  • H.265(HEVC):压缩率比 H.264 高 50% 左右,但编码更耗性能。4K 视频首选。
  • AV1:开源、免费,压缩率比 H.265 还高,但编码速度慢。适合点播场景。

注意: 编码不是越新越好。H.265 虽然压缩率高,但很多老设备不支持硬解。我曾经在项目里全上 H.265,结果用户反馈播放卡顿——CPU 软解扛不住。后来加了 H.264 降级方案才解决。

1.3.2 音频编码标准

音频相对简单。常见的有:

  • AAC:流媒体标配,音质好,压缩率高
  • MP3:老牌格式,兼容性极好
  • Opus:开源,延迟低,适合实时通信

我个人习惯直播用 AAC,点播用 AAC 或 Opus。MP3 现在用得少了,除非要兼容老设备。

1.4 知识体系总览

下面这张图,把本章的核心知识点串起来了。你可以把它当一张「地图」,后面每学一个新概念,都能在这张图上找到位置。

流媒体基础概念知识体系 流媒体系统 流媒体概念 边下边播 · 实时性 · 交互性 缓冲策略 · 自适应码率 流媒体协议 RTMP · HLS · DASH TCP/HTTP · 切片 · 自适应 编解码基础 H.264 · H.265 · AV1 AAC · MP3 · Opus 三者关系:概念定义目标,协议实现传输,编解码解决压缩 缺一不可,共同构成流媒体系统

1.5 本章小结

这一章,我们聊了三件事:

  • 流媒体是什么——边下边播,核心是实时性和自适应
  • 三大协议——RTMP 适合推流,HLS 和 DASH 适合分发
  • 编解码基础——H.264 是主力,H.265 和 AV1 是未来

这些概念,后面每一章都会用到。你先把这张图记在脑子里,后面学起来会轻松很多。