tgd*_*gdn 5 video ffmpeg resolution node.js
我一直试图在没有找到任何答案的情况下得到答案.如果这听起来很愚蠢或明显,请原谅.
我有一个nodejs应用程序,基本上我想简单地获得视频的分辨率.想象一下,我将电影存储在磁盘上,我希望能够知道它是720p还是1080p或其他任何东西.
我知道我可能需要使用ffmpeg这样做,但后来我也明白ffmpeg主要用于"记录,转换和流式处理音频和视频文件".这并不意味着检索视频分辨率.
谢谢您的帮助
编辑1:node.js应用程序是一个桌面应用程序,需要可移植到Linux,Windows和OS X.如果可能,便携式答案将更受欢迎,但当然任何答案都是受欢迎的.
老实说,我认为我找到的最好的方法是使用fluent-ffmpeg和ffprobe,因为你可以设置可执行文件的路径.唯一的问题是ffmpeg必须随应用程序一起提供.因此必须提供不同的可执行文件,每个分发/ os /派生一个.如果有人有更好的东西,我愿意接受答案.
使用fluent-ffmpeg获取宽度,高度和宽高比是这样的:
var ffmpeg = require('fluent-ffmpeg');
ffmpeg.setFfprobePath(pathToFfprobeExecutable);
ffmpeg.ffprobe(pathToYourVideo, function(err, metadata) {
if (err) {
console.error(err);
} else {
// metadata should contain 'width', 'height' and 'display_aspect_ratio'
console.log(metadata);
}
});
Run Code Online (Sandbox Code Playgroud)
有一个npm叫做的包get-video-dimensions也使用ffprobe,它更容易使用。它还支持承诺和异步/等待。
import getDimensions from 'get-video-dimensions';
Run Code Online (Sandbox Code Playgroud)
使用承诺:
getDimensions('video.mp4').then(dimensions => {
console.log(dimensions.width);
console.log(dimensions.height);
})
Run Code Online (Sandbox Code Playgroud)
或异步/等待:
const dimensions = await getDimensions('video.mp4');
console.log(dimensions.width);
console.log(dimensions.height);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5192 次 |
| 最近记录: |