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