你猜猜JS 如何进行音频流的编码封装?上

异步流沙
• 阅读 2571

是的,如标题,相信大多数前端人员拿到这个任务的时候应该也是懵逼的,我也懵逼了好一整子,可能你会问我,为什么前端要去做音频流编码封装的活路?对的,你说的没错,就是后端人员懒或者不想做或者其他什么原因,后端给我说的是,这么做后端存在开销,如果多路流同时传他们的并发压力很大,于是,就丢给了前端,这么一解释,我心里好受点,至少,妈的你没有针对我,或者没有那么明显的针对我!
后端明确要求,音频流编码格式需要是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个步骤,总结起来简单,实现起来还是费了不少功夫!今天就到这里,下期上代码!!!

点赞
收藏
评论区
推荐文章
美凌格栋栋酱 美凌格栋栋酱
7个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
LinMeng LinMeng
4年前
下载二维码至钉盘
后端生成二维码的普通文件流,前端接收后在img标签中渲染将二维码下载至钉盘通过接口获取后端返回mediaId字段,采用“dingtalkjsapi”插件中的方法下载注意:dingTalkFun中,除了corId和mediaId必传外,文件名name也是必须要传的!!!<template<divclass"onlineSign"
Wesley13 Wesley13
3年前
java将前端的json数组字符串转换为列表
记录下在前端通过ajax提交了一个json数组的字符串,在后端如何转换为列表。前端数据转化与请求varcontracts{id:'1',name:'yanggb合同1'},{id:'2',name:'yanggb合同2'},{id:'3',name:'yang
Easter79 Easter79
3年前
springboot2之优雅处理返回值
前言最近项目组有个老项目要进行前后端分离改造,应前端同学的要求,其后端提供的返回值格式需形如{"status":0,"message":"success","data":{}}方便前端数据处理。要实现前端同学这个需求,其实也挺简单的,
Stella981 Stella981
3年前
Hi,给他介绍一款markdown的帮助文档生成器
     当今大多数的团队都实现了前、后端分支。前端与后端的沟通都是通过接口来实现的(一般情况下都是webapi接口)。这种情况你肯定需要一个接口查询的帮助文档,这个当然用swagger都可以实现。但做为前端开发的我们是否也应该考虑把自己写的组件以帮助文档的方式公开都团队其他人员使用。就像iview,easyui等UI组件都有自己的帮助文档。今天我们都介绍
Stella981 Stella981
3年前
Spring security CSRF 跨域访问限制问题
在我们写Spring安全的时候通常有这么一句话:httpSecurity.csrf().disable().从这句话的字面意思就很明白就是禁用csrf,什么是csrf,为什么要禁用可能就一脸懵逼了。因为你很有可能会遇到一个错误:HTTPStatus403-InvalidCSRFToken'null'
Stella981 Stella981
3年前
NodeJs学习一NodeJs初识
一、前言按照惯例,先扯淡,就因为这货,现在才有了各大公司招聘的全栈工程师,正是因为它,让以前只会写前端的人也能写起后端服务器代码来了。所以呢,你招一个会NodeJs的前端,它都能把后端干了,一个人干了两个人的事,你说哪个公司不想要。但是我还是要同情一下前端的兄弟们,真是苦了你们了,以前你们只是写页面就完了,现在还得写后台,再加上各种前端框架,什么
Stella981 Stella981
3年前
Elasticsearch如何做到亿级数据查询毫秒级返回的
问题:ES在数据量很大的情况下(数十亿级别)如何提高查询效率?这个问题说白了,就是看你有没有实际用过ES,因为啥?其实ES性能并没有你想象中那么好的。很多时候数据量大了,特别是有几亿条数据的时候,可能你会懵逼的发现,跑个搜索怎么一下5~10s,坑爹了。第一次搜索的时候,是5~10s,后面反而就快了,可能就几百毫秒。你就很懵,每个用
Wesley13 Wesley13
3年前
5点改善你的编程逻辑
编程逻辑是成为优秀开发人员的关键。也许,根据您的工作地点,您将使用更多算法。如果你是一名网页设计师,你可能不打算处理复杂的算法,但如果你是前端开发人员,可能会处理一些算法,如果你是一个后端开发人员,你会经常处理复杂算法。在这里,我将向您介绍5个点,_在我看来_,这些点有资源来改进我们的编程逻辑。本文适合所有人,如果我们设法开发出一个好的逻辑,我们
Wesley13 Wesley13
3年前
PHP+MySql实现图书管理系统
这个图书管理系统是我学完PHP时写的一个练手项目,功能参考了自己学校的图书管理系统。为了锻炼自己的动手能力以及加深对代码的理解,前端和后端均由自己完成,前端使用了一些基本的框架(毕竟我主攻后端开发方向),后端大部分要用到的功能都是自己从底层实现并封装,基本没有用到第三方框架。总体来说还是比较简陋的,在某些地方可能存在缺陷或者漏洞。项目地址
为什么mysql不推荐使用雪花ID作为主键
作者:毛辰飞背景在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一),而是推荐连续自增的主键id,官方的推荐是auto_increment,那么为什么不建议采用uuid,使用uuid究