首页 > 解决方案 > Firebase (Cloud Functions) - 编译具有视频稳定功能的 FFmpeg (vidstab)

问题描述

我正在使用具有 Cloud Functions 功能和 FFmpeg 的 Firebase。

我看到 FFmpeg 现在默认包含在预安装的软件包中,如您在此处看到的。这样,我可以将它与 spawn 命令一起使用,如下所示:

 await spawn('ffmpeg', [
      '-y',
      '-i',
      tempFilePath,
      '-vf',
      'transpose=2',
      targetTempFilePath,
    ]);

它工作得很好。

不幸的是,当我尝试使用vidstab稳定视频时,似乎出现以下错误:

ChildProcessError: `ffmpeg -i /tmp/1628240712871_edited.mp4 -vf vidstabdetect=result=transforms.trf -an -f null -` failed with code 1

我认为是因为libvidstab没有用 FFmpeg 激活,如下所述:

要启用此过滤器的编译,您需要使用 --enable-libvidstab 配置 FFmpeg。

你知道我如何激活/使用它吗?

先感谢您

标签: firebasegoogle-cloud-platformgoogle-cloud-functions

解决方案


供您参考,我做到了。

我必须上传自己的二进制文件。为此,我刚刚下载了一个预编译的基于 Debian 的 Linux 环境二进制文件(在这里,但您可以在其他任何地方拥有自己的;))并将其放在函数目录中。之后,我像往常一样部署了这些功能。

这将导致函数与二进制文件一起部署。

我现在可以使用如下命令调用我自己的二进制文件:

import { spawn } from 'child-process-promise';
...
await spawn('./ffmpeg', [
  // my commands
]);

我希望它有帮助;)


推荐阅读