gpt4 book ai didi

google-app-engine - 将ffmpeg中的视频文件直接输出到谷歌云存储

转载 作者:行者123 更新时间:2023-12-04 22:49:02 24 4
gpt4 key购买 nike

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

最佳答案

如果您选择使用 Compute Engine。您有很多选择,具体取决于您选择的编程语言。
您可以从 NodeJS 将内容上传到 Google Storage,也可以使用 NodeJS 的 FFMpeg 库。他们都没有实际保存文件。直接从输入文件管道/流式传输到 Google Cloud Storage。
更多信息:

FFmpeg module for Node. This library provides a set of functions and utilities to abstract commands-line usage of ffmpeg. To use this library requires that ffmpeg is already installed (including all necessary encoding libraries like libmp3lame or libx264)


https://www.npmjs.com/package/ffmpeg

createWriteStream(optionsopt) → {WritableStream}Create a writable stream to overwrite the contents of the file in your bucket.


https://www.npmjs.com/package/@google-cloud/storage

关于google-app-engine - 将ffmpeg中的视频文件直接输出到谷歌云存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68113188/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com