该方案旨在通过以下两个核心组件的协同工作,提升 FreeSWITCH 视频会议的性能和用户体验:
mod_verto 前端优化:修改 video_demo 和 verto_communicator 这两个基于 WebRTC 的前端示例,将屏幕分享功能从需要安装的 Chrome 插件,改为使用浏览器自带的、无需安装的系统级屏幕捕获功能。这简化了用户操作,提升了易用性。
mod_av GPU 硬件加速:集成并启用经过 AI 优化的 mod_av 模块,利用 NVIDIA GPU 的 NVENC/NVDEC 技术进行视频的硬件编码和解码。这能极大地降低服务器的 CPU 占用率,支持更多路高清视频流,实现性能“起飞”。
🛠️ 核心组件与配置
1. mod_verto 前端 (Screen Sharing)
功能:提供基于 WebRTC 的网页音视频通话和会议功能。
优化点:将屏幕分享功能修改为使用 Chrome 浏览器原生的 getDisplayMedia API,用户无需再下载和安装任何扩展程序即可分享屏幕。
参考示例:
video_demo: 一个简化的示例,适合开发者在此基础上进行二次开发和定制页面。
verto_communicator: 一个功能更完善、界面更美观的客户端示例。
2. mod_av 模块 (GPU Hardware Acceleration)
功能:为 FreeSWITCH 提供视频处理能力,特别是硬件编解码。
优化点:使用经过 AI 辅助重构的版本,完美适配 NVIDIA GPU,实现硬编硬解。
性能优势:根据测试,在配备 16GB 显存的 GPU(如 Tesla T4)服务器上,可稳定支持约 30 路 720p 视频流,而 CPU 占用率极低。
环境依赖:
操作系统:Ubuntu 24.04
CUDA Toolkit: 13.0
需安装支持硬件加速的 FFmpeg,并确认包含 cuvid/nvdec 解码器和 nvenc 编码器。
📦 开源资源与参考
开源地址:FreeSWITCH 性能优化:mod_verto 免插件屏幕分享 + mod_av GPU 硬解实战
该仓库包含了优化后的 avcodec.c 核心文件以及 video_demo 和 verto_communicator 的打包文件。
mod_verto 安装参考: https://blog.youkuaiyun.com/Java_lilin/article/details/79422415
这篇博客详细介绍了如何编译安装 mod_av 模块以及配置 mod_verto 和相关前端示例。
mod_av 硬件加速方案详情: https://mp.weixin.qq.com/s/DxCm1op0-1Z4PjtiFd81OQ
该文章详细介绍了 GPU 硬件加速版的特性、性能数据和部署方法。
🖼️ 界面展示
以下是该方案实现后的视频会议界面效果:

703



被折叠的 条评论
为什么被折叠?



