gpt4 book ai didi

node.js - 使用 Fluent-ffmpeg 判断文件是视频还是音频

转载 作者:太空宇宙 更新时间:2023-11-03 22:18:48 27 4
gpt4 key购买 nike

我在 NodeJS 中使用 node- Fluent-ffmpeg 模块。流利的ffmpeg提供了获取视频和音频文件元数据的功能,这非常好。

https://github.com/schaermu/node-fluent-ffmpeg#reading-video-metadata

我曾尝试在Mac OS上使用元数据中的“分辨率”属性来判断文件是纯音频还是视频,即如果resolution.w和resolution.h都为0,则该文件是音频。这在 Mac 操作系统上运行良好。但发生了一些奇怪的事情,这在使用最新的 ffmpeg 的 Windows 平台上不起作用(我已经尝试过 Windows 7 64 位和 Windows 2008)。即使我通过 Fluent-ffmpeg 放置了 .mp3 文件,结果看起来像这样:

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 命令行来查找它?

最佳答案

Fluent-ffmpeg 2.0 起,您不再需要其他软件包。

元数据子模块被 ffprobe() 方法取代。

它的用法如下:

var ffmpeg = require('fluent-ffmpeg');

ffmpeg('/path/to/file.avi').ffprobe(function(err, data) {
console.dir(data.streams);
console.dir(data.format);
});

ffmpeg.ffprobe('/path/to/file.avi', function(err, data) {
console.dir(data.streams);
console.dir(data.format);
});

通过这种方式,您可以方便地检查分辨率/编解码器或其他流属性以区分彼此。

希望这对使用更新后的库的任何人都有帮助。

关于node.js - 使用 Fluent-ffmpeg 判断文件是视频还是音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12390402/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com