簡體   English   中英

如何使用node.js和fluent-ffmpeg檢查損壞的webm視頻?

[英]How to check for corrupted webm video using node.js and 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 exited with code 1: Unrecognized option '-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,我認為您需要指定一個輸出文件。 如果不需要它,請將其設置為臨時文件,然后在完成時刪除,或者將其輸出到空設備。 https://github.com/fluent-ffmpeg/node-fluent-ffmpeg上查看fluent-ffmpeg自述頁面。 它詳細介紹了這些選項和其他選項。

盡管可能會有更好的方法來驗證文件,但希望這可以使您使用fluent-ffmpeg。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM