google-app-engine - ffmpeg 无法在谷歌应用引擎标准 nodejs 中正确执行

标签 google-app-engine ffmpeg fluent-ffmpeg

我已经尝试了整整三天让 GAE(标准 - nodejs)使用 ffmpeg 运行从 MOV 到 MP4 的简单视频转码器。我尝试使用 ffluent-ffmpeg,启动子进程(例如 spawn),但没有任何效果。一旦它调用可执行文件,它总是会出错。我已经确认 ffmpeg 已安装,甚至尝试使用 ffmpeg-static。此外,我让它在我的本地机器上运行没有问题(使用上述所有方法)。

我也尝试过记录错误,但没有任何帮助。我可以通过任何已安装的包(包括 ffmpeg(系统包))看到它的工作情况。

下面是伪代码......第三步是问题发生的地方。

  • 将文件名发送到 GAE 端点
  • 将文件从谷歌云存储下载到临时文件
  • 使用 ffmpeg 转码
  • 上传临时文件到谷歌云存储
  • 删除旧的谷歌云存储文件
  • 删除临时文件

  • 我用来测试的文件是 6MB...我在 iPhone 上拍摄的 5 秒视频。先感谢您。

    更新:我成功地将完全相同的代码部署到 Node Flex 环境并且一切正常。我无法在标准环境中发现任何错误,指导我去哪里看,但我的猜测是它与它如何将我通过管道传输到 GAE 节点标准上的 FFMPEG 的文件存储有关。文档说它是一个使用 RAM 的虚拟文件系统。我很想知道是否有人设法让它在标准环境中工作。

    最佳答案

    经过长时间的战斗,我终于弄清楚发生了什么。我没有足够的计算资源。如果有人要为图像和视频构建转码服务,请确保您的核心至少达到 4 个。我的工作随机失败(但不能重复处理相同的文件),网络套接字断开和重新连接等。

    对于因为我没有发布错误(我说我确实没有)而降级我的问题的人......好吧,当你的 CPU 开始放弃工作时,日志中不一定会有错误,因为它跟不上负载。就像我在问题中提到的那样,我会收到错误但没有任何意义。

    关于google-app-engine - ffmpeg 无法在谷歌应用引擎标准 nodejs 中正确执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57350148/

    相关文章:

    google-app-engine - 计算 Google App Engine GQL 查询中的结果

    python - 错误请求错误 : projection and keys_only cannot both be set

    node.js - Docker 容器中的 Ffmpeg 错误 : ffmpeg exited with code 1:

    Python google appengine session 使用 webapp2_extras 混淆

    java - 使用 Java 且没有第 3 方框架(iOS 客户端)的谷歌应用引擎自定义身份验证 - 设计合理吗?

    php - 如何在php中使用系统命令?

    ruby-on-rails - 回形针是否需要 FFMPEG 才能上传视频?

    video - 在 mp4 (h.264/avc) 视频中帧速率不一致是否合法

    node.js - Heroku 上的 ffmpeg,EC2 : TypeError: Cannot read property 'on' of undefined , ffmpegProc.stdout.on ('data',函数(数据){ ^