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!');
});

nodo合并多个mp3文件的更多相关文章

  1. swift 录制多个音频 并将音频转换为mp3 并合成多个mp3文件为一个文件

    我的需求是可以录制多个文件,最后生成的文件格式为mp3形式,查了下各种资料,因为swift无法直接将音频录制为mp3格式,所以最后我采取的解决方案为先将每个单独的文件转为mp3,最后逐一合并形成一个m ...

  2. 如何把微信语音汇总成一个MP3文件?

    有的时候想要保存微信中的语音内容,但是苦于语音短且多,因此想要把它汇总成一个音频文件. 本篇以苹果手机为例,安卓手机也可类似. 第一步,安装同步助手 同步助手是一款在电脑上安装,可以保存手机上的内容的 ...

  3. C# 合并及拆分PDF文件

    C# 合并及拆分PDF文件 有时我们可能会遇到下图这样一种情况 — 我们需要的资料或教程被分成了几部分存放在多个PDF文件中,不管是阅读还是保存都不是很方便,这时我们肯定想要把这些PDF文件合并为一个 ...

  4. MP3文件信息批量更改器

    以前(估计是2003年)编写一个MP3文件信息批量更改器MP3TagChanger,现放上来参考.(VB6编码) 使用方法很简单,会Winamp或者千千静听的就懂使用. http://pan.baid ...

  5. MP3文件ID3信息编辑器代码开源 - 开源研究系列文章

    上次把磁性窗体的源码开源了,这次就开源另一个程序源码:MP3文件ID3信息编辑器.这个源码也比较简单,关键在于获取和写入MP3文件的这个ID3的信息即可. 这个操作信息编辑的就封装在MP3ID3.ba ...

  6. C# 将多个office文件转换及合并为一个PDF文件

    PDF文件介绍 PDF(Portable Document Format )文件源于20世纪90年代初期,如今早已成为了一种最流行的的文件格式之一.因为PDF文件有很多优点: 支持跨平台和跨设备共享 ...

  7. 读取SD卡文件夹下的MP3文件和播放MP3文件

    首先获取SD卡path路径下的所有的MP3文件,并将文件名和文件大小存入List数组(此代码定义在FileUtils类中): /** * 读取目录中的Mp3文件的名字和大小 */ public Lis ...

  8. C# 获取 mp3文件信息

    C# 获取 mp3文件信息[包括:文件大小.歌曲长度.歌手.专辑] 第一种方式:[代码已验证] // http://bbs.csdn.net/topics/390392612   string fil ...

  9. 【ASP.NET 进阶】获取MP3文件信息并显示专辑图片

    突发奇想,想弄个显示MP3文件信息和专辑图片的小Demo,个人不是大牛,遂百度之,总算搞定,现分享如下. 效果图: GIF效果图: 主要是依靠2个DLL文件:ID3.dll 和 Interop.She ...

随机推荐

  1. BootStrap Modal 点击空白时自动关闭

    本文为大家讲解的是如何禁用 BootStrap Modal 点击空白时自动关闭的方法,感兴趣的同学参考下. 方法如下 $('#myModal').modal({backdrop: 'static', ...

  2. Springboot第五篇:结合myBatis进行SQL操作

    前提:和之前同样的,本篇会从前端和后台一起讲述关于SQL的select操作(其他操作原理大致类似,不多做解释了). 大致流程:前端通过AJAX将数据发送到后台的路由,后台路由会根据发送的数据进行SQL ...

  3. python附录-re.py模块源码(含re官方文档链接)

    re模块 python官方文档链接:https://docs.python.org/zh-cn/3/library/re.html re模块源码 r"""Support ...

  4. Linux网络编程服务器模型选择之并发服务器(下)

    前面两篇文章(参见)分别介绍了循环服务器和简单的并发服务器网络模型,我们已经知道循环服务器模型效率较低,同一时刻只能为一个客户端提供服务,而且对于TCP模型来说,还存在单客户端长久独占与服务器的连接, ...

  5. ACM练习网站

    1.http://www.acmerblog.com/ Acm之家 2.http://acm.nyist.net/JudgeOnline/problemset.php 南阳理工学院

  6. AngularJS $timeout和 $interval ,定时器手机验证码倒计时

    $interval是 window.setInterval的Angular包装形式.$interval指每次延迟时间后执行响应的函数(也可以说:每次执行函数的间隔时间).$interval多数用于计时 ...

  7. Spark Launcher

  8. Table '.\gts\eventdata#P#p0' is marked as crashed and last (automatic?) repair failed

    修复数据表操 MYSQL数据表出现问题,提示:Error: Table './db_name/table_name' is marked as crashed and last (automatic? ...

  9. Ibatis框架之系统架构

    如果用最简洁的话来总结 iBATIS 主要完成那些功能时,我想下面几个代码足够概括. Class.forName("oracle.jdbc.driver.OracleDriver" ...

  10. html中设置textbox的宽和高

    1.宽:width是不行的,而应该用size size=30,表示能输入30个字符 2.高:  style="height:50px"