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

发布: (2026年1月6日 GMT+8 21:13)
7 min read
原文: Dev.to

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 视频可以以不同的比特率进行编码,从而导致视觉质量的差异。

NetflixTwitch 这样的平台会实时重新压缩视频流,并根据每位观众的网络状况调整质量。

最大兼容性的推荐导出设置

  • 容器: MP4
  • 视频编解码器: H.264
  • 音频编解码器: AAC

字幕

最常见的字幕格式有:

  • SRT
  • VTT

这些是带有时间戳的简单文本文件,时间戳指示每行字幕何时出现。

最终思考

视频压缩是一个不断发展的领域,它已经重塑了我们消费数字内容的方式。这也是即使在我们的网络连接保持不变的情况下,流媒体质量仍在不断提升的原因。

Back to Blog

相关文章

阅读更多 »

Rapg:基于 TUI 的密钥管理器

我们都有这种经历。你加入一个新项目,首先听到的就是:“在 Slack 的置顶消息里查找 .env 文件”。或者你有多个 .env …

技术是赋能者,而非救世主

为什么思考的清晰度比你使用的工具更重要。Technology 常被视为一种魔法开关——只要打开,它就能让一切改善。新的 software,...

踏入 agentic coding

使用 Copilot Agent 的经验 我主要使用 GitHub Copilot 进行 inline edits 和 PR reviews,让我的大脑完成大部分思考。最近我决定 t...