admin管理员组文章数量:1664349
从member->session->channel 拿 audio数据,做重采样处理,switch_buffer_write 写入member->audio_buffer, 数据会在conference当前会议线程来mux。
会议线程里做混音:从audio_buffer读取数据,通过switch_buffer_write将混音数据写入每个成员的omember->mux_buffer
混音后的数据在从member/mux_buffer取出,switch_core_session_write_frame 写回到member channel。
音频处理过程:
音频获取和重采样-》混音音频输入-》混音-》混音输出-》写入到member
整个过程中比较重要的三个buffer:
在函数conference_member_setup_media中分配的内存:
=>switch_buffer_create_dynamic(&member->resample_buffer //重采样buffer
=>switch_buffer_create_dynamic(&member->audio_buffer //输入buffer
=>switch_buffer_create_dynamic(&member->mux_buffer //输出buffer
1.音频获取和重采样:
输出线程中启动【input线程】:conference_loop_launch_input(member, switch_core_session_get_pool(member->session));
conference_loop_input是一个线程,conference_loop_outpu
本文标签: 音频freeswitchConference
版权声明:本文标题:freeswitch之conference音频部分记录 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1730019792a1219324.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论