文章

探索视频流媒体技术(9):直播工作流程

系列介绍视频流媒体技术相关的基础知识。

探索视频流媒体技术(9):直播工作流程

本文转自微信公众号 关键帧Keyframe,推荐您关注来获取音视频、AI 领域的最新技术和产品信息

微信公众号 微信扫码关注我们

您还可以加入知识星球 关键帧的音视频开发圈 来一起交流工作中的技术难题、职场经验

知识星球 微信扫码加入星球

这个系列文章我们来介绍一位海外工程师如何探索视频流媒体技术,对于想要开始学习音视频技术的朋友,这些文章是份不错的入门资料,这是第 9 篇:直播工作流程。

直播已经成为我们数字生活中不可或缺的一部分,它使我们能够广播活动、分享体验并实时连接。在本文中,我们将深入了解直播的基础知识,涵盖协议和技术、延迟考虑因素以及如何搭建直播服务器。

在本文中,我们将深入探讨传统的 RTMP 和 HLS 基础流式传输工作流程,FFmpeg 如何处理视频编码,以及其背后的系统设计。我们还将探索向低延迟流式传输的演变,使用 SRT、WHIP 和 WHEP 等协议,这些协议越来越多地用于体育广播等实时需求。

1、RTMP 和 HLS 基础流程

  1. 摄取:视频流由摄像机或编码软件捕获并发送到 RTMP 服务器。这是第一步,直播视频被摄取到流式传输基础设施中。
  2. 处理:RTMP 服务器处理传入的流,并使其可用于进一步的编码和分发。
  3. 队列:然后将流发送到消息队列(例如,Kafka、RabbitMQ)以进行可扩展处理。
  4. 编码:工作进程从队列中消费流,并使用 FFmpeg 将其转码为不同的格式和码率。
  5. 分段和打包:编码后的流被分段为适合 HTTP Live Streaming(HLS)的小块。
  6. 分发:然后通过 CDN 将这些分段分发给最终用户。

延迟:在此工作流程中,典型的玻璃到玻璃延迟(从摄像机捕获到在用户设备上播放的时间)约为 10 秒。

2、低延迟流式传输:SRT、LL-HLS、WHIP 和 WHEP

  1. SRT/WHIP 源:视频流从 SRT 或 WHIP 源(摄像机/编码器)开始。
  2. 媒体服务器:流被媒体服务器摄取,该服务器针对低延迟进行了优化。
  3. 消息队列:将流放置在消息队列中以进行低延迟处理。
  4. 工作节点:工作节点从队列中拉取流,并使用 FFmpeg 或类似工具以低延迟设置进行转码。
  5. 分发(WHEP 或 LL-HLS):通过 WebRTC 或低延迟 HLS(LL-HLS)将流传递给最终用户。
本文由作者按照 CC BY-NC-ND 4.0 进行授权