firebase - 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。
你知道我如何激活/使用它吗?
先感谢您
解决方案
供您参考,我做到了。
我必须上传自己的二进制文件。为此,我刚刚下载了一个预编译的基于 Debian 的 Linux 环境二进制文件(在这里,但您可以在其他任何地方拥有自己的;))并将其放在函数目录中。之后,我像往常一样部署了这些功能。
这将导致函数与二进制文件一起部署。
我现在可以使用如下命令调用我自己的二进制文件:
import { spawn } from 'child-process-promise';
...
await spawn('./ffmpeg', [
// my commands
]);
我希望它有帮助;)
推荐阅读
- pandas - 从 For 循环结果向数据框添加值
- reactjs - Reactjs 有没有办法组合多个受保护的路由器?
- java - 有没有办法在 SAP Hybris 6.2 上运行 Spartacus?
- rust - 如何在 Rust 中实现测试和测试和设置
- javascript - Alpine.js 表单有多项选择,如何获取选项值?
- ruby - ruby 通过单独的输入获取值
- c++ - C++ STL Vector 相当于 Rust 中的 set_len()
- android - How to provide Custom name for generated DataBinding Class?
- docker - 如何使用单独的数据库服务器运行 Bitnami Drupal 容器
- mysql - 调用过程的SQL命令,传递orderID为2000