我已经尝试了整整三天让 GAE(标准 - nodejs)使用 ffmpeg 运行从 MOV 到 MP4 的简单视频转码器。我尝试使用 ffluent-ffmpeg,启动子进程(例如 spawn),但没有任何效果。一旦它调用可执行文件,它总是会出错。我已经确认 ffmpeg 已安装,甚至尝试使用 ffmpeg-static。此外,我让它在我的本地机器上运行没有问题(使用上述所有方法)。
我也尝试过记录错误,但没有任何帮助。我可以通过任何已安装的包(包括 ffmpeg(系统包))看到它的工作情况。
下面是伪代码......第三步是问题发生的地方。
我用来测试的文件是 6MB...我在 iPhone 上拍摄的 5 秒视频。先感谢您。
更新:我成功地将完全相同的代码部署到 Node Flex 环境并且一切正常。我无法在标准环境中发现任何错误,指导我去哪里看,但我的猜测是它与它如何将我通过管道传输到 GAE 节点标准上的 FFMPEG 的文件存储有关。文档说它是一个使用 RAM 的虚拟文件系统。我很想知道是否有人设法让它在标准环境中工作。
最佳答案
经过长时间的战斗,我终于弄清楚发生了什么。我没有足够的计算资源。如果有人要为图像和视频构建转码服务,请确保您的核心至少达到 4 个。我的工作随机失败(但不能重复处理相同的文件),网络套接字断开和重新连接等。
对于因为我没有发布错误(我说我确实没有)而降级我的问题的人......好吧,当你的 CPU 开始放弃工作时,日志中不一定会有错误,因为它跟不上负载。就像我在问题中提到的那样,我会收到错误但没有任何意义。
关于google-app-engine - ffmpeg 无法在谷歌应用引擎标准 nodejs 中正确执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57350148/