gcp 云函数上的 ffmpeg 静态错误

问题描述 投票:0回答:1
const ffmpegPath = require('ffmpeg-static');
const spawn = require('child_process').spawn;

function extractFrames(inputFile, outputFile, fps = 0.1) {
    return new Promise((resolve, reject) => {
        const ffmpeg = spawn(ffmpegPath, [
            '-i', inputFile,
            '-vf', `fps=${fps}`,
            outputFile
        ]);

        ffmpeg.on('close', resolve);
        ffmpeg.on('error', reject);
    });
}

此代码给出错误“未捕获信号:11,pid=15,tid=15,fault_addr=99”。在 gcp 云功能上,我尝试将帧保存在“/tmp”文件夹中。但是,我收到此错误。

我的 ffmpeg-static 版本是:5.2.0

在本地主机上运行时,这工作得很好。但是,在 gcp 上,它给出了错误。

node.js google-cloud-platform ffmpeg google-cloud-functions video-processing
1个回答
0
投票

根据您收到的错误消息,这似乎是库版本的问题。

我建议您查看此GitHub Issue,其中建议使用旧版本的node.js。还要检查安装的版本是否与您正在使用的库版本兼容。这似乎也是一个悬而未决的问题,这不是一个完整的答案,而是一个解决方法。

在 Ubuntu 22.04 上使用 Node 20 的第二代 Google Cloud Functions 中遇到此问题。令人沮丧的是,这似乎已经成为人们的一个问题多久了。

鉴于人们报告这适用于旧版本的 Node 和/或 Ubuntu,我想知道这是否是 ffmpeg 或 Node(或两者)的问题。降级到旧版本并不是一个有吸引力的长期解决方案,因此我尝试进行更多挖掘,看看是否可以在这里找到问题根源的任何迹象。

也可以查看另一个Github链接来了解

ffmpeg-static
支持的版本环境。我可以看到您正在使用
ffmpeg-static
5.2.0 版本,但根据此 Github Link 最新使用的
ffmpeg-static
版本是 6.0。

© www.soinside.com 2019 - 2024. All rights reserved.