You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Cloud Functions 2代中ffprobe返回空错误对象的问题求助

问题:在Google Cloud Functions 2代中使用ffprobe获取GCS视频元数据失败

更新:经过进一步排查,发现有其他用户遇到相同问题的公开议题。


我在Google Cloud Function(2代)中尝试使用ffprobe获取存储在Google Cloud Storage存储桶中视频文件的元数据。据我了解,生成签名URL并直接传入ffprobe可以避免将整个视频文件加载到内存中。我生成签名URL后传入ffprobe,代码如下:

import ffmpeg from 'fluent-ffmpeg'
import ffprobeStatic from 'ffprobe-static'

async function getVideoData(srcFile: File) {
    const [signedUrl] = await srcFile.getSignedUrl({
        action: 'read',
        expires: (new Date()).getMilliseconds() + 60_000,
    })

    const videoData: ffmpeg.FfprobeData = await new Promise((resolve, reject) => {
        ffmpeg.setFfprobePath(ffprobeStatic.path)
        ffmpeg.ffprobe(signedUrl, (err, data) => {
            if (err) {
                reject(err)
            }
            else {
                resolve(data)
            }
        })
    })

    return videoData
}

这段代码在本地macOS机器上(使用相同的签名URL)可以正常运行,但部署到2代Google Cloud Function后无法正常工作。在云端环境中,data为undefined,err为{}。

我的核心问题是如何在2代Google Cloud Functions中正确使用ffprobe。GCP上关于ffmpeg/ffprobe的文档十分匮乏,同时我也想弄清楚为何错误对象err为空,这对排查问题毫无帮助 😅

补充信息:

  • 环境:Google Cloud Functions 2代
  • 运行时:Node 20
  • "ffprobe-static": "3.1.0"
  • "fluent-ffmpeg": "2.1.2"

提前感谢各位的帮助。

内容的提问来源于stack exchange,提问作者willbattel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 13:47:42