• 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!');
    });
    
  • 相关阅读:
    HTML5表单_form
    HTML第二篇
    快速创建1000个目录
    centos7忘记root密码重置
    centos7更改网卡名称
    centos7磁盘在线扩容
    sqlserver开启远程访问
    安装php后无法动态加载库
    编译openssl和Apache报错checking for SSL_CTX_new... no
    centos6.5设置key登录
  • 原文地址:https://www.cnblogs.com/hideonbush/p/9976396.html
Copyright © 2020-2023  润新知