gpt4 book ai didi

firebase - 你能在 Firebase 云函数中调用 FFMPEG

转载 作者:行者123 更新时间:2023-12-04 23:01:55 24 4
gpt4 key购买 nike

根据 Firebase Cloud Functions 文档,您可以在云函数中利用 ImageMagick:https://firebase.google.com/docs/functions/use-cases

是否可以做类似的事情但调用 FFMPEG 而不是 ImageMagick?虽然缩略图图像很棒,但我还希望能够将传入的图像附加到存储在 Firebase Storage 上的视频文件中。

最佳答案

更新:ffmpeg现在已预安装在 Cloud Functions 环境中。如需预装软件包的完整列表,请查看 https://cloud.google.com/functions/docs/reference/system-packages .
注:你只有磁盘访问 /tmp/ .
选项 1:使用 ffmpeg-fluent npm 模块
该模块使用易于使用的 Node.js 模块抽象了 ffmpeg 命令行选项。

const ffmpeg = require('fluent-ffmpeg');

let cmd = ffmpeg('example.mp4')
.clone()
.size('300x300')
.save('/tmp/smaller-file.mp4')
.on('end', () => {
// Finished processing the video.
console.log('Done');

// E.g. return the resized video:
res.sendFile('/tmp/smaller-file.mp4');
});
Full code on GitHub
选项 2:直接调用 ffmpeg 二进制文件
因为 ffmpeg已安装,您可以通过 shell 进程调用二进制文件及其命令行选项。
const { exec } = require("child_process");

exec("ffmpeg -i example.mp4", (error, stdout, stderr) => {
//ffmpeg logs to stderr, but typically output is in stdout.
console.log(stderr);
});
Full code on GitHub
选项 3:上传您自己的二进制文件
如果您需要特定版本的 ffmpeg,您可以在上传时包含一个 ffmpeg 二进制文件,然后使用类似 child_process.exec 的内容运行 shell 命令。 .您需要为目标平台 (Ubuntu) 编译的 ffmpeg 二进制文件。
带有预编译的 ffmpeg 二进制文件的文件列表
./
../
index.js
ffmpeg
index.js
const { exec } = require("child_process");

exec("ffmpeg -i example.mp4", (error, stdout, stderr) => {
//ffmpeg logs to stderr, but typically output is in stdout.
console.log(stderr);
});
我已包含 two full working examples on GitHub .这些示例适用于 Google Cloud Functions(不是专门针对 Firebase 的 Cloud Functions)。

关于firebase - 你能在 Firebase 云函数中调用 FFMPEG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63858641/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com