视频直播源码 直播软件搭建进行直播推流时,对声音进行音质优化

最近我们在使用WebRTC进行直播推流的时候,遇到了音乐音质不好的问题,对此进行优化后,音乐音质有很大提升,因此记录下优化过程,分享出来

1. 关闭AEC,AGC,NS

因为WebRTC是专为实时视频通话设计的,所以WebRTC的语音处理算法也是专门为视频通话优化的,为了进行正常的视频通话,必须对语音进行AEC,AGC算法处理,但是AEC对人声有特殊处理,但是对音乐的背景声音处理的不好,如果进行直播的时候,使用AEC,会对音乐的背景音产生消噪,从而影响音质,可以关闭iOS端的硬件AEC,AGC,NS等算法

关闭方法

在voice_processing_audio_unit.mm文件中,修改

vpio_unit_description.componentSubType = kAudioUnitSubType_VoiceProcessingIO;

//修改为kAudioUnitSubtype_RemoteIO

vpio_unit_description.componentManufacturer = kAudioUnitManufacturer_Apple;

UInt32 enable_agc = 0;  

result = AudioUnitSetProperty(vpio_unit_, kAUVoiceIOProperty_VoiceProcessingEnableAGC, kAudioUnitScope_Global, kInputBus, &enable_agc, sizeof(enable_agc));

2. 修改Opus编码算法

WebRTC中默认是采用Opus编码,Opus编码是由silk编码和celt编码合并在一起,silk编码是由skype公司开源的一种语音编码,特别适合人声,适合于Voip语音通信。celt和mp3,aac类似,适合于传输音乐。Opus编码具备以下特点:

6 kb /秒到510 kb / s的比特率

采样率从8 kHz(窄带)到48 kHz(全频)

帧大小从2.5毫秒到60毫秒

支持恒定比特率(CBR)和可变比特率(VBR)

从窄带到全频段的音频带宽

支持语音和音乐

支持单声道和立体声

支持多达255个频道(多数据流的帧)

可动态调节比特率,音频带宽和帧大小

良好的鲁棒性丢失率和数据包丢失隐藏(PLC)

浮点和定点实现

WebRTC中默认是使用Opus编码的,在SDP中有标记

a=rtpmap:111 opus/48000/2

a=rtcp-fb:111 transport-cc

a=fmtp:111 minptime=10;useinbandfec=1

音频采样率是48000,音频打包时间是10ms,单声道,编码采用的是Opus里面的silk编码,适合传人声,不适合传音乐,所以如果需要使用WebRTC进行直播推流,需要对audio编码进行修改

3. 修改声道数

在a=ftmp这一行中加入stereo=1代表双声道,stereo=0代表单声道,双声道一般用来传音乐,从WebRTC代码中可以发现,当我们设置声道数为2时,opus编码内部将使用celt, celt适合传输音乐,代码如下:

config.application = config.num_channels == 1 ? AudioEncoderOpus::kVoip : AudioEncoderOpus::kAudio;

kVoip适合于语音通话,kAudio适合于传输音乐

4. audio码流修改

在a=ftmp这一行中加入maxaveragebitrate代表接收方能接受的最大码流,单位为bit。比如maxaveragebitrate=128000代表码流为128kbps,提高audio码流可以提升音乐音质

声道数,码流等参数,可以在sdp中统一修改

a=fmtp:111 minptime=10;useinbandfec=1;stereo=1;maxaveragebitrate=128000;maxplaybackrate=48000

总结:在修改完WebRTC这些参数,再使用WebRTC进行直播推流时,音乐等背景音的音质有了大幅提升,也没有异常的声音忽高忽低的问题了

视频直播源码 直播软件搭建进行直播推流时,对声音进行音质优化相关推荐

  1. 视频直播源码中关于服务端直播开播推送实现

    在视频直播源码中直播app开播时需向客户推送开播消息通知用户,实现方式如下: 1.申请相应的推送服务三方,如下使用极光推送,获取相应的配置资料,并做好相应的配置 2.推送代码如下: /* 极光推送 * ...

  2. 短视频App源码:如何搭建短视频社区

    2019独角兽企业重金招聘Python工程师标准>>> 短视频App源码:如何搭建短视频社区 随着国内移动互联网的发展,中国的移动互联网时代已经来临,以快手.抖音为主的短视频平台迅速 ...

  3. 直播源码:游戏录屏直播的基本实现方式

    移动端设备性能的提升,和手机直播行业的发展,催生了一大批直播细分行业,今天我们总结的是基于直播源码的手游录屏直播技术的基本实现方式. 大致的流程是手机申请录屏权限,手机录屏,开启手机实时将数据推向网络 ...

  4. 搭建直播源码与软件开发的注意事项

    在这个直播行业飞速发展的时代,很多公会会长在掌握了一定的主播资源后,都希望能搭建自己的直播平台,实现利益最大化,但网上打广告的技术公司太多,源码质量却良莠不齐,那么该如何搭建直播源码就成了问题. 直播 ...

  5. “一对一直播软件”的开发,离不开直播源码开发+系统搭建

    大家的生活中已经离不开互联网,据数据显示,移动互联网的用户人均每天上网时长达到5小时.看视频.网络直播成为人们娱乐方式之一.其中一对一直播软件开发也越来越受到大家的喜爱. 一对一直播软件开发的功能: ...

  6. 搭建直播源码与软件开发的注意事项 1

    在这个直播行业飞速发展的时代,很多公会会长在掌握了一定的主播资源后,都希望能搭建自己的直播平台,实现利益最大化,但网上打广告的技术公司太多,源码质量却良莠不齐,那么该如何搭建直播源码就成了问题. 直播 ...

  7. 一对一直播源码是什么?一对一直播平台如何成功搭建?

    如今5G时代已经来临,为社交类软件发展插上了腾飞的翅膀,其中一对一直播更是被大家所看好.众多的企业公司都想在直播大潮中分到一杯红利,但是一对一直播中涉及的技术难题阻挡了一大部分人的冲动. 一对一直播平 ...

  8. 一对一直播源码系统平台搭建

    一对一直播源码在搭建过程中的重要性:安全稳定,功能丰富,内容优质的一对一直播源码能够帮助平台运营者减少很多开发成本.但仅有一对一直播源码是不够的,在完成系统搭建之后,还需要接入各类三方服务,这样才能使 ...

  9. 直播源码:云豹腾讯直播系统可以分为以下几个类型

    市场上大部分直播系统主要分为这几种类型,可分为一对一和一对多. 一对一是指视频源从一个客户端传输到另一客户端.如微信,QQ,陌陌,Facetime,Skype的视频通话功能. 一对多是指视频源从一个客 ...

  10. 教育直播源码丨万岳教育直播平台源码丨源码支持二开

    万岳教育平台满足大班课.小班课.1V1.录播.图文等多种教学场景 一.万岳教育直播平台源码更多实用教学工具 白板 互动式电子白板,可同步涂鸦,超越线下课堂的实时交互. 答题器 交互式抢答器,活跃课堂气 ...

最新文章

  1. C. Woodcutters【贪心】
  2. 异常-异常捕获的完整语法
  3. 2019年末逆向复习系列之淘宝M站Sign参数逆向分析
  4. HDU 4609 FFT
  5. char* 赋值 const char* 释放_嵌入式Linux开发《C语言专题(十:彻底搞懂“关键字”const)》...
  6. 基于jQ+CSS3页面滚动内容元素动画特效
  7. “价值互联网”时代,带你读懂区块链
  8. HDU 1325 Is It A Tree?(并查集)
  9. php 解析今日头条视频,今日头条的视频地址解析方法
  10. win10系统打开tftp服务器,win10设置tftp服务器配置
  11. 数字资产投资论坛暨全球数字资产领袖委员会成立大会1月16日将在纽约举行
  12. 服务器自带的防篡改,防篡改系统
  13. 达人实测:天玑1000和骁龙765g哪个好-天玑1000和骁龙765g对比跑分
  14. KOL营销抢跑新消费品牌
  15. 淘宝客小程序制作(4)-小程序(微信支付宝)
  16. 5分钟成为车联网专家|智慧高速如何破局实现车联网最先商用落地
  17. 并发编程(五)——生产者消费者模式
  18. MySql 如果字段为NULL则返回0
  19. rice计算机专业排名,2020年Rice计算机工程排名指南总汇完整版
  20. android 打开闪光灯,如何在Android中以编程方式打开前置闪光灯...

热门文章

  1. 算数表达式的计算方法
  2. 理解OMNET++仿真原理
  3. 100集华为HCIE安全培训视频教材整理 | 虚拟化技术(三)
  4. 踔厉奋发·勇毅前行 | 2023广和通中国区代理商大会成功召开
  5. Docker portainer-ce 汉化版安装(基于centos)
  6. 欧式距离和曼哈顿距离
  7. IDEA解决:Unmapped Spring configuration files found.Please configure Spring facet.
  8. 美国康州小学枪击案#儿童遗书:爱你,妈妈
  9. D3D渲染技术之纹理
  10. Windows+Ubuntu-18.04双系统装机指南