fluent-ffmpeg
fluent-ffmpeg 只能在electron 主进程使用
安装 yarn add fluent-ffmpeg
修改 /node_modules/fluent-ffmpeg/index.js
// module.exports = process.env.FLUENTFFMPEG_COV ? require('./lib-cov/fluent-ffmpeg') : require('./lib/fluent-ffmpeg'); // 下面这种方式也可以 // module.exports = require(`./lib${process.env.FLUENTFFMPEG_COV ? '-cov' : ''}/fluent-ffmpeg`) module.exports = require('./lib/fluent-ffmpeg');
lib-cov/fluent-ffmpeg 没有直接不引入就可以了
这么修改有问题,安装其他插件时,这里可能会被还原,需要在去修改 暂时没有找到好的方法
import ffmpeg from 'fluent-ffmpeg';
ffmpeg(srcPath, options) // 如果本地安装了ffmpeg 并配置到环境变量的path中setFfmpegPath可以不设置 // 建议把ffmpeg嵌入到应用中,不然做好的应用放到没有安装ffmpeg的机器上就不能运行了 .setFfmpegPath('ffmpeg.exe的全路径') .audioCodec('aac') .videoCodec('libx264') .audioBitrate('128k') // .input('/path/to/video.avi') 输入文件 可以多个 addInput mergeAdd 和input效果一样下 这三个函数用哪个都可以 // mergeToFile('/path/to/merged.avi', '/path/to/merge') 合并多个输入文件为一个文件 第二个参数为临时文件夹 // .videoBitrate('1024k', true) 视频比特率 true强制执行恒定比特率 // .videoBitrate('1024k') // .size('640x480') // .size('640x?') // .size('640x?').aspect('4:3') size 为固定值或百分比 aspect 无效 // .size('50%') 将宽度和高度缩放至指定宽高比 // .audioChannels(2) // .noVideo() // .noAudio() .fps(25) .output(outPath) .on('codecData', data => { // 获取视频的信息 console.log('codecData:', data) }) .on('error', (err, stdout, stderr) => { console.error(err); console.error(stdout); console.error(stderr); reject(err); }) .on('start', (str) => { console.log('开始:', str) }) .on('progress', (process) => { console.log('进度:', process) }) .on('end', (str) => { console.log('结束:', str); resolve(); }) .run()
分类:
javaScript
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端