使用ffmpeg获取目录中音频长度和文件大小

如何获取目录中的所有音频MP3文件,并将MP3的长度和文件大小获取出来。直接看代码

const fs = require('fs'),
    path = require('path')
var ffmpeg = require('ffmpeg')

// 音频目录
const mp3DirPath = '/Users/administrator/Desktop/'

let files = fs.readdirSync(mp3DirPath)

/**
* 获取音频文件的信息
*/
async function getMP3Info(mp3Path) {
    let stat = fs.statSync(mp3Path)
    var process = await new ffmpeg(mp3Path)
    let metadata = process.metadata
    let duration = metadata.duration.seconds
    let size = stat.size 
    return {
        duration,
        size
    }
}

async function main() {

    let mp3InfoMap = {}
    for (let i = 0; i < files.length; i++) {
        let filename = files[i]
        // 获取音频文件的文件名,不包括后缀
        let name = path.basename(filename, '.mp3')

        let url = mp3DirPath + filename
        let {duration, size} = await getMP3Info(url)

        mp3InfoMap[name] = {
            duration,
            size,
            filename:filename
        }
        console.log(filename,duration,size)
    }
}

main()

https://img.cssjs.cn/upload/6485ef08eca2b35094ce3a2b6d0d1483.png

关闭(Esc)