错误:无法获得输入持续时间,请指定固定时间标记

时间:2015-04-22 13:06:10

标签: node.js ffmpeg

我正在使用Node.js的fluent-ffmpeg模块生成屏幕截图。

我使用了以下代码片段来实现这一目标 -

var filePath = "../app/webroot/img/uploads/video/50_1429701765.mp4";
var destFolder = "../app/webroot/img/uploads/video/screenshots";
var fileName = "screenshots.png";
generateScreenshot(filePath, fileName, destFolder);
function generateScreenshot(filePath, fileName, destFolder) {

    ffmpeg(filePath)
            .screenshots({
                timestamps: ['01%'],
                filename: fileName,
                folder: destFolder,
                size: '320x240'
            });

}

但我收到的错误如下 -

Error: Could not get input duration, please specify fixed timemarks
    at /var/www/html/tcpapi/node_modules/fluent-ffmpeg/lib/recipes.js:182:29
    at /var/www/html/tcpapi/node_modules/fluent-ffmpeg/lib/recipes.js:162:11

虽然我已经设置了时间标记,但屏幕截图并非由此生成。

任何人都有任何建议摆脱这个错误。

由于

2 个答案:

答案 0 :(得分:0)

在fluent-ffmpeg模块中,仍然存在一些缺点。因此,他们提供了另一种解决方案。它真正帮助那些面临问题的人,就像我提到的那样。

您可以通过以下命令在您的应用中安装模块的新版本

npm i fluent-ffmpeg-extended

有关详情,您可以看到较新的link模块

由于

答案 1 :(得分:0)

我收到这个错误是因为我是从 youtube 上进行 StreamWriting,所以当我从不同格式的路径获取视频时,请使用 ffprobe 确保您的视频文件是正确的,如下所示:

Rails.application.config.session_store :cookie_store, key: _our_company_session

它还在 ffmpeg 上生成用于制作屏幕截图、缩略图等的输入。

可能需要设置ffprobe路径:

ffmpeg.ffprobe(path_to_video,function(err,metadata){
  console.log("Metadata: ",metadata)
})

然后在获取元数据之前获取探测路径:

ffmpeg.setFfprobePath('D:/ffmpeg/bin/ffprobe.exe');