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合并多个视频文件
- fluent-ffmpeg第三方库
- 下载ffmpeg工具 下载好后解压到此程序的根目录
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文件的更多相关文章
- swift 录制多个音频 并将音频转换为mp3 并合成多个mp3文件为一个文件
我的需求是可以录制多个文件,最后生成的文件格式为mp3形式,查了下各种资料,因为swift无法直接将音频录制为mp3格式,所以最后我采取的解决方案为先将每个单独的文件转为mp3,最后逐一合并形成一个m ...
- 如何把微信语音汇总成一个MP3文件?
有的时候想要保存微信中的语音内容,但是苦于语音短且多,因此想要把它汇总成一个音频文件. 本篇以苹果手机为例,安卓手机也可类似. 第一步,安装同步助手 同步助手是一款在电脑上安装,可以保存手机上的内容的 ...
- C# 合并及拆分PDF文件
C# 合并及拆分PDF文件 有时我们可能会遇到下图这样一种情况 — 我们需要的资料或教程被分成了几部分存放在多个PDF文件中,不管是阅读还是保存都不是很方便,这时我们肯定想要把这些PDF文件合并为一个 ...
- MP3文件信息批量更改器
以前(估计是2003年)编写一个MP3文件信息批量更改器MP3TagChanger,现放上来参考.(VB6编码) 使用方法很简单,会Winamp或者千千静听的就懂使用. http://pan.baid ...
- MP3文件ID3信息编辑器代码开源 - 开源研究系列文章
上次把磁性窗体的源码开源了,这次就开源另一个程序源码:MP3文件ID3信息编辑器.这个源码也比较简单,关键在于获取和写入MP3文件的这个ID3的信息即可. 这个操作信息编辑的就封装在MP3ID3.ba ...
- C# 将多个office文件转换及合并为一个PDF文件
PDF文件介绍 PDF(Portable Document Format )文件源于20世纪90年代初期,如今早已成为了一种最流行的的文件格式之一.因为PDF文件有很多优点: 支持跨平台和跨设备共享 ...
- 读取SD卡文件夹下的MP3文件和播放MP3文件
首先获取SD卡path路径下的所有的MP3文件,并将文件名和文件大小存入List数组(此代码定义在FileUtils类中): /** * 读取目录中的Mp3文件的名字和大小 */ public Lis ...
- C# 获取 mp3文件信息
C# 获取 mp3文件信息[包括:文件大小.歌曲长度.歌手.专辑] 第一种方式:[代码已验证] // http://bbs.csdn.net/topics/390392612 string fil ...
- 【ASP.NET 进阶】获取MP3文件信息并显示专辑图片
突发奇想,想弄个显示MP3文件信息和专辑图片的小Demo,个人不是大牛,遂百度之,总算搞定,现分享如下. 效果图: GIF效果图: 主要是依靠2个DLL文件:ID3.dll 和 Interop.She ...
随机推荐
- HDU-6125-Friend-Graph-2017CCPC网络赛(图论,拉姆齐定理-组合数学)
Friend-Graph Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) To ...
- ubuntu16.04 安装 mysql-level
ubuntu16.04 安装 mysql-level 1.下载 mysql-level(直接去官网下载rpm包,我的mysql-server是5.7.9.你下载自己对应的就可以了) 下载连接 2.rp ...
- 架构师养成记--16.disruptor并发框架中RingBuffer的使用
很多时候我们只需要消息中间件这样的功能,那么直需要RinBuffer就可以了. 入口: import java.util.concurrent.Callable; import java.util.c ...
- 一段话理解 MDX中的Select 、轴、COLUMNS、ROWS
理解 SELECT Understanding the SELECT statement SELECT 语句的目的是定义新的 Cube 空间,新的Cube 空间是由类似于 COLUMNS或者ROWS ...
- hiho#1445 重复旋律5 求子串数量 后缀自动机
题目传送门 题意:给出一个字符串,求子串的个数. 思路:后缀自动机的题真是每做一题就更理解一些. SAM中的每一状态$p$都代表了一种子串,而p包含的字符串的个数是$len[p]-len[fa[p]] ...
- 04-树6 Complete Binary Search Tree (30 分)
A Binary Search Tree (BST) is recursively defined as a binary tree which has the following propertie ...
- 关于Matlab串口发送HEX格式字符
终于想起来更新一下关于使用Matlab串口发送HEX格式字符.这个用法主要来自于我使用Matlab对机器人进行实时轨迹跟踪的绘制,由于底层限制,自己又不想在中间增加转换模块,就需要直接发送HEX格式指 ...
- nodejs(四) --- cluster模块详解
什么是cluster模块,为什么需要cluster模块? cluster在英文中有集.群的意思. nodejs默认是单进程的,但是对于多核的cpu来说, 单进程显然没有充分利用cpu,所以,node ...
- Android版本信息及与Linux和Java的关系
1.Android与Linux和Java的关系 Android严格来说,不能算是Linux,Android是一个统称,具体来说,是Google用了Linux的一个核心,用这个核心来管理进程,控制硬件. ...
- 2 小时学会 Spring Boot
一. 什么是 Spring Boot Takes an opinionated view of building production-ready Spring applications. Sprin ...