【发布时间】:2021-09-07 19:07:47
【问题描述】:
问题的背景
我们正在尝试使用托管在 Google App Engine (GAE) 中的服务器中的 FFmpeg 压缩视频。输入文件在谷歌云存储(GCS)中,可以很容易地作为输入传递给 FFmpeg 并完成处理,但是,我想直接将文件输出到 GCS。我在这里参考了https://ffmpeg.org/ffmpeg-protocols.html#http 的文档,他们提供并使用了正确的标题和方法来使用签名的 URL 上传文件,但它似乎不起作用。到目前为止,我什至不确定这是否可能。
当前实施
目前,我们首先将输出文件保存在 GAE 工作区中,然后将文件上传到存储桶。在我们遇到另一个问题之前,这个流程运行良好。每当文件太大时,处理时间超过 10 分钟,这似乎是灵活环境中自动缩放实例的阈值。为了解决这个问题,我们可以在标准环境中使用 basic_scaling,但我们似乎无法在 GAE 工作区中写入文件。我可以选择写入/tmp 目录,但它使用 RAM,而且我们可以一次上传许多文件,所以这不是一个选项。
可能的未来
目前我看到的一种解决方案是使用具有手动扩展功能的灵活环境,但在扩展和成本效益方面这是一个坏主意。另一个我不太确定的方法是使用 Google Compute Engine,但我还没有尝试过。
结论
由于无法从 FFmpeg 向 Google Cloud Storage 发出 PUT 请求,导致我遇到了围绕 GAE 及其奇怪的实例和功能集组合的数十个问题。
如果我遗漏任何东西,我将非常感谢您的建议或可能的解决方案。如果我们能让 FFmpeg 将文件输出到 GCS 就好了。
【问题讨论】:
标签: google-app-engine ffmpeg google-cloud-storage google-compute-engine