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 结合

最近更新

  1. TCP协议是安全的吗?

    2024-06-17 08:20:04       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-17 08:20:04       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-17 08:20:04       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-17 08:20:04       18 阅读

热门阅读

  1. Leetcode 3187. Peaks in Array

    2024-06-17 08:20:04       6 阅读
  2. CentOS下的miniconda3安装

    2024-06-17 08:20:04       6 阅读
  3. jvm工具-jps、jstat、jmap、jstack

    2024-06-17 08:20:04       7 阅读
  4. DAG(有向无环图)-入门基础

    2024-06-17 08:20:04       7 阅读
  5. PostgresSQL测评

    2024-06-17 08:20:04       5 阅读
  6. 苹果新型基于home app的骚扰

    2024-06-17 08:20:04       5 阅读
  7. HTML列表指南:有序、无序与自定义列表的妙用

    2024-06-17 08:20:04       5 阅读