2017-04-11 16 views
0

エンコードされたwebmビデオにエラーがあるかどうか確認したいと思います。出力node.jsと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 -'.

私は流暢-ffmpegのを使ってNode.jsのからffmpeg -v error -i ../broken.webm -f null -を呼び出すことができる方法上の任意のアイデアを?

答えて

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(); 

流暢-ffmpegのはaddInputOptionとoutputOptionsにコマンドラインオプションを分離します。複数の出力オプションがある場合は、outputOptionsに設定の配列として渡すことができます。

outputOptionsを使用するには、出力ファイルを指定する必要があることに注意してください。必要がない場合は、一時ファイルにしてから完了時に削除するか、ヌルデバイスに出力してください。 fluent-ffmpegのreadmeページ(https://github.com/fluent-ffmpeg/node-fluent-ffmpeg)を見てください。これらのオプションやその他のオプションについて詳しく説明しています。

あなたのファイルを検証する良い方法があるかもしれませんが、うまくいけば、これはあなたが流暢なffmpegで行くようになります。

+0

ありがとうございました!とてもうまく説明しました(+1)。 ファイルを検証する他のより良い方法がある場合は、それらを試してみるのが嬉しいです。 –

+1

私は、より良い方法をお勧めしていない、これはおそらくあなたが必要なものを達成するための簡単かつ直接的な方法です。私は一般的な目的やコーデック固有の検証ツールが利用可能かもしれないと思っていましたが、私のクイック検索では何も表示されませんでした。 – Rayzzor

関連する問題