일반 소개
LiveKit은 개발자가 실시간 오디오 및 비디오 애플리케이션을 구축하는 데 중점을 둔 오픈 소스 프로젝트입니다. WebRTC 기술을 기반으로 하며 미디어 서버와 다양한 클라이언트 SDK를 포함한 완벽한 솔루션을 제공합니다. LiveKit은 Go 언어로 작성된 확장 가능한 SFU(선택적 포워딩 유닛) 서버의 핵심으로, Pion WebRTC 구현과 결합되어 있습니다. 간단하고 직관적으로 설계되어 소규모 애플리케이션부터 대규모 회의까지 다양한 시나리오를 지원합니다. 개발자는 이를 사용하여 화상 회의, 대화형 라이브 스트리밍 또는 음성 비서 등을 빠르게 설정할 수 있습니다. LiveKit은 유연성을 위해 클라우드 호스팅 및 자체 호스팅 옵션을 모두 제공합니다. 또한 공식 문서와 커뮤니티 지원을 통해 쉽게 시작할 수 있습니다.

기능 목록
- 실시간 오디오 및 비디오 커뮤니케이션대기 시간이 짧은 오디오 및 영상 통화를 여러 사람이 동시에 사용할 수 있도록 지원합니다.
- SFU 미디어 서버선택적 포워딩 기술을 통해 대역폭을 최적화하여 대규모 애플리케이션의 성능을 개선합니다.
- 멀티 플랫폼 SDK크로스 플랫폼 개발을 용이하게 하기 위해 JavaScript, iOS, Android 및 기타 클라이언트 SDK를 제공합니다.
- 서버 측 지원액세스 토큰 생성, API 호출, 웹훅 수신을 위한 도구가 포함되어 있습니다.
- 데이터 채널대화형 애플리케이션에 적합한 텍스트 또는 사용자 지정 데이터의 실시간 전송을 지원합니다.
- 클라우드 서비스 대 자체 호스팅라이브킷 클라우드(옵션) 또는 자체 서버 배포.
- AI 통합음성 및 비디오 AI 모델과의 결합 지원으로 지능형 어시스턴트 개발에 적합합니다.
도움말 사용
하나는 LiveKit Cloud를 직접 사용하는 방법이고, 다른 하나는 자체 서버를 배포하는 방법입니다. 자세한 단계는 다음과 같습니다.
설치 및 배포
셀프 호스팅을 선택하는 경우 먼저 LiveKit 서버를 설치해야 합니다. 기본 단계는 다음과 같습니다:
- 환경 준비하기시스템이 Docker를 지원하고 Linux 또는 macOS를 실행할 수 있는지 확인하세요.
- 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의 예시입니다:
- SDK 설치하기: 프로젝트에서 실행됩니다:
npm install @livekit/client
- 방에 참여하기: 다음 코드로 연결합니다:
import { Room, connect } from '@livekit/client';
const room = new Room();
const token = '你的令牌'; // 从 CLI 或云服务获取
await connect(room, token, { url: 'ws://localhost:7880' });
console.log('已连接到房间');
- 오디오 및 비디오 게시연결 후 로컬 카메라와 마이크를 게시합니다:
const localParticipant = room.localParticipant; await localParticipant.enableCameraAndMicrophone(); console.log('开始发布音视频');
주요 기능 작동
- 실시간 데이터 전송라이브키트는 오디오 및 비디오 외에도 데이터 채널을 지원합니다. 메시지를 전송하는 코드는 다음과 같습니다:
localParticipant.publishData('Hello, everyone!', 'text');
수신자가 수신합니다:
room.on('dataReceived', (payload, participant) => { console.log(`收到消息:${payload},来自 ${participant.identity}`); });
- AI 통합라이브키트는 AI 모델과의 연동을 지원합니다. 예를 들어, 파이썬 SDK를 사용하여 음성을 텍스트로 변환할 수 있습니다:
from livekit import Room room = Room() await room.connect('ws://localhost:7880', token) # 监听音频并处理
실시간 트랜스크립션은 Google STT와 같은 음성 인식 API와 결합하여 구현할 수 있습니다.
- 대규모 라이브 스트리밍라이브킷 인그레스로 OBS에서 스트림을 푸시합니다:
- 클라우드 콘솔에서 인그레스를 생성하여 RTMP URL과 스트림 키를 가져옵니다.
- URL을 입력하고 OBS 설정을 입력하여 스트림 푸시를 시작합니다.
- 시청자는 WebRTC를 통해 짧은 지연 시간으로 시청할 수 있습니다.
워크플로
- 필요성 결정: 소규모 통화인지, 대규모 라이브 방송인지?
- 배포 방법 선택: 클라우드 서비스는 비용을 절감하고 셀프 호스팅은 더 유연합니다.
- 환경 구성: 도구를 설치하고 키를 받습니다.
- 앱 개발: SDK로 회의실을 연결하고 기능을 추가하세요.
- 테스트 실행: CLI로 트래픽을 시뮬레이션하고 효과를 확인합니다.
LiveKit 설명서는 docs.livekit.io에서 확인할 수 있으며, 궁금한 점이 있으면 Slack 커뮤니티에 가입하여 도움을 요청할 수 있습니다.
애플리케이션 시나리오
- 화상 회의
이 회사의 팀은 LiveKit을 사용하여 여러 사람 간의 실시간 토론을 지원하는 내부 회의 시스템을 구축합니다. - 라이브 인터랙티브 방송
호스트가 OBS를 통해 스트림을 푸시하면 시청자는 100밀리초 미만의 지연 시간으로 WebRTC를 사용하여 실시간으로 상호작용할 수 있습니다. - AI 음성 어시스턴트
개발자는 AI 모델을 결합하여 듣고 말할 수 있는 지능형 고객 서비스를 만들 수 있습니다. - 원격 학습
교사와 학생은 화면 공유와 실시간 Q&A를 지원하는 LiveKit을 통해 온라인 수업을 진행합니다.
QA
- LiveKit은 몇 명의 동시 사용자를 지원하나요?
서버 구성과 대역폭에 따라 몇 명에서 수천 명까지 동시 접속을 지원할 수 있습니다. - 셀프 호스팅에 필요한 하드웨어는 무엇인가요?
8GB RAM을 갖춘 4코어 서버는 소규모 애플리케이션을 실행할 수 있지만 대규모로 실행하려면 더 높은 구성이 필요합니다. - LiveKit Cloud는 무료인가요?
무료 크레딧이 제공되며, 그 이후에는 트래픽당 요금이 부과됩니다(livekit.io/pricing 참조).
© 저작권 정책
기사 저작권 AI 공유 서클 모두 무단 복제하지 마세요.
관련 문서
댓글 없음...