-
Notifications
You must be signed in to change notification settings - Fork 271
stereo
Franken Zeng edited this page Mar 14, 2017
·
11 revisions
本文提到的立体声,特指双通道音频,当前不支持多声道的情况。使用libksygpulive如何实现立体声(stereo)推流?立体声大致出现在两个地址:
- 背景音双声道
- 采集声音双声道
当背景音乐是立体声时,当前背景音播放器bgmplayer能提供双声道音乐。 当前使用KSYAUAudioCapture采集的声音是单声道,不满足立体声。
当双声道的背景音送入混音模块时,默认将双声道参与混音单声道输出。
需要实现立体声推流,需要将KSYAudioMixer的立体声混音属性开启
KSYAudioMixer.bStereo = YES
当背景音是立体声时,开启耳返即可听到立体声伴奏,无需额外的调用。
此时主播需要使用支持立体声播放的耳机。
当前支持四种音频编码方式:
音频编码器配置 | 编码器名称 | 测试序列 |
---|---|---|
KSYAudioCodec_AAC_HE_V2 | AAC HE V2音频软件编码器 | ksvc_hev2_64kb_stereo ksvc_hev2_64kb_stereo |
KSYAudioCodec_AAC_HE | faac音频软件编码器 | ksvc_he_64kb_stereo |
KSYAudioCodec_AAC | faac音频软件编码器 | N/A |
KSYAudioCodec_AT_AAC | iOS自带audiotoolbox音频编码器 | * ksvc_atlc_64kb_stereo * ksvc_atlc_64kb_mono |
使用测试序列,都使用64Kb的音频输出码率。
当开启立体声混音时:
- AAC HE V2 效果:ksvc_hev2_64kb_stereo ksvc_hev2_64kb_stereo
- AAC HE 效果:ksvc_he_64kb_stereo ksvc_he_64kb_stereo
- AT AAC 效果:ksvc_atlc_64kb_stereo
可以看出,都出现了立体声,但是KSYAudioCodec_AT_AAC破声很严重。
使用单声道推流,AT AAC 效果:ksvc_atlc_64kb_mono 。可以看出虽然没有立体声,但是声音很流畅。
使用KSYMediaPlayer,支持AAC HE/AAC HE V2的立体声播放。
此时观众需要使用支持立体声播放的耳机。
- 使用立体声KSYAudioMixer进行混音时,请使用KSYAudioCodec_AAC_HE_V2音频编码方式,将获得更好的音质。
- 使用单声道推流时,不建议使用KSYAudioCodec_AAC_HE_V2
- 使用低码率音频推流时,请勿使用KSYAudioCodec_AT_AAC