将视频文件从ffmpeg直接输出到Google云存储 [英] Output a video file from ffmpeg directly to google cloud storage

查看:26
本文介绍了将视频文件从ffmpeg直接输出到Google云存储的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问题背景

我们正尝试在托管在Google App engine(GAE)中的服务器中使用FFmpeg压缩视频。输入文件在Google Cloud Storage(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就好了。

推荐答案

如果选择使用计算引擎。您可以选择很多选项,具体取决于您选择的编程语言。

您可以从NodeJS将内容上传到Google Storage,也可以从NodeJS使用FFMpeg库。这两个文件都没有实际保存文件。直接从输入文件传输/流式传输到Google云存储。

更多信息:

节点的FFmpeg模块。该库提供一组函数和实用程序来抽象ffmpeg的命令行用法。要使用该库,需要已安装ffmpeg(包括所有必要的编码库,如libmp3lame或libx264)

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

createWriteStream(Optionsopt)→{WritableStream} 创建可写流以覆盖存储桶中文件的内容。

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

这篇关于将视频文件从ffmpeg直接输出到Google云存储的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆