如何使用GCP设计可扩展的视频流架构?

问题描述

我有一个视频流应用程序,可以从Google存储桶中流式传输视频。驻留在存储桶中的所有文件都不是公共的。每次用户从前端单击视频时,我都会使用API​​生成一个签名的URL,然后将其加载到 "SampleSchema": { "type": "object","properties": { "daysOfWeek": { "description": "An array of zero or more days of the week","type": "array","items": { "type": "string","enum": [ "Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday" ] } } } } 视频播放器中。

问题

  • 我看到文件大小是否超过100 MB,大约需要30-40秒才能将视频加载到前端。

当我用Google搜索解决此问题时,有些文章说要使用云CDN和存储桶然后缓存文件。据我所知,要缓存文件,该文件必须公开可用。我无法公开提供文件

所以我担心的是,有什么方法可以使它具有可伸缩性/减少初始时间?

解决方法

Cloud CDN将确保您的延迟。同样,在这样的延迟情况下,最好查看发送到Cloud Storage的实际请求,以确保正在请求块,并且在开始播放之前不会加载整个视频文件。

缓存文件不需要公开文件。您可以将文件设为私有,然后将Cloud CDN服务添加到Cloud Storage ACL(https://cloud.google.com/cdn/docs/using-signed-urls#configuring_permissions)中。而且,正如Kolban前面指出的那样,签名的cookie对于您的应用程序简化请求可能更好。

,

不是确切答案,但是此站点对于使用GCP设计解决方案很有用。 https://gcp.solutions/diagram/media-transcoding

如前所述,CDN是进行低延迟视频流的正确方法。 enter image description here

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...