gpt4 book ai didi

audio - 如何将 MediaRecorder 中的 webm(或其他)音频/视频数据 block 写入格式正确的 .webm(或其他)容器文件?

转载 作者:行者123 更新时间:2023-12-05 06:08:04 34 4
gpt4 key购买 nike

我正在使用 javascript 从 MediaRecorder 捕获音频数据,并对其进行 base64 编码,以便我可以将其发送回网络服务器,在那里可以保存它供以后播放。

data:audio/webm;codecs=opus;base64,GkXfo59ChoEBQveBA...(要发布的数据太多,但你明白了)

我可以将该数据放入 HTML5 音频元素的 .src 字段中,然后在 Chrome 浏览器上正常播放。但是 Safari 不能处理那种格式的数据,我猜它不支持 opus 编解码器。

我的一个解决方案是弄清楚如何将音频数据写入格式正确的 .webm 容器文件,然后使用 ffmpeg.exe 将其转换为其他一些 Safari 友好格式。

但我不知道 .webm 文件的文件格式 - 我正在寻找有关如何编写此类 .webm 文件的提示或指导。

有人对将上述数据写入 .webm 文件有任何建议、库或技巧吗?我更喜欢 C# .net 答案,但 javascript 也可以,或者任何示例都值得赞赏。

最佳答案

好吧,我从聪明的开发者 (earnabler) 那里得到了一个提示,如果我去掉内容的标题部分:

"data:audio/webm;codecs=opus;base64,"

并仅解码 base64 部分:

“GkXfo59ChoEBQveBA...(要发布的数据太多,但你明白了)”

...返回二进制(C# 中的示例):

byte[] decodedBinaryData;

decodedBinaryData = Convert.FromBase64String(encodedBase64String);

...并将该二进制文件写入具有匹配文件扩展名(在此示例中为 .webm)的文件,该文件将是其他媒体软件可以理解的该类型的格式正确的文件。

你瞧,原来如此!我可以在 MediaPlayer、QuickTime 或其他软件中播放文件,并可以使用 FFMPEG 将其转换为其他类型。

因此,这为我提供了一种以多种方式保存/使用/转换媒体的途径。问题解决了。

关于audio - 如何将 MediaRecorder 中的 webm(或其他)音频/视频数据 block 写入格式正确的 .webm(或其他)容器文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65183829/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com