是的,如标题,相信大多数前端人员拿到这个任务的时候应该也是懵逼的,我也懵逼了好一整子,可能你会问我,为何前端要去作音频流编码封装的活路?对的,你说的没错,就是后端人员懒或者不想作或者其余什么缘由,后端给我说的是,这么作后端存在开销,若是多路流同时传他们的并发压力很大,因而,就丢给了前端,这么一解释,我内心好受点,至少,妈的你没有针对我,或者没有那么明显的针对我!
后端明确要求,音频流编码格式须要是g711a,而且要封装成flv格式上传
是的,你是否是不知道什么他妈的是g711a,是的,什么他妈的是g711a,做为一名资深前端,我实在也不太好意思问,通过本人一大堆的百度,得出如下几篇美文,上连接 :https://www.cnblogs.com/jingz...
https://www.jb51.net/article/...
https://www.jianshu.com/p/33c... 13折现算法
以上是我以为写得不错的文章,对我完成整个任务帮助很大,固然,我查阅的不止这3篇文章,其余的就不一一列举,各位前端同仁,自行百度。html
恶补了基础知识以后,简单的说下思路以下:
一、本地H5接口获取本地音频流(若是你不知道,那你就须要本身百度)
二、本地音频流进行一次重采,浏览器拉出来的采样率通常都在44K或者48K,我本身实现了一个重采样算法,听说 拉取音频流的时候能够配置16K的采样率,我配置了,拉出来仍是原来那么多,若是你作到了,请留言分享,固然我也不会付钱给你
三、以后的数据就是进行g711a的编码,大概就是32位浮点型转为16位int型,而后再转为8位的G711
四、扩展视频流位数,进行FLV格式封装
五、ws接口上传前端
大概就是以上5个步骤,总结起来简单,实现起来仍是费了很多功夫!今天就到这里,下期上代码!!!算法