NodeJSでnode-fluent-ffmpegモジュールを使用しています。fluent-ffmpegがビデオとオーディオファイルのメタデータを取得する関数を提供することは非常に良いことです。
https://github.com/schaermu/node-fluent-ffmpeg#reading-video-metadata
Mac OSで、メタデータの「resolution」属性を使用して、ファイルがオーディオのみかビデオかを判断しようとしました。つまり、resolution.wとresolution.hの両方が0の場合、このファイルはオーディオです。これはMacOSで正常に動作します。しかし、最新のffmpegを使用しているWindowsプラットフォーム(私はWindows 764ビットとWindows2008を試しました)ではこれが機能しないという奇妙なことが起こりました。.mp3ファイルをfluent-ffmpegに入れても、結果は次のようになります。
video:
{
container:'mp3',
...
resolution: {w:300,h:300},
resolutionSquare: {w:300,h:300},
aspectString: '1:1',
...
}
audio:
{
codec:'mp3',
bitrate:64,
sample_rate:44100,
stream:0,
channels:1
}
それは純粋なオーディオファイルなので、私は「解像度」がある理由ではありません。それで、ファイルが音声のみであるか、メタデータからのビデオであるかを確認する確実な方法はありますか?それとも、ffmpegコマンドラインを使用してそれを見つける必要がありますか?