找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

3651

积分

0

好友

483

主题
发表于 前天 20:59 | 查看: 17| 回复: 0

与传统的流媒体不同,实时直播的视频内容通过互联网近乎实时地传输,端到端延迟通常仅为几秒钟。
下图完整展示了这一流程中各个关键环节的协作方式:

抖音实时直播工作流程图

  1. 第 1 步:麦克风和摄像头采集原始视频数据,并将这些数据发送到服务器端。  
  2. 第 2 步:对视频数据进行压缩和编码。例如,压缩算法会分离背景与前景元素。压缩后,视频按照 H.264 等标准进行编码。经过这一步骤,视频的体积会显著缩小。  
  3. 第 3 步:编码后的数据被切分成更小的片段,每段通常只有几秒钟,这样下载或直接播放时的等待时间就大大缩短了。  
  4. 第 4 步:分割后的数据被推送到流媒体服务器。流媒体服务器必须能适应不同的设备和波动的网络状况,这就是所谓的“自适应比特率流”。也因此,我们需要在第 2 步和第 3 步中以不同比特率生成多份文件。  
  5. 第 5 步:直播数据进一步推送到基于 CDN(内容分发网络)的边缘服务器上。CDN 能够显著降低数据传输的时延,让观众就近获取内容。  
  6. 第 6 步:观众的设备对收到的数据进行解码和解压,并在视频播放器中呈现画面。  
  7. 第 7 步和第 8 步:如果视频需要保存以便回放,编码后的数据会被同步发送到存储服务器,观众可以在直播结束后请求重放。

实时流媒体的标准协议

  • RTMP(Real-Time Messaging Protocol):最初由 Macromedia 开发,用于在 Flash 播放器和服务器之间传输数据,现在广泛应用于互联网视频流传输。需要注意的是,像 Skype 这类视频会议应用则会使用 RTC(实时通信)协议,以获得更低的延迟。  
  • HLS(HTTP Live Streaming):必须搭配 H.264 或 H.265 编码。苹果设备仅支持 HLS 格式。  
  • DASH(Dynamic Adaptive Streaming over HTTP):DASH 不兼容 Apple 设备。  
  • HLS 和 DASH 都具备自适应比特率流的能力。

如果想进一步探讨系统设计的细节,欢迎到云栈社区与开发者们交流。




上一篇:Claude Code 8倍于 Codex 消耗 Token,500万用户福利反被指作秀
下一篇:gRPC 为什么比 REST 快 5 倍?原理与 RPC 局限解析
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-6-4 03:33 , Processed in 0.950744 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表