zoukankan      html  css  js  c++  java
  • nodo合并多个mp3文件

    nodo合并多个mp3文件

    • 会使用到node中的fs - 文件系统
    import fs from 'fs';
    
    //读取目录下的文件,返回文件名数组[0x2.mp3,f0k.mp3];
    const files = fs.readdirSync('./files');
    
    //遍历文档数组重命名
    files.forEach((item,index)=>{
        fs.rename(`./files/${item}`, `./files/MEC Loading_${index}.mp4`,(err)=>{
            if (err) throw err;
            console.log(`文件${item}--renamed!`);
        });
    });
    
    // 通过流的形式合并文件
    let currentfile;
    let stream;
    //在当前目录创建一个流文件.将其他文件流写入其中
    let dhh = fs.createWriteStream('./done.mp4');
    
    function main() {
        if (!files.length) {
            dhh.end("Done");
            return;
        }
        // 删除文件数组中的第一个元素,并返回第一个元素
        currentfile = './files/' + files.shift();
        // 获取第一个文件的流
        stream = fs.createReadStream(currentfile);
        // 写入创建好的流文件中
        stream.pipe(dhh, {end: false});
        // 当前文件写入完成回调
        stream.on("end", function() {
            console.log(currentfile + ' appended');
            main();
        });
    }
    // 递归合并所有流
    main();
    
    

    参考文档

    nodo合并多个视频文件

    import fs from 'fs';
    import path from 'path';
    import ffmpeg from 'fluent-ffmpeg';
    //使用ffmpeg工具
    ffmpeg.setFfmpegPath(path.join(__dirname, '/ffmpeg/bin/ffmpeg.exe'));
    ffmpeg.setFfprobePath(path.join(__dirname, '/ffmpeg/bin/ffprobe.exe'));
    
    
    ffmpeg()
      .input('./files/MEC Loading_0.mp4') //需要合并的视频part1
      .input('./files/MEC Loading_1.mp4') //需要合并的视频part2
      .on('end', function() {
        console.log('Merging finished !');
      })
      .mergeToFile('./Merging.mp4'); //输出目录
    };
    
    
    /*
        使用fluent-ffmpeg合并视频文件
     */
    
    let videoNames = [];
    // 注意文件排序
    files.forEach(item => {
        videoNames.push(`./files/${item}`);
    });
    
    var fluent_ffmpeg = require("fluent-ffmpeg");
    
    var mergedVideo = fluent_ffmpeg();
    
    videoNames.forEach(function(videoName){
        mergedVideo = mergedVideo.addInput(videoName);
    });
    
    mergedVideo.mergeToFile('./mergedVideo.ts', './tmp/')
    .on('error', function(err) {
        console.log('Error ' + err.message);
    })
    .on('end', function() {
        console.log('Finished!');
    });
    
  • 相关阅读:
    第三天 moyax
    mkfs.ext3 option
    write file to stroage trigger kernel warning
    download fomat install rootfs script
    custom usb-seriel udev relus for compatible usb-seriel devices using kermit
    Wifi Troughput Test using iperf
    learning uboot switch to standby system using button
    learning uboot support web http function in qca4531 cpu
    learngin uboot design parameter recovery mechanism
    learning uboot auto switch to stanbdy system in qca4531 cpu
  • 原文地址:https://www.cnblogs.com/hideonbush/p/9976396.html
Copyright © 2011-2022 走看看