Jitsi - 轻量级音视频会议

1,481 阅读1分钟

一款轻量级的音视频会议的开源框架项目

本地 docker 部署

  1. 下载代码且本地安装好了 docker 环境

    链接

    docker安装

  2. 复制 .env.example 文件,并改名为 .env

    cp env.example .env
    
  3. 运行脚本文件

    ./gen-passwords.sh
    
  4. 创建 CONFIG 文件目录

    // For windows
    echo web/crontabs,web/letsencrypt,transcripts,prosody/config,prosody/prosody-plugins-custom,jicofo,jvb,jigasi,jibri | % { mkdir "~/.jitsi-meet-cfg/$_" }
    
    // For Linux
    mkdir -p ~/.jitsi-meet-cfg/{web/crontabs,web/letsencrypt,transcripts,prosody/config,prosody/prosody-plugins-custom,jicofo,jvb,jigasi,jibri}
    
  5. Run docker-compose up -d

Mac 和 windows 的 docker desktop 默认安装了 docker-compose, 若没安装请先安装 docker-compose

  1. 访问 https://localhost:8443

  2. 设置公网访问地址

code.png

参考文档

使用 Jitsi meet

  1. 创建 Jitsi 实例
const domain = 'https://localhost:8443' // 也可以使用在线服务 meet.jit.si
const options = { 
    roomName: 'JitsiMeetAPIExample', // 默认会议名称
    width: 700, // 会议窗口宽度
    height: 700, // 会议窗口高度
    parentNode: document.querySelector('#meet') // dom 父节点
};
const api = new JitsiMeetExternalAPI(domain, options);
  1. 使用截图功能
api.captureLargeVideoScreenshot().then(data => { 
    // data is an Object with only one param, dataURL 
    // data.dataURL = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAA..." 
    const imgs = document.getElementById('imgs')
    const img = document.createElement('img')
    img.setAttribute('src', data.dataURL)
    imgs.appendChild(img)
});
  1. 其它功能请参考官方文档

参考文档


目前该框架的录制功能需要安装 jibri 但是需要安装在 Linux 环境下,等回头装个虚机再来分享。