ドキュメント

SENCA を導入して使う方に向けた手引きです。手順にはコマンドの例を付け、オプション、既定値、エラーの意味まで説明しています。API の全エンドポイントは API の一覧 にまとめています。

対象の版 v0.0.1 16 ページ 元の手引き(GitHub)↗

目的から探す

はじめに

最初に読むページです。全体の構成をつかみ、1 台のノードを動かすところまで進めます。

  1. 01

    概要

    SENCA を構成するプログラム、受け取った映像・音声が中でどう流れるか、データの扱い方、機能の一覧、対応していないことを説明します。

  2. 02

    クイックスタート

    ソースから SENCA をビルドして 1 台のノードを起動し、ストリームを作成して RTMP で配信し、HLS で再生するまでの手順です。Docker で起動する方法も紹介します。

  3. 03

    設定

    senca-node のすべてのオプション、設定ファイル(JSON)の書き方、クラスターの設定、環境変数、データディレクトリの中身をまとめたリファレンスです。

配信と録画

映像を受け取って視聴者へ届け、録画するまでの、毎日使う基本の操作です。

  1. 04

    取り込みと再生

    エンコーダー・カメラ・ブラウザーから映像・音声を取り込む方法(RTMP・SRT・WHIP・キャプチャデバイス)と、視聴者へ届ける方法(HLS・LL-HLS・RTMP・SRT・RTSP・WHEP・MoQ)を説明します。

  2. 05

    録画

    ライブ配信と並行した録画、VOD(HLS)での再生、MP4 のエクスポートし、サムネイル、障害後の復旧、保持期限、予約録画、S3 互換のオブジェクトストレージへの保存を説明します。

  3. 06

    入力と出力

    SENCA から外部のサーバーやカメラへ接続して映像を取り込む「入力(pull)」と、SENCA のストリームを外部の配信先やクラウドの配信サービスへ送る「出力(push・PaaS 連携)」の使い方です。

加工と字幕

合成・板書の補正・変換などの加工と、音声認識・翻訳による字幕です。

  1. 07

    パイプライン

    ストリームをデコード・板書補正・拡大縮小・合成・音声ミックス・エンコードの組み合わせ(グラフ)で加工し、別のストリームとして出す機能です。シーンの切り替えや、資源が足りないときのデグレード(処理の一部を外して動かし続けること)の設定も説明します。

  2. 08

    字幕と翻訳

    配信中の音声を外部の音声認識サービス(OpenAI・whisper.cpp)へ送って字幕を作り、Anthropic・DeepL・OpenAI で翻訳して、言語ごとの WebVTT として HLS で配信する方法です。

リアルタイム通信

ブラウザーやアプリどうしの双方向の映像通話(ルーム)と、その録画・配信です。

  1. 09

    リアルタイムのルーム

    参加者どうしが WebRTC で映像・音声・データをやり取りする「ルーム」(SFU)の作り方です。参加トークン、サイマルキャスト、スポットライト、DataChannel、Webhook、カスケードまで説明します。

  2. 10

    メディアパイプライン

    ルームの参加者の映像と音声を SENCA のストリームとしてエクスポートし、合成・録画・外部への配信・文字起こしを 1 つのリソースでまとめて指定する方法を説明します。

  3. 11

    ルームのシグナリング

    リアルタイムのルームに参加するクライアントを自作する人向けの、シグナリングプロトコル(WebSocket・senca.rooms.v1)の仕様です。メッセージの形式、エラー、DataChannel、認証、イベントを定めています。

複数台で動かす

複数のノード(SENCA を動かすサーバー)を 1 つのクラスターにまとめて、止まりにくくします。

  1. 12

    クラスターとグリッド

    複数の SENCA のノードを 1 つのクラスターにまとめる方法です。設定を Raft で全ノードに複製し、入力・出力・パイプライン・ルームをグリッドでノードと GPU に配置します。障害が起きたときの移動、デグレード、ノード間の中継も説明します。

運用と安全

外部に公開する前に確かめることと、動かし続けるための運用の知識です。

  1. 13

    セキュリティ

    SENCA を安全に運用するための機能と設定です。管理 API の認証と権限、JWT、ストリームキー、署名付きの再生 URL、シークレットの暗号化、外部への接続の制限、クラスターの mTLS、コーデックワーカーのサンドボックスを説明します。

  2. 14

    運用

    ヘルスチェック、ログ、監視用の API、イベントによる自動化、障害からの復旧、バックアップ、バージョンアップ、ノードのドレイン、停止のしかた、容量の見積もりなど、SENCA のノードを運用するための機能と手順を説明します。

  3. 15

    コーデックと特許

    SENCA がどのコーデックをどう扱うかを説明します。H.264・H.265 は GPU メーカーの SDK だけで変換し、AV1・VP8/VP9・Opus はロイヤリティフリーのライブラリで処理します。用意するものと、無いときの動作をまとめます。

API と SDK

管理 API の共通のルールと、TypeScript・Rust のクライアントです。

  1. 16

    管理 API と SDK

    SENCA を操作する HTTP の管理 API(/api/v1)の使い方です。認証、権限、Idempotency-Key、ETag、ページング、エラーといった共通のルールと、OpenAPI の定義、イベント(SSE)、JavaScript の SDK、Rust のクライアントを説明します。

全体の設計は アーキテクチャ を、すべての機能の一覧は できること をご覧ください。ドキュメントに誤りを見つけたら、GitHub の issue でお知らせください。