Skip to content
pengbin edited this page Dec 4, 2017 · 11 revisions

立体声推流

1. 概述

本文提到的立体声,特指双通道音频,当前不支持多声道的情况。使用libksygpulive如何实现立体声(stereo)推流?立体声大致出现在两个地址:

  • 背景音双声道
  • 采集声音双声道

当背景音乐是立体声时,当前背景音播放器KSYBgmPlayer能提供双声道音乐。 当前使用KSYAUAudioCapture采集的声音是单声道,不满足立体声。

1.1 适用场景

只支持来自于KSYBgmPlayer背景音的双声道。不支持通过KSYAUAudioCapture采集双声道。

1.2 版本支持

v2.0.2版本开始支持立体声推流

2. 混音的实现

当双声道的背景音送入混音模块时,默认将双声道转为单声道, 再参与混音, 最后单声道输出。

需要实现立体声推流,需要将KSYAudioMixer的立体声混音属性开启

KSYAudioMixer.bStereo = YES

3. 耳返的实现

当背景音是立体声时,开启耳返即可听到立体声伴奏,无需额外的调用。

此时主播需要使用支持立体声播放的耳机。

4. 音频编码的实现

当前支持四种音频编码方式

音频编码器配置 编码器名称 测试序列
KSYAudioCodec_AAC_HE_V2 AAC HE V2音频软件编码器 ksvc_hev2_64kb_stereo
KSYAudioCodec_AAC_HE FDK AAC音频软件编码器 ksvc_he_64kb_stereo
KSYAudioCodec_AAC FDK AAC音频软件编码器 N/A
KSYAudioCodec_AT_AAC iOS自带audiotoolbox音频编码器 * ksvc_atlc_64kb_stereo* ksvc_atlc_64kb_mono

使用测试序列,都使用64Kb的音频输出码率。

当开启立体声混音时:

可以看出,都出现了立体声,但是KSYAudioCodec_AT_AAC破声很严重。

使用单声道推流,AT AAC 效果:ksvc_atlc_64kb_mono 。可以看出虽然没有立体声,但是声音很流畅。

5. 观众侧的工作

使用KSYMediaPlayer,支持AAC HE/AAC HE V2的立体声播放。

此时观众需要使用支持立体声播放的耳机。

6. 总结

  • 使用立体声KSYAudioMixer进行混音时,请使用KSYAudioCodec_AAC_HE_V2音频编码方式,将获得更好的音质。
  • 使用单声道推流时,不建议使用KSYAudioCodec_AAC_HE_V2
  • 使用低码率音频推流时,请勿使用KSYAudioCodec_AT_AAC

1. 推流环节说明

2. 特色功能说明

2.1 采集

2.2 音频处理

2.3 视频处理

2.4 编码

2.5 推流

2.6 输入多样化

2.7 集成

3. 第三方功能

4. 技术专栏

5. 已知问题

8. FAQ

金山云计算

Clone this wiki locally