求助前端:如何将 Canvas 导出为 mp4 格式?

2023-10-07 14:49:41 +08:00
 ChatGPTPRO

网上这个开源项目,是一个可视化的音乐播放器,可以根据音乐动态的创建可视化节奏。 https://github.com/leon-kfd/g-music-visualizer#run-the-project

[img]https://i.imgur.com/6Rv3Uuu.png[/img]

它的这个可视化是用 ant-canvas 做的,请问大佬们,怎么将这个 canvas 导出成 mp4 格式的呢?

1442 次点击
所在节点    前端开发
11 条回复
ChatGPTPRO
2023-10-07 14:50:28 +08:00
图片咋显示不了
iOCZ
2023-10-07 14:55:11 +08:00
canvas 肯定是每隔一段时间绘制一帧,那就是把很多帧合成视频
codehz
2023-10-07 14:59:31 +08:00
canvas 可以用 captureStream 生成流
https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/captureStream
然后用 MediaRecorder
https://developer.mozilla.org/en-US/docs/Web/API/MediaRecorder
不过这个只能生成 webm ,可以考虑使用 ffmpeg wasm 来转换成所需的 mp4 格式
相关代码网上一大堆,这里就不列了
ChatGPTPRO
2023-10-07 15:11:48 +08:00
@codehz 我这个 canvas 用的是 ant-canvas 阿里的,不是原生的,这个 api 试过了,发现没有这个 api

网上搜了好久没解决,所有来这里问大佬哈哈
ChatGPTPRO
2023-10-07 15:13:25 +08:00
@iOCZ 思路是这个思路,但问题是做不到。哈哈哈

我这个 canvas 用的是 ant-canvas 阿里的,不是原生的。
codehz
2023-10-07 15:17:22 +08:00
@ChatGPTPRO 你可以从里面挖出原始 canvas 的啊,再不行直接 document.getElementsByTagName('canvas')
ChatGPTPRO
2023-10-07 15:19:52 +08:00
@codehz 哈哈哈 我主后端,前端这些不是很熟。谢谢大佬 我试一下
iOCZ
2023-10-07 15:46:41 +08:00
ChatGPTPRO
2023-10-07 15:55:51 +08:00
@iOCZ 大佬牛逼
jspatrick
2023-10-07 17:59:57 +08:00
@iOCZ #8 跟 #3 的方案是一样的,下载的时候改了后缀名,多半数据格式还是 webm 的
iOCZ
2023-10-07 18:33:14 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/979515

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX