javascript - 如何使用 node.js 和 Fluent-ffmpeg 检查损坏的 webm 视频?

标签 javascript node.js ffmpeg fluent-ffmpeg

我想检查编码的 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 退出,代码为 1:无法识别的选项“-f null -”。

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

最佳答案

您正朝着正确的方向前进,但是还有一些其他条目需要添加到您的 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,我认为您需要指定一个输出文件。如果您不需要它,请将其设为临时文件,然后在完成后删除或可能输出到空设备。查看 fluid-ffmpeg 自述文件页面 https://github.com/fluent-ffmpeg/node-fluent-ffmpeg 。它详细介绍了这些选项和其他选项。

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

关于javascript - 如何使用 node.js 和 Fluent-ffmpeg 检查损坏的 webm 视频?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43349360/

相关文章:

ASP.net swf 游戏文件预览(缩略图)

javascript - 循环更改视频分辨率

android - 如何在android中使用ffmpeg从mp4视频中获取视频帧?

javascript - 使用 JavaScript 在输入框旁边显示错误消息

Node.js for 循环内的 for 循环

javascript - 在 IE 中中止表单发布

node.js - 使用node.js上传文件到S3

node.js - 如何从 node.js 更新 mongodb 文档?

javascript - 是否可以在 Safari 6 中启用 JavaScript 源映射?

javascript - 如何使用样式正则表达式剥离 p 标签