はじめに
LiveKitは、開発者がリアルタイムのオーディオおよびビデオアプリケーションを構築するのを支援することに焦点を当てたオープンソースプロジェクトです。LiveKitは、Go言語で書かれたスケーラブルなSFU(Selective Forwarding Unit)サーバーとPion WebRTC実装を組み合わせたものです。シンプルでわかりやすく設計されており、小規模なアプリケーションから大規模な会議まで、幅広いシナリオをサポートします。開発者はこれを使用して、ビデオ会議、インタラクティブなライブストリーミング、音声アシスタントなどを素早くセットアップすることができる。また、公式ドキュメントとコミュニティサポートにより、簡単に始めることができます。
機能一覧
- リアルタイムのオーディオおよびビデオ通信低遅延のオーディオおよびビデオ通話をサポートします。
- SFUメディアサーバー選択転送技術により帯域幅を最適化し、大規模アプリケーションのパフォーマンスを向上。
- マルチプラットフォームSDKクロスプラットフォーム開発を促進するため、JavaScript、iOS、Android、その他のクライアントSDKを提供します。
- サーバー側のサポートアクセストークンの生成、APIの呼び出し、ウェブフックの受信のためのツールが含まれています。
- データチャネルテキストやカスタマイズされたデータのリアルタイム伝送をサポートし、インタラクティブなアプリケーションに適しています。
- クラウドサービスとセルフホストオプションのLiveKitクラウドまたは独自のサーバーをデプロイします。
- AIインテグレーション音声と映像のAIモデルとの組み合わせをサポートし、知的アシスタントの開発に適しています。
ヘルプの使用
LiveKitを使うには、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('开始发布音视频');
注目の機能操作
- リアルタイムデータ伝送オーディオとビデオに加えて、LiveKitはデータ・チャンネルもサポートしています。メッセージを送信するコードは以下の通りです:
localParticipant.publishData('Hello, everyone!', 'text');
レシーバーは耳を傾ける:
room.on('dataReceived', (payload, participant) => { console.log(`收到消息:${payload},来自 ${participant.identity}`); });
- AIインテグレーションLiveKitはAIモデルとのインタフェースをサポートしています。例えば、Python SDKを使ってテキストに音声を変換することができます:
from livekit import Room room = Room() await room.connect('ws://localhost:7880', token) # 监听音频并处理
Google STTのような音声認識APIと組み合わせることで、リアルタイムの書き起こしが可能になる。
- 大規模ライブストリーミングOBSからLiveKit Ingressでプッシュ配信:
- クラウドコンソールでIngressを作成し、RTMP URLとストリームキーを取得する。
- URLを入力し、OBSの設定を入力して、ストリームのプッシュを開始する。
- 視聴者はWebRTCを介して低遅延で視聴する。
ワークフロー
- 小規模な通話なのか、大規模なライブ放送なのか。
- クラウドサービスはコスト削減、セルフホスティングはより柔軟。
- 環境の設定:ツールのインストール、キーの取得。
- アプリの開発:SDKで部屋を接続し、機能を追加します。
- テスト実行:CLIでトラフィックをシミュレートし、その効果を確認する。
LiveKitのドキュメントはdocs.livekit.ioで入手できますし、質問があればSlackのコミュニティに参加して助けを求めることもできます。
アプリケーションシナリオ
- ビデオ会議
同社のチームはLiveKitを使って、複数人によるリアルタイムのディスカッションをサポートする社内会議システムを構築している。 - 双方向ライブ放送
ホストはOBSを通じてストリームをプッシュし、視聴者はWebRTCを使ってリアルタイムでインタラクトすることができる。 - AI音声アシスタント
開発者はAIモデルを組み合わせて、話を聞き、話すことができるインテリジェントなカスタマーサービスを実現する。 - 遠隔教育
教師と生徒は、画面共有とリアルタイムの質疑応答をサポートするLiveKitを通じてオンライン授業を行う。
品質保証
- LiveKitは何人の同時ユーザーをサポートしていますか?
サーバーの構成や帯域幅にもよるが、数人から数千人までの同時接続をサポートできる。 - セルフホスティングに必要なハードウェアは何ですか?
8GBのRAMを搭載した4コアのサーバーで小規模なアプリケーションを実行できますが、大規模なアプリケーションにはより高い構成が必要です。 - LiveKit Cloudは無料ですか?
無料クレジットが提供され、それを超えるとトラフィックごとに課金されます。livekit.io/pricingを参照してください。