实时流媒体系统设计

1*V2U5_ZQ-AmA0OzQr9os2_A.png

问题: 为什么视频内容的实时流媒体具有挑战性?

回答 → 这是因为以下原因:

?因为视频内容是以几乎实时的方式通过互联网发送的。

1*pTRZ8t-Jp0l-tp8EIjutWA.png

?视频处理的整个过程是计算密集型的。通过互联网发送大量视频需要时间。

1*3oWBDvi2ktR4rD8FAXKXUg.png

问题: 任何视频是如何从流媒体端传输的?

回答 → 以下是上传视频涉及的过程:

1*QGl4ppLXcHC0r5rIAkFYrA.png

步骤 #1.) 播放者启动视频流。源可以是任何视频和音频,通过编码器连接到编码器,类似于流行的开源 OBS 软件。

注意: 一些平台,如 YouTube,提供了易于使用的软件,可以从浏览器中使用摄像头 OR 直接从手机摄像头进行流媒体。

1*TVUfd3vdiKieOljaYnF8tA.png

问题: 编码器的目的是什么?

回答 → 编码器的工作是将视频流打包并以传输协议发送,以供实时流媒体平台接收进行进一步处理。最流行的协议称为 RTMP(即实时消息传输协议)。

问题: 解释一下 RTMP?

?RTMP 是基于 TCP 的协议。很长时间以来,它一直是 Adobe Flash 的视频流传输协议。?编码器可以轻松使用 RTMP 或其安全变体 RTMPS。

问题: 解释一下 SRT?

?还有另一种流行的选择,称为 SRT,即安全可靠传输协议。?SRT 是基于 UDP 的协议。它承诺更低的延迟和更好的抗恶劣网络条件的韧性。?大多数流媒体平台可能尚不支持 SRT。

问题: 展示各种协议的比较分析,以执行来自客户端的视频广播?

1*ABYbQHbBAyYpCUeQ6JH8Sw.png

问题: 如何为播放者提供最佳的上传条件?

回答 → 为了为播放者提供最佳的上传条件:

?大多数实时流媒体平台在全球范围内提供 出现点 服务器。

1*bAyryd4QYMjylfw8PLV2Gg.png

?播放者连接到最近的 出现点 服务器。

1*LAmoPclqnFi5EiE_ngZG_w.png

问题: 播放者如何连接到最近的 POP 服务器?

回答 → 这是通过以下方式自动完成的:

?基于 DNS 延迟的路由。

1*-3LVCuG2c_wzc8POgUTYPw.png

?任播网络。

1*07t2YgZll2BoT_UIyK4ZjQ.png

问题: 视频到达最近的 POP 服务器后会发生什么?

回答 → 一旦流到达最近的 POP 服务器,它就会通过快速可靠的主干网络传输,进行进一步处理到达平台/数据中心

1*oNzgaHVrmfZznyPo4utJeQ.png

问题: 将视频传输到平台的主要目标是什么?

回答 → 将视频传输到平台的主要目标是以不同的质量和比特率提供视频流。

1*Dja0E7Eb_DRySRTJWNJftQ.png

注: 实际的处理步骤可能因平台而异以及输出流式传输格式可能有所不同。

问题: 自适应比特率流是什么?

回答 → 现代视频播放器根据观众的互联网连接质量自动选择最佳的视频分辨率和比特率,并且可以根据网络条件的变化动态调整。

问题: 详细解释平台执行的一般步骤?

回答 → 平台遵循以下一般步骤:

步骤 #1.) 对传入的视频流进行转码为不同的分辨率和比特率。基本上,这些是视频的不同质量级别

步骤 #2.) 将转码流划分为较短的几秒钟的视频段。

1*V0Xpj5GObHuxih5woL7gWA.png

问题: 从 CPU 的角度看,转码过程是什么样的?

回答 → 转码/分段的这一步是计算密集型的,因此输入流通常以并行方式转码为不同的格式。

1*rU3rpq–GwptjaNA25gB5Q.png

问题: 转码过程之后会发生什么?

回答是打包 → 来自转码过程的视频段集合被打包到不同的实时流式传输格式中,视频播放器可以理解。

问题: 实时流式传输的最流行格式是什么?

回答 → 进行实时流式传输的最常见格式是 “HTTP 实时流式传输(即 HLS)”。HLS 由 Apple 在 2009 年发明。直到今天,它仍然是最流行的流式传输格式。

问题: 解释一下 HLS-Stream?

回答 → HLS-Stream 由清单文件和一系列视频块组成:

?每个块包含几秒钟的视频段。?清单文件是一个目录,告诉视频播放器输出格式以及在 HTTP 上加载视频块的位置。

1*FgfsMmVaHvDaxb1m_DpPYA.png

问题: 解释一下 DASH?

回答 → DASH 代表 Dynamic Adaptive Streaming over HTTP,这是另一种流行的流媒体格式。Apple 设备不支持 DASH。

问题: 如何减少最后一英里的延迟?

回答 → CDN 层还会缓存生成的 HLS 文件和视频块,从而减少最后一英里的延迟。

1*3404OG2-qiqltJvXAVbG0Q.png

问题: 视频传递过程的下一步是什么?

回答 → 现在,视频开始到达观众的视频播放器。以下是实时流媒体的端到端过程:

1*FkdAI5Gf9EVABRgHJXW30w.png

问题: 视频交付过程的整体延迟是多少,我们如何优化?

回答 → 大约 20 秒的 “Glass To Glass Latency” 是正常的。

?有几个因素是 Streamer 或实时流媒体平台可以调整的,以改善延迟,通过牺牲整体视频质量的各个方面。?改善延迟的最佳方法是通过优化本地设置,以实现从相机到流媒体平台的最低延迟。

版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《实时流媒体系统设计》
文章链接:https://zhuji.vsping.com/395857.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。