LiveKit: инструмент с открытым исходным кодом для создания аудио- и видеоприложений в реальном времени

Общее введение

LiveKit - это проект с открытым исходным кодом, направленный на помощь разработчикам в создании аудио- и видеоприложений в реальном времени. Он основан на технологии WebRTC и представляет собой комплексное решение, включающее медиасерверы и различные клиентские SDK. LiveKit - это ядро масштабируемого сервера SFU (Selective Forwarding Unit), написанного на языке Go, в сочетании с реализацией Pion WebRTC. Он разработан как простой и понятный, поддерживающий широкий спектр сценариев - от небольших приложений до масштабных конференций. Разработчики могут использовать его для быстрой организации видеоконференций, интерактивных прямых трансляций, голосовых помощников и т. д. LiveKit предлагает как облачные, так и самостоятельные варианты для гибкости. Официальная документация и поддержка сообщества также облегчают начало работы.

LiveKit:构建实时音视频应用的开源工具

 

Список функций

  • Аудио- и видеосвязь в режиме реального времени: Поддерживает аудио- и видеозвонки с низкой задержкой для нескольких человек одновременно.
  • Медиасервер СФУ: Оптимизация пропускной способности с помощью технологии выборочной переадресации для повышения производительности крупномасштабных приложений.
  • Мультиплатформенный SDK: Предоставление JavaScript, iOS, Android и других клиентских SDK для облегчения кросс-платформенной разработки.
  • Поддержка на стороне сервера: Содержит инструменты для генерации маркеров доступа, вызова API и получения веб-крючков.
  • канал данных: Поддерживает передачу текста или пользовательских данных в режиме реального времени, подходит для интерактивных приложений.
  • Облачные сервисы в сравнении с самостоятельной работой: Optional LiveKit Cloud или разверните свой собственный сервер.
  • Интеграция искусственного интеллекта: Поддержка объединения с голосовыми и видео моделями ИИ, подходит для разработки интеллектуального помощника.

 

Использование помощи

Есть два способа использовать LiveKit: первый - использовать LiveKit Cloud напрямую, а второй - развернуть собственный сервер. Вот подробные шаги.

Установка и развертывание

Если вы решили использовать собственный хостинг, вам нужно сначала установить сервер LiveKit. Вот основные шаги:

  1. Подготовка среды: Убедитесь, что ваша система поддерживает Docker и может работать под управлением Linux или macOS.
  2. Установка LiveKit CLI: Это инструмент командной строки, который поможет вам управлять сервером и тестировать функции. Выполните следующую команду:
curl -sSL https://get.livekit.io | bash

После завершения установки введите livekit-cli --version Проверьте успешность.
3. Запустите сервер: Запустите сервер LiveKit в режиме разработки, выполнив следующую команду в терминале:

livekit-server --dev

Это запустит локальный сервер, который по умолчанию слушает на 7880 Порты.
4. Генерация маркеров доступа: Серверу требуется аутентификация с помощью маркера. Генерируется с помощью CLI:

livekit-cli create-token --api-key devkey --api-secret secret --identity user1 --room my-room

На выходе вы получите JWT-токен для подключения к комнате.

Если вы используете LiveKit Cloud, зарегистрируйте аккаунт прямо на cloud.livekit.io, создайте проект, а затем получите ключ API и пару ключей, не разворачивая его самостоятельно.

Смежные комнаты

Соединение комнат - это основная операция LiveKit. Ниже приведен пример JavaScript SDK:

  1. Установка SDK: Запускается в проекте:
npm install @livekit/client
  1. Присоединяйтесь к комнате: Подключитесь с помощью следующего кода:
import { Room, connect } from '@livekit/client';
const room = new Room();
const token = '你的令牌'; // 从 CLI 或云服务获取
await connect(room, token, { url: 'ws://localhost:7880' });
console.log('已连接到房间');
  1. Публикация аудио и видео: После подключения опубликуйте локальную камеру и микрофон:
    const localParticipant = room.localParticipant;
    await localParticipant.enableCameraAndMicrophone();
    console.log('开始发布音视频');
    

Функциональное управление

  • Передача данных в режиме реального времени: Помимо аудио и видео, LiveKit поддерживает каналы передачи данных. Код для отправки сообщения выглядит следующим образом:
    localParticipant.publishData('Hello, everyone!', 'text');
    

    Приемник слушает:

    room.on('dataReceived', (payload, participant) => {
    console.log(`收到消息:${payload},来自 ${participant.identity}`);
    });
    
  • Интеграция искусственного интеллектаLiveKit поддерживает взаимодействие с моделями искусственного интеллекта. Например, с помощью Python SDK можно преобразовать речь в текст:
    from livekit import Room
    room = Room()
    await room.connect('ws://localhost:7880', token)
    # 监听音频并处理
    

    Транскрипция в реальном времени может быть достигнута путем объединения с API распознавания речи, например Google STT.

  • Массовая прямая трансляция: Передача потоков из OBS с помощью LiveKit Ingress:
    1. Создайте Ingress в облачной консоли, чтобы получить URL-адрес RTMP и ключ потока.
    2. Введите URL-адрес и ключ в настройках OBS, чтобы начать передачу потока.
    3. Зрители смотрят видео с низкой задержкой через WebRTC.

рабочий процесс

  1. Определите необходимость: это небольшой звонок или большая прямая трансляция?
  2. Выберите способ развертывания: облачные сервисы позволяют сэкономить, а самостоятельное размещение более гибко.
  3. Настройте среду: установите инструменты, получите ключи.
  4. Разрабатывайте приложения: подключайте комнаты с помощью SDK и добавляйте функциональность.
  5. Тестовый запуск: смоделируйте трафик с помощью CLI и проверьте эффект.

Документация по LiveKit доступна по адресу docs.livekit.io, и вы можете присоединиться к сообществу Slack, чтобы обратиться за помощью, если у вас возникнут вопросы.

 

сценарий применения

  1. видеоконференции
    Команда компании использует LiveKit для создания системы внутренних совещаний, которая поддерживает обсуждения в реальном времени между несколькими людьми.
  2. прямая интерактивная трансляция
    Ведущий передает поток через OBS, а зрители могут взаимодействовать с ним в режиме реального времени с помощью WebRTC, причем задержка составляет менее 100 миллисекунд.
  3. Голосовой помощник с искусственным интеллектом
    Разработчики комбинируют модели ИИ для создания интеллектуальной службы поддержки клиентов, которая умеет слушать и говорить.
  4. дистанционное обучение
    Преподаватели и студенты проводят онлайн-занятия с помощью LiveKit, который поддерживает совместное использование экрана и вопросы и ответы в режиме реального времени.

 

QA

  1. Сколько одновременных пользователей поддерживает LiveKit?
    Он может поддерживать параллелизм от нескольких до тысяч человек, в зависимости от конфигурации сервера и пропускной способности.
  2. Какое оборудование мне нужно для самостоятельного хостинга?
    Четырехъядерный сервер с 8 ГБ оперативной памяти может работать с небольшими приложениями; для больших масштабов требуются более мощные конфигурации.
  3. Является ли LiveKit Cloud бесплатным?
    Предоставляется бесплатный кредит, после которого взимается плата за трафик, см. livekit.io/pricing.
© заявление об авторских правах

Похожие статьи

Нет комментариев

Вы должны войти в систему, чтобы участвовать в комментариях!
Войти сейчас
нет
Нет комментариев...