视频:Containers、Codecs 和 Protocols — 动作如何实现流式传输
Source: Dev.to

为什么视频压缩让现代流媒体成为可能
视频压缩是现代计算领域最令人印象深刻的成就之一。它融合了高级数学、计算机科学以及专用硬件,使我们能够观看电影、流式播放内容,并在互联网上即时分享视频。
如果没有压缩,存储或传输数字视频几乎是不可能的,因为原始数据量庞大。下面我们来拆解这项关键技术的工作原理,以及它在我们日常数字生活中为何如此重要。
视频压缩是如何工作的?
在本质上,视频只是快速连续的图像——通常以大约 24 帧每秒 的速度显示。没有压缩,即使是短视频也会占用巨大的存储和带宽。
视频压缩算法通过识别 随时间的模式和冗余 来解决这个问题。
想象一下有人在跑步的视频:
- 背景基本保持静止。
- 只有人物在每帧中改变位置。
与其重复存储整幅图像,编解码器会检测静态区域,并将其表示为 三维块,这些块在场景显著变化之前保持不变。
这种方法在保持视觉质量的同时显著降低文件大小——尽管它需要复杂的数学运算和相当的处理能力。
数字视频文件的结构
现代数字视频不仅仅是单一的流——它是由多个元素组成的结构化包:
- Container – 将所有内容组合在一起的文件格式(
.mp4、.mkv、.avi、.mov等) - Video tracks – 使用特定视频编解码器压缩的视觉数据
- Audio tracks – 使用音频编解码器压缩的声音
- Subtitles – 在特定时刻显示的时间同步文本
一个容器可以包含多种音频语言、字幕轨道,甚至不同的摄像机角度——全部在同一个文件中。
编解码器:压缩的核心
编解码器是专门用于压缩和解压视听数据的算法。一般来说:
视频压缩得越多,实时解码所需的计算能力就越大。
常见视频编解码器
- H.264 (AVC) – 最广泛使用的标准,由 MPEG‑LA 联盟管理
- H.265 (HEVC) – 更高效的后继者,已在 Apple 设备上广泛采用
- VP9 – 由 Google 开发的开放替代方案
- AV1 – 为流媒体未来设计的更新、更高效的编解码器
⚠️ 授权说明:H.264 为专有技术,需要支付授权费用。为此,Google 收购了 ON2 并开发了 VP9,而开源社区则创建了 x264,这是 H.264 算法的免费实现。
音频压缩及其演变
音频压缩遵循与 JPG 等图像压缩格式类似的原理——去除人耳无法感知的声音。
常见音频编解码器
- AAC – 常与 H.264 搭配,使用 MP4 容器
- MP3 – 通用兼容,仍被广泛使用
- Opus – 现代高效编解码器,针对流媒体和实时通信进行优化
虽然发烧友可能会察觉细微差别,但对大多数听众而言,现代高质量音频编解码器的声音几乎相同。
视频流媒体在互联网中的专业协议
流媒体视频带来了独特的挑战——尤其是当用户跳转到视频的任意位置时(例如,在 YouTube 上跳到第 5 分钟)。为了解决这些问题,使用了专门的流媒体协议:
- HLS(HTTP Live Streaming) – 当今最广泛使用的协议
- MPEG‑DASH – 标准化的替代方案
- RTMP – 来自 Flash 时代的遗留协议
这些协议将视频划分为小片段,每个片段都有自己的头部信息,从而实现无需下载完整文件即可在任意位置无缝播放。
质量适配与比特率
现代流媒体平台会持续监测可用带宽,并动态调整视频质量以防止缓冲。
了解以下概念之间的区别很重要:
- 分辨率 – 像素数量(例如 1080p、720p)
- 比特率 – 每秒传输的数据量
尽管普遍认为,分辨率和比特率 并非同一概念。同一 1080p 视频可以以不同的比特率进行编码,从而导致视觉质量的差异。
像 Netflix 和 Twitch 这样的平台会实时重新压缩视频流,并根据每位观众的网络状况调整质量。
最大兼容性的推荐导出设置
- 容器: MP4
- 视频编解码器: H.264
- 音频编解码器: AAC
字幕
最常见的字幕格式有:
- SRT
- VTT
这些是带有时间戳的简单文本文件,时间戳指示每行字幕何时出现。
最终思考
视频压缩是一个不断发展的领域,它已经重塑了我们消费数字内容的方式。这也是即使在我们的网络连接保持不变的情况下,流媒体质量仍在不断提升的原因。