返回博客

在线视频究竟是怎么播放的:从点击到画面

2026 年在线视频流媒体的支柱指南——从摄像头到编码器、清单文件、CDN,再到播放器——用通俗易懂的中文一步步讲解。

By

你按下 YouTube 上某个视频的播放键,一秒之内屏幕上就出现了画面。这一秒里到底发生了什么?非常多的事情——更何况视频根本不在你的设备上、你正在看的”文件”并不以单一文件的形式存在于任何地方,而点亮你屏幕的字节甚至不是来自 YouTube 的服务器。它们来自和你家在同一座城市的某个缓存——一份事先制作好的副本,预备你或另外一千名观众点开同一部电影的同一个片段时使用。

事情的顺序是这样的。你的浏览器先和一台服务器对话,对方递给它一个描述视频的小型文本文件。播放器读这份文件,从几个画质选项里挑一个,然后开始向 CDN 索取短小的音视频块——通常每块 2 到 6 秒。这些块通过承载普通网页的同一种 HTTPS 连接到达。播放器在你手机或笔记本本就具备的硬件上完成解码,并把画面绘制到屏幕上。在你看第一块的时候,播放器已经在拉取接下来的三块。如果 Wi-Fi 抖动了一下,它会悄悄换到下一块的较低画质版本,让播放永不卡住。这整个循环——取清单、取分片、解码、绘制、测量、自适应——就是 Netflix、YouTube、Twitch、Disney+ 和 TikTok 上每个视频背后默默运转的逻辑。

这是我们流媒体系列的支柱文章。我们会用通俗易懂的中文,走完从摄像头到屏幕的整条流水线。技术层面讲得足够精确但不至于陷入术语泥沼,看看哪些服务采用哪种组合,最后回答一个把许多读者带到这里的实用问题:看完之后,你能不能留一份副本?

视频流媒体是这样一种交付方式:把视频作为一连串短小、按序编号的文件分片,通过 HTTPS 传到你的设备,由一份小型清单文件引导,边到达边解码,下一片一在路上就丢弃前一片。

核心要点 {#key-takeaways}

  • 流媒体不是特殊的协议——它是普通 HTTP 之上的一种巧妙模式。 清单和分片只是 CDN 上的文件。
  • 你”观看”的视频并不以单一文件存在。 它在你的播放器里由一份清单加几百个小分片重建出来。
  • 编码会为同一内容生成多个码率档位。 播放器根据实时带宽测量在它们之间选择。
  • 绝大多数分片来自离你较近的 CDN 边缘,而非源站。 边缘缓存正是流媒体感觉瞬间响应的原因。
  • 自适应码率正是画质会在播放中静悄悄变化的原因——播放器在分片之间切换档位,以保持缓冲健康。
  • 三层加密可以独立堆叠:HTTPS 负责传输,AES-128 负责分片内容,DRM 负责由许可证服务器把关的商业码流。
  • HLS 与 DASH 主导市场。 HLS 是 Apple 的规范(RFC 8216,.m3u8);DASH 是 ISO/IEC 标准(23009-1,.mpd XML)。大多数主流服务两者都发布。
  • 保存一段码流意味着解析清单、拉取每个分片、处理加密并重新封装——不是右键另存为。

简明解释

设想你要把一部电影发给全球一亿名观众。电影体量巨大——一部 2 小时的 1080p H.264 电影大约 4 到 8 GB——而观众的网络从千兆光纤到高铁上时断时续的 4G 应有尽有。你不能给每个人发同一个庞大文件。你甚至连”正确文件”都没法发:高铁上的观众需要低码率版本,光纤用户想要高码率版本,如果高铁观众中途切到 Wi-Fi,你还得在不重新开播的情况下把他升上去。

行业最终选定的模式简单到听起来都没什么戏剧性。把电影切成数百段短片,每段以多种画质编码,所有片段存到世界各地的服务器上,让观众的播放器决定下一段播放哪一档。 就是这样。所谓”流媒体”,本质上不过是按特定顺序通过网络拉取文件夹里的文件。

下面是从一端到另一端的完整生命周期:

  1. 摄像头或渲染引擎采集原始画面。 直播是真摄像头;点播则是片方交付的成品母带文件。
  2. 编码器把原始画面压缩成某种编解码格式——视频用 H.264、H.265 或 AV1;音频用 AAC 或 Opus。编码器通常会从一个输入产出多个不同码率的输出。
  3. 打包器把编码后的码流切成短分片并写入清单。 每个档位成为自己的一套分片加一份子清单;所有档位被汇总到顶层主清单里。
  4. 分片和清单被上传至源站,并复制到 CDN。 Cloudflare、Akamai、Fastly、AWS CloudFront——服务采用哪家 CDN,文件就被缓存到那家 CDN 的全球边缘节点。
  5. 你按下播放。 播放器下载清单、选定档位,从附近的 CDN 边缘拉取最初几个分片,开始解码。
  6. 播放器解码每一个分片,并将画面绘制到你的屏幕上,同时在你正在观看的位置之前留几秒缓冲。
  7. 播放器一边接收分片一边测量带宽,并在分片之间调整档位,让画质始终匹配你的实时连接。

整条流水线就是这样。没有别的事情在发生——没有特殊服务器、没有线上的专有协议、没有什么魔法。每一步使用的工具和格式,只要你足够耐心,都可以亲自写脚本对它们操作。聪明之处在于设计:每个分片都足够短,分片之间可以切档;清单很小,往返就很快;分片像任何静态文件一样可以缓存;播放器跑在本就用来解码蓝光和 FaceTime 通话的同一套硬件上。整个流媒体网络都是用 HTTPS、文件和时序构建的。 接下来要讲的协议和编解码器,只是让这些零件在规模化场景下互操作的约定。

流媒体视频究竟是怎么工作的

这是本支柱的技术内核。我们会从头到尾走完整条流水线。走完之后,你应该能在任何流媒体网站的网络面板里识别出每个请求属于哪一阶段。

摄像头 → 编码器 → 打包器 → 源站 → CDN 边缘 → 播放器 → 解码器 → 屏幕

这张图就是整条路径。下面要讨论的每一个概念——码率梯度、清单、分片、ABR、加密——都对应到这条箭头上的某个位置。

源站与编码

一切始于原始视频。对直播来说,这是一台摄像头(游戏直播则是屏幕采集),以每秒 60 帧、1920×1080 之类的规格输出未压缩画面。未压缩下,这大约是每秒 3 Gbps。没人会通过公网传未压缩视频。第一项工作就是压缩。

视频编码器把原始画面变成压缩码流,依靠的是利用时间冗余(绝大多数像素与上一帧的像素相似)和空间冗余(图像中大多数区域与其相邻区域相似)。2026 年的主流编解码器是:

  • H.264 (AVC) —— 2003 年标准化。老,但仍是互联网上兼容性最广的编解码器。过去 15 年生产的每台设备都能硬件解码它。
  • H.265 (HEVC) —— 在同等画质下比 H.264 效率高约 50%。受专利费拖累,Web 普及较慢,但在手机、智能电视和 Apple 平台上无处不在。
  • AV1 —— 免版税、开放,比 HEVC 略高效。YouTube、Netflix 和 Vimeo 是 AV1 的主要发布方。2025–2026 年硬件解码终于全面铺开。
  • AAC 与 Opus —— 音频编解码器。AAC 是 HLS 的必备项;Opus 主导 WebRTC,并在 DASH 中越来越常见。

同一内容几乎总会编码成多个码率档位。一个典型的编码梯度可能像这样:

档位分辨率码率编解码器
1080p1920×10805.0 MbpsH.264 high
720p1280×7203.0 MbpsH.264 main
480p854×4801.5 MbpsH.264 main
360p640×3600.8 MbpsH.264 baseline
音频128 kbpsAAC-LC

表中每一行都是同一源内容的独立编码。它们在时间上对齐,播放器可以在同一壁钟时刻在它们之间切换而无需重启解码器。要进一步了解每个档位里到底是什么——容器与编解码器的区别——可参阅像 MP4 这样的容器与像 H.264 这样的编解码器

打包——分片与清单

编码之后是打包:把每个档位的码流切成短块(称为分片),并写出一份列出这些分片的清单

分片通常每片 2 到 10 秒音视频。它们在关键帧边界(码流中的 I 帧)切开,使播放器能从任意分片的开头开始解码。当清单声明 EXT-X-INDEPENDENT-SEGMENTS(HLS)或 DASH 的等价项时,每个分片都保证可独立播放;没有此声明时,部分分片可能依赖前面分片中的数据。

分片容器格式各异:

  • MPEG-TS.ts)—— 旧版 HLS。最初是 1990 年代用于卫星/有线广播的格式,对位错误鲁棒。仍在使用但正在被淘汰。
  • Fragmented MP4.m4s,有时是 .mp4)—— 现代 HLS 与所有 DASH。与普通 MP4 同一容器,但被切成带各自首部的片段,使每个片段独立可播。
  • CMAF —— Common Media Application Format(ISO/IEC 23000-19)是一个 fMP4 的剖面与打包约束,而非 .ts 与 fMP4 的合并产物。它精确定义了 fMP4 分片应如何组织,使同一套 fMP4 文件既可被 HLS .m3u8 引用,也可被 DASH .mpd 引用。现代服务发布 CMAF,而非按协议复制字节;旧版 .ts 分片仍与之并存,服务于无法接收 fMP4 的旧 HLS 客户端。

清单本身有两种风格:

  • HLS 清单.m3u8 文本文件。主播放列表列出各档位及其带宽;每个档位有一份媒体播放列表,列出分片 URL 和时长。完整结构详见m3u8 文件究竟包含什么
  • DASH 清单.mpd XML 文件。一份文件就以树形结构描述整个呈现——AdaptationSet、Representation、SegmentTimeline、BaseURL。与 HLS 的对照可参阅DASH 及其 .mpd 清单

两种设计在做同一件事:清单告诉播放器有哪些档位、每个分片在哪里、每个分片有多长。其余一切由播放器自行决定。

CDN 分发

分片和清单作为文件就绪后,流媒体服务把它们上传到源服务器——通常是 S3 或 R2 这类对象存储——再让**内容分发网络(CDN)**把它们复制到世界各地的边缘节点。你在网络请求里能看到的 CDN 包括 Akamai、Cloudflare、Fastly、AWS CloudFront、Google 自有边缘网络,以及 Netflix(Open Connect)和 YouTube 部署在 ISP 内部的私有 CDN。

CDN 对流媒体至关重要的原因是可缓存性。分片是 URL 永不变化的静态文件。某地区的第一名观众从源站拉取分片;边缘缓存住它;接下来一两个小时该地区的每位观众都从几十毫秒外的服务器获取它。对一段热门 YouTube 视频而言,绝大多数分片请求从未触达 YouTube 的源站——它们由物理位置就在你所在 ISP 内部的缓存盒提供。

这也是流媒体能扩展得如此漂亮的原因。东京同时新增一百万名观众,不会给加州增加一百万次往返——只是给本就有该文件的东京边缘节点增加负载。这种数学上的友好程度,是 2010 年之前任何流媒体协议都做不到的。

播放器工作流

现在回到你的设备。浏览器加载一个页面,页面引导一个 JavaScript 播放器(通常是 shaka-player、hls.js、video.js,或某家厂商基于其中之一构建的定制版本)启动,播放器请求页面里的 <video> 元素开始播放。从这一刻起,播放器跑着一个紧凑的循环:

  1. 拉取清单。 一个 HTTPS GET。响应是几 KB 文本。
  2. 解析清单并选定初始档位。 播放器基于带宽估算(由近期历史或设备的网络信息播种)、设备屏幕分辨率以及安全余量进行选择,让第一片分片不至于卡住。
  3. 拉取最初几个分片。 现代播放器在一条 HTTP/2 或 HTTP/3 连接上并发拉取。分片同时到达。
  4. 将分片字节推入浏览器的 Media Source Extensions 缓冲。 MSE 是允许 JavaScript 以编程方式向 <video> 元素喂送视频数据的 W3C API。剩下的交给浏览器内建解码器。
  5. 解码并绘制。 解码器——几乎所有近十年生产的设备都由硬件加速——把压缩帧转换为原始像素,GPU 按视频帧率把它们绘制出来。
  6. 保持缓冲充盈。 用户观看第 N 个分片的同时,播放器在拉取第 N+1、N+2、N+3 个分片。
  7. 每个分片之后重新评估。 每次下载完后,播放器都有了关于连接速度的最新数据。它据此决定下一个分片是否要切换档位。

大多数播放器代码做的是簿记:跟踪缓冲健康度、重试失败的分片拉取、处理跳转和暂停、插入广告分片、切换音轨、渲染字幕。流媒体那部分概念上很小——拉取、解码、重复——工程复杂度都在边缘情况里。

自适应码率(ABR)

自适应码率是让整套设计变得值得使用的特性。没有 ABR,播放器只能选一档画质并死守,一旦连接撑不住就要重新缓冲。有了 ABR,播放器在每个分片上测量带宽,并在播放中切换档位。

基本循环是这样的。每个分片下载完成后,播放器计算有效带宽:分片大小除以下载时间。再与近期测量的移动平均比较。若带宽趋势向下,下一个分片请求就投向较低档位;若带宽趋势向上且缓冲健康,则爬回更高档位。决策只在分片之间作出,绝不在分片中途,因此切换无缝。

真实的 ABR 实现要更细腻。它们跟踪缓冲占用(缓冲健康时可冒险升档;缓冲快要耗尽时必须迅速降档),考虑屏幕分辨率(往 720p 笔记本上推 4K 毫无意义),并使用预测模型——移动平均、低通滤波、有时是机器学习估计器——以避免在档位间来回震荡。2026 年的两大主流 ABR 算法是 BOLA(基于缓冲)与 MPC(模型预测控制),两者都出现在开源播放器中。要完整拆解,可参阅每个现代播放器内部的 ABR 逻辑

对用户来说的可见结果是:你不必自己选画质。播放器一秒一秒地替你选,而且切换通常看不见。当切换不那么看不见时——比如你注意到 Netflix 画面忽然变软——那是 ABR 为了让播放连续而挑了较低档位。

加密:三层经常被混为一谈

流媒体里的加密比大多数人以为的更多,而且这三个相互独立的层经常被搅在一起。它们并不是同一件事。

HTTPS = 传输安全。 现代每条码流都通过 TLS 提供。这保护字节免于网络上的窃听者:ISP、Wi-Fi 攻击者或企业代理都无法读取流经身边的内容。HTTPS 不会阻止接收方浏览器读取字节——它严格只管”线路上”。

AES-128 分片加密 = 内容层。 HLS 和 DASH 都支持以 AES-128(CBC 或 CTR 模式)加密分片本身。清单里携带一个密钥 URL;播放器通过 HTTPS 拉取密钥,再在解码前解密每个分片。这是内容层保护:即便有人拿到字节,没有密钥也派不上用场,但密钥 URL 本身就是入口。任何能访问到密钥 URL 的人都能解密分片。许多直播和创作者平台用 AES-128 分片加密作为基础保护层。

DRM = 由许可证服务器把关、硬件支持的解密。 Widevine(Google)、FairPlay(Apple)和 PlayReady(Microsoft)在分片加密之上又包了一层策略。分片仍以 AES 加密(在 MPEG Common Encryption,ISO/IEC 23001-7 之下),但内容密钥经过封装,只有设备上的可信执行环境才能解封。许可证服务器在签发许可证前会核验订阅、设备可信度和所在地区。解密在硬件支持的安全模块内完成——GPU 直接收到解密后的视频帧,不经过应用程序内存。Netflix、Disney+、Apple TV+ 以及大多数付费流媒体保护的就是这一层。深入阅读参见Widevine 与 FairPlay 如何为高级码流把关

这些层是叠加的。一段高级 Netflix 码流使用 HTTPS 传输、在 CENC 下加密的 CMAF 分片、由 Widevine 或 FairPlay 把关的密钥下发。一段 Twitch 直播只用 HTTPS。一个付费课程平台可能用 HTTPS 加 AES-128 分片加密,但没有 DRM。知道当前在哪些层上,就能知道访问字节的技术门槛到底在哪里——以及合法使用的边界在哪里。

即便是未加密的码流,要保存它也需要按顺序正确地”说”这些协议,并处理播放器默默搞定的边缘情形。VidMost 就是为在后台做这些工作而生的——清单解析、分片拉取、AES 处理、通过内嵌 Widevine L3 处理 DRM、容器重封装——让用户看到的步骤只有:粘贴一个 URL,得到一个 MP4。

在现实世界里你会遇到它

上面的流水线基本描述了 2026 年所有商业流媒体服务。差别在于每家服务选用了哪些协议、编解码器和 DRM,以及如何与你的设备协商。

  • YouTube。 Web 端和 Android 主协议是 MPEG-DASH,Safari、iOS、AirPlay 和大多数智能电视上提供 HLS。几乎所有内容都是 CMAF——同一套 fMP4 分片同时服务两份清单。编解码器:H.264 做兼容、VP9 用于多数播放、AV1 用于支持的设备上的高分辨率码流。电影/电视租借使用 Widevine 和 FairPlay DRM;用户上传视频不加密。
  • Netflix、Disney+、Apple TV+、HBO Max、Prime Video。 都按客户端混用 HLS 与 DASH,公共分片格式是 CMAF。DRM 是强制的——Widevine、FairPlay 或 PlayReady 由设备选择。编解码器包括 H.264、H.265、AV1,以及 Dolby Vision/Atmos 叠加。许可证服务器在每次播放时都强制执行地区、订阅与设备可信度。Netflix 在许多 ISP 内部运行自有 CDN(Open Connect)。
  • Twitch。 只用 HLS,.ts 分片仍与 CMAF 并存。直播在低延迟档上为 2 到 5 秒延迟,标准档为 15 到 30 秒。分片未加密——Twitch 的保护模型是身份与账号层,而非内容加密。
  • Bigo Live、OnlyFans 直播、Chaturbate、Fansly。 基于 HLS 的直播,通常分片不加密,用 2 秒短分片以实现低延迟。浏览器端播放使用 hls.js 或 Safari 原生 HLS 支持。
  • Vimeo、Mux、Cloudflare Stream、JW Player。 托管视频平台。它们会自动把上传内容打包成 HLS 与 DASH,并通过自家 CDN 分发。Cloudflare Stream 发布 CMAF;Mux 默认 HLS。DRM 在付费套餐里可选开启。
  • 体育与新闻——ESPN、DAZN、BBC iPlayer、Sling TV。 HLS 或 DASH 加 DRM,通常把 Widevine + FairPlay + PlayReady 一起打包,让同一套编码分片能服务所有设备。低延迟 HLS(LL-HLS)是这里的趋势——把过去落后广播 30 秒的直播事件压到 3 秒以内。
  • TikTok、Instagram Reels、YouTube Shorts。 短视频用 MP4 渐进式下载承载最小的片段,一分钟以上的内容用 HLS 或 DASH。CDN 与编解码器选择与长视频服务相同。

不同表象,同一套机制。故事是带变奏的重复:每家服务选一种清单格式、一条编解码梯度、一种 DRM 组合,再让同一个拉取-解码-绘制的循环服务亿万观众。

想要把视频保存下来意味着什么

了解了流水线,一个实际事实就变得显而易见:根本没有一个文件可保存。你”看”的视频是由播放器从一份清单加上几百个小分片在实时拉取、即时解码并立即丢弃的过程中重建出来的。浏览器的”另存为”得到的是清单——一个不含视频字节的小型文本文件。

通向可观看文件的手工路径很长。拉取并解析清单(HLS 的 .m3u8 或 DASH 的 .mpd)。选好档位——通常是你的存储能承受的最高带宽档。枚举每个分片 URL。在签名 URL 失效前全部拉下来(一段 30 分钟视频按 6 秒一片算就要 300+ 个请求)。若存在 EXT-X-KEY,拉取 AES-128 密钥并解密每个分片。若码流受 DRM 保护,则在没有能签发许可证的 CDM 的情况下根本走不通——即便有,解密后的字节也永远不离开安全模块。拿到明文分片后,把音视频重新封装到一个 MP4 或 MKV 容器里。希望你档位选对了;否则就换一个档位重来一次。

合适的工具把这条流水线压缩成一次用户动作。VidMost 解析 HLS 与 DASH 清单,选择可用的最高画质档位,从你浏览器本就在对话的同一家 CDN 并发下载分片,自动处理 AES-128 分片加密,对受 DRM 保护的码流在 L3 可播放的范围内支持 Widevine L3(画质上限由服务和 DRM 级别决定——高级平台通常把 L3 限制在 480p–720p),并把所有内容重封装为可被任何媒体播放器打开的干净 MP4。协议层消失了。你粘贴一个 URL,得到一个文件。

对你有合法观看权的内容——你付费的课程、想存档的直播、你自己的广播、自由授权视频——这就是完整工作流。本文描述的这条流水线,正是这款工具替你跨越的对象。

常见误区与误解

关于流媒体有几个反复出现的观念。值得纠正。

  • “流媒体使用特殊协议。” 并不是。现代自适应流媒体跑在普通 HTTPS 上——和承载 HTML 与 JPEG 的协议一样。清单和分片是 CDN 上的静态文件。HLS 或 DASH 里的”协议”只是关于这些文件应包含什么的约定。
  • “文件在我观看时不断下载。” 不完全对。分片是即用即取,下载只为立刻播放,下一片一在路上就丢弃。你的设备从未持有完整视频。这正是”停止会话”能立刻生效的原因,也是为什么一旦字节停止到达,流媒体会话就立刻中断。
  • “带宽越高画质越好。” 仅当你的带宽稳定时才成立。100 Mbps 的链路里有十秒掉到 2 Mbps,体验会比稳定的 8 Mbps 更差。编码梯度也会给你设上限——如果最高档位只有 5 Mbps,超出这一带宽不会换来更好画质。
  • “卡顿意味着网速慢。” 有时是。同样常见的是编码梯度太稀疏(没有档位匹配当前带宽)、CDN 边缘缓存未命中、对等点拥塞,或播放器的 ABR 算法反应慢。卡顿是播放器在请求时间——而不是对你线路速度的终审判决。
  • “DRM 就是加密。” 不是。加密是一种数学操作——需要密钥才能解开的乱序字节。DRM 是围绕该加密的策略系统:决定谁能拿到密钥的许可证服务器、使用密钥的可信执行环境、决定哪台设备能播什么内容的合同执行层。加密是锁;DRM 是报警系统、密钥分发与吊销策略的组合。
  • “MP4 是一种流媒体格式。” 不是。MP4 是容器——一种包裹音频、视频和元数据的文件格式。HLS 和 DASH 是流媒体协议,它们可以承载 fMP4 分片。普通的 .mp4 文件不是流媒体,而是渐进式下载。你在 HLS 和 DASH 里看到的 CMAF 分片源自 MP4,但结构非常不同。

只要内化了这条流水线,多数困惑就烟消云散。流媒体 = 文件 + 时序——其余皆细节。

结语

互联网最初像运送其他一切那样运送视频:通过 HTTP 传输文件。然后它开始变聪明,在选择哪些文件、按什么顺序、什么画质、从哪个边缘缓存、由什么硬件解码上下功夫。这种巧妙的模式——清单加分片加自适应码率加 CDN 缓存——正是流媒体感觉瞬时、能扩展至亿万观众、并且在现实网络的纷乱中存活下来的全部原因。这里没有秘密协议、没有专有服务器、没有特殊魔法。只有文件、时序和整套栈上非常出色的工程。

如果你宁愿完全跳过协议层,直接保存视频,VidMost 会在后台处理 HLS、DASH、fMP4、AES-128 和 Widevine L3——解析清单、拉取分片、处理加密、写出 MP4。

相关阅读

常见问题

在线视频流媒体是怎么工作的?
在线视频流媒体把视频以一系列短小、按顺序编号的分片通过普通的 HTTPS 发送到你的设备,整个过程由播放器最先下载的一份小型文本清单引导。清单列出每个可用的画质档位和每个分片的 URL。你的播放器选定一个档位,从离你较近的 CDN 边缘一次拉取几个分片,用硬件加速解码,再把画面绘制到屏幕上。整个循环——拉取、解码、绘制——在整段视频中持续重复。
流媒体和下载有什么区别?
下载会先把完整文件保存到设备上再观看;流媒体则是即用即取,下载短分片只为立刻播放,下一片一启动就丢弃前一片。你从未握有完整文件。流媒体还允许播放器在播放中途切换画质,选取不同档位的分片,并允许服务在会话结束时立即停止向你提供内容。下载好的文件可以永久离线播放;流媒体会话只在字节持续到达时才有效。
为什么宽带很快还会卡顿?
只要播放器缓冲流失速度超过分片到达速度就会卡顿。峰值带宽快并不等于吞吐稳定——对等点拥塞、Wi-Fi 干扰,或 CDN 边缘恰好缓存未命中,都可能让某一片分片的下载时间超过其本身时长。编码梯度也很关键:如果某个服务只在 8 Mbps 提供 1080p 档位,而你的链路短暂跌破该值,播放器要么降到 720p,要么等待。卡顿是播放器在请求时间来补水,并不是对你线路速度的终审判决。
为什么我不能直接右键保存流媒体视频?
因为根本没有一个可以保存的单一文件。页面交给播放器的是一个清单 URL——通常是 .m3u8 或 .mpd——而那份文件只是一份分片 URL 列表。右键保存只会得到清单,并不是视频。要拼出可观看的文件,你得按序拉取每一个分片、解密带 AES-128 或 DRM 包装密钥的片段,再把音频和视频流重新封装到一个 MP4 或 MKV 容器里。这是一条浏览器没有内建的多步流水线。
流媒体需要专用服务器吗?
不需要。现代自适应流媒体完全跑在 HTTPS 上——和承载 HTML 页面与 JPEG 的协议一样。分片和清单只是 CDN 上的文件,可以像任何静态资源一样在边缘缓存。早期的 RTMP、RTSP、MMS 等协议确实需要专用服务器和端口,但 HLS 和 DASH 故意采用普通的 HTTP,于是它们能穿越防火墙、能在现有 CDN 基础设施上扩展,并且无需改动协议就能享受 HTTP/2 和 HTTP/3 带来的改进。
直播流和点播有什么区别?
两者使用同一套协议和分片格式。区别在于清单。点播清单从头到尾列出每一个分片,并声明码流有限——HLS 用 EXT-X-ENDLIST 标签标识。直播清单只列已发布的分片,省略结束标记,播放器每隔几秒重新拉取一次以发现新条目。直播延迟从传统 HLS 的 30 秒,到低延迟 HLS 或低延迟 DASH 的 3 秒以内不等。
画质是怎么自动切换的?
现代码流把同一内容以多种码率交付——1080p、720p、480p 等等——每种都是独立的一套分片。每个分片下载完成后,播放器比较下载耗时与实际播放时长,算出有效带宽。如果趋势向下,下一个分片就从较低档位请求;如果趋势向上、缓冲健康,则爬回更高档位。由于各档位的分片边界对齐,切换在分片间干净地完成。
流媒体合法吗?
观看你有权观看的码流——你订阅的服务、自由授权的视频、你自己的广播——是显而易见的合法行为。下载码流则更微妙一些。保存你拥有的内容或自由授权的素材通常没问题。下载受 DRM 保护的商业码流通常违反平台服务条款,并可能触发美国 DMCA §1201 等反规避法律。请务必查看所在司法辖区的相关法律和你注册时同意的条款。