当前位置: 首页 > news >正文

electron录制工具-视频保存、编辑页面

效果如下

electron录屏-保存录制视频

资源

导出视频使用了 mp4-wasm,基本使用,可参考 此文

想法

1、点击按钮导出,弹出选择保存文件夹
2、保存成功后,自动打开保存后文件夹窗口并关闭窗口

实现

获取保存文件夹路径,并利用 mp4-wasm 转换视频;

   // render
	const floder = await window.electron.ipcRenderer.invoke('select-folder-render')
	// 利用 mp4-wasm 转换视频
	const MP4 = await loadMP4Module();
		const encoder = MP4.createWebCodecsEncoder({
			width: exportCanvasRef.current?.width,
			height: exportCanvasRef.current?.height,
			fps: 60})
			....

当视频转换完成之后,把mp4wasm转换后的数据发送到main进程,进行保存处理

// render 
	await window.electron.ipcRenderer.invoke('exprot-blob-render',  { arrayBuffer: buf, folder: savaFolder }); 

main进程监听两个事件,一个是选择保存路径,一个是保存视频处理

ipcMain.handle('select-folder-render', async () => {
			const options: OpenDialogOptions = {
				properties: ['openDirectory'],
			};
			const results = await dialog.showOpenDialog(options)
			if (!results.canceled) {
				return results.filePaths[0]
			}
			return ''
		})
ipcMain.handle('exprot-blob-render', async (_, {arrayBuffer, folder} ) => {
			const buffer = Buffer.from(arrayBuffer);  
			const filePath = `${folder}/av-craft-${timestamp2Time(new Date().getTime())}.mp4`
			fs.writeFileSync(filePath, buffer);
			// 导出成功后,2s之后退出应用
			setTimeout(() => {
				openFolderInExplorer(folder)
				app.quit()
			}, 1 * 1000)
			return filePath
		})

代码

注:代码中播放视频是video 与 canvas 结合

相关文章:

  • 【Java04】引用变量数组初始化的内存机制
  • STL-常用容器
  • 10.Docker Compose容器编排
  • 学单片机前先学什么?
  • 树莓派4B_OpenCv学习笔记10:调整视频帧大小
  • Ubuntu 22.04 解决 firefox 中文界面乱码
  • 活动集锦 | 英码科技积极参与行业盛会,AI赋能城市数字化转型
  • Optional详解和常用API
  • 对LitJson开源插件的自定义尝试
  • EasyExcel文件导出,出现有文件但没有数据的问题
  • 揭开 Docker 容器的神秘面纱:深入理解容器原理
  • 【网络安全】【深度学习】【入侵检测】SDN模拟网络入侵攻击并检测,实时检测,深度学习【二】
  • JVM常用概念之线程本地分配缓冲区(ThreadLocal Allocation Buffer,TLAB)
  • 【双系统 安装ADB】
  • Oracle中select取值后的字符串处理
  • 跨服务器迁移 Redis 数据
  • Web前端开发12章:深入探索与实战解析
  • 在不使用js在情况下只用css实现瀑布流效果
  • Java项目之消息队列(手写java模拟实现mq)【七、⽹络通信协议设计、消息队列服务器端实现、客户端实现】✔ ★
  • Oracle复习部分记录
  • 五一假期上海境外来沪消费4.55亿元,同比增长211.6%
  • 胖东来回应“浙江‘胖都来’卖场开业”:已取证并邮寄律师函
  • “五一”假期首日:国铁南宁局发送旅客81.7万人次
  • 乌美矿产协议文本公布,明确乌收益及协议优先级
  • 人民日报钟声:国际社会应共同维护科学溯源的正确方向
  • 神十九都带回了哪些实验样品?果蝇等生命类样品已交付科学家