Node.js:获取mp4文件的视频和音频格式信息

时间:2016-03-29 08:10:42

标签: javascript node.js bash video codec

我是node.js的新手。 我需要提取给定视频文件的音频和视频格式(编解码器)信息。 我知道如何在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模块(库)允许我获取相同的信息。或者,我可以启动上面的命令格式node.js和read / parse stdout(我认为有很多例子)。但是我宁愿使用node.js“native”解决方案。

1 个答案:

答案 0 :(得分:8)

好的,找到了......

该模块是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
相关问题