实现纯前端下的音频剪辑处理
原文: https://juejin.im/post/5d91c2d85188251662293adb 前言 最近在做一个项目,需要对webRTC录制的音频进行处理,包括音频的裁剪、多音频合并,甚至要将某个音频的某一部分替换成另一个音频。 原本笔者打算将这件工作交给服务端去完成,但考虑,其实无论是前端还是后台,所做的工作是差不多的,而且交给服务端还需要再额外走一个上传、下载音频的流程,这不仅增添了服务端的压力,而且还有网络流量的开销,于是萌生出一个想法:为什么音频处理这件事不能让前端来做呢? 于是在笔者的半摸索半实践下,产生出了这篇文章。废话少说,先上 仓库地址 ,这是一个开箱即用的前端音频剪辑sdk(点进去了不如就star一下吧) ffmpeg ffmpeg 是实现前端音频处理的非常核心的模块,当然,不仅是前端,ffmpge作为一个提供了录制、转换以及流化音视频的业界成熟完整解决方案,它也应用在服务端、APP应用等多种场景下。关于ffmpeg的介绍,大家自行google即可,这里不说太多。 由于ffmpeg在处理过程中需要大量的计算,直接放在前端页面上去运行是不可能的,因为我们需要单独开个web worker,让它自己在worker里面运行,而不至于阻塞页面交互。 可喜的是,万能的github上已经有开发者提供了 ffmpge.js ,并且提供worker版本,可以拿来直接使用。