Node.js:获取一个mp4文件的音视频格式信息
Node.js: get video and audio format information of an mp4 file
我是 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 并读取/解析标准输出(我认为周围有很多例子)。但是我宁愿使用 node.js "native" 解决方案。
好的,找到了...
模块是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
我是 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 并读取/解析标准输出(我认为周围有很多例子)。但是我宁愿使用 node.js "native" 解决方案。
好的,找到了...
模块是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