【问题标题】:How to check for corrupted webm video using node.js and fluent-ffmpeg?如何使用 node.js 和 fluent-ffmpeg 检查损坏的 webm 视频?
【发布时间】:2017-09-07 01:02:24
【问题描述】:

我想检查编码的 webm 视频是否有错误。 到目前为止,我已经设法使用以下方法捕获错误:

ffmpeg -v error -i ../broken.webm -f null - 

哪个输出:

[matroska,webm @ 0x7fba5400a200] Read error at pos. 110050 (0x1ade2)

我想使用 node.js 和 fluent-ffmpeg 实现相同的输出,但我无法使用 js 包装语法传递 -v error-f null -

我的幼稚尝试是这样的:

// ffmpeg -v error -i ../broken.webm -f null - 
ffmpeg("../broken.webm")
.on('error', function(err) {
    console.error('An error occurred: ',err.message)
})
.save('-f null -')
.on('end', function() {
    console.log('done !')
})

但我立即收到错误:ffmpeg exited with code 1: Unrecognized option '-f null -'.

关于如何使用 fluent-ffmpeg 从 node.js 调用 ffmpeg -v error -i ../broken.webm -f null - 有什么想法吗?

【问题讨论】:

    标签: javascript node.js ffmpeg fluent-ffmpeg


    【解决方案1】:

    您正朝着正确的方向前进,但是还有一些其他条目要添加到您的 ffmpeg 行中来处理您想要的选项。像下面这样的东西应该可以满足您的需要:

    var ffmpeg = require('fluent-ffmpeg');
    var ff = new ffmpeg();
    
    ff.on('start', function(commandLine) {
      // on start, you can verify the command line to be used
      console.log('The ffmpeg command line is: ' + commandLine);
    })
    .on('progress', function(data) {
      // do something with progress data if you like
    })
    .on('end', function() {
      // do something when complete
    })
    .on('error', function(err) {
      // handle error conditions
      if (err) {
        console.log('Error transcoding file');
      }
    })
    .addInput('../broken.webm')
    .addInputOption('-v error')
    .output('outfile')
    .outputOptions('-f null -')
    .run();
    

    Fluent-ffmpeg 将命令行选项分为 addInputOption 和 outputOptions。如果您有多个输出选项,可以将它们作为设置数组传递给 outputOptions。

    请注意,要使用 outputOptions,我认为您需要指定一个输出文件。如果您不需要它,请将其设为临时文件,然后在完成时删除或输出到空设备。查看https://github.com/fluent-ffmpeg/node-fluent-ffmpeg 的fluent-ffmpeg 自述文件页面。它详细介绍了这些和其他选项。

    虽然可能有更好的方法来验证您的文件,但希望这能让您使用 fluent-ffmpeg。

    【讨论】:

    • 非常感谢您分解它!很好地解释了(+1)。如果您有其他更好的方法来验证文件,我将非常乐意尝试。
    • 我没有更好的方法来推荐,这可能是完成您需要的简单直接的方法。我在想可能有通用或特定于编解码器的验证工具可用,但我的快速搜索没有找到任何东西。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多