Node.js:获取mp4文件的video和audio格式信息

我是node.js的新手 我需要为给定的video文件提取audio和video格式(编解码器)信息。 我知道如何在bash中这样做,这要感谢mplayer:

$ mplayer -vo null -ao null -identify -frames 0 myvideo.mp4 2>/dev/null | grep FORMAT ID_VIDEO_FORMAT=H264 ID_AUDIO_FORMAT=MP4A 

我想知道是否有一个npm模块(库),让我得到相同的信息。 或者我可以启动上面的命令formsnode.js和读取/parsing标准输出(我认为有很多的例子)。 不过,我宁愿使用node.js“原生”解决scheme。

好的,find了…

模块是fluent-ffmpeg( npm install fluent-ffmpeg ),下面是如何获取信息:

 var ffmpeg = require('fluent-ffmpeg'); ffmpeg.ffprobe('/path/to/my/video.mp4',function(err, metadata) { console.log(metadata); }); 

或者更加个性化的例子:

 var ffmpeg = require('fluent-ffmpeg'); ffmpeg.ffprobe('/path/to/my/video.mp4',function(err, metadata) { var audioCodec = null; var videoCodec = null; metadata.streams.forEach(function(stream){ if (stream.codec_type === "video") videoCodec = stream.codec_name; else if (stream.codec_type === "audio") audioCodec = stream.codec_name; }); console.log("Video codec: %s\nAudio codec: %s", videoCodec, audioCodec); }); 

输出:

 Video codec: h264 Audio codec: aac