NOALBS導入ガイド【Windows編】— 屋外配信の回線断をBRB自動切替で守る

ライブ配信

はじめに — NOALBSとは何をするツールか

屋外ライブ配信(IRL配信)では、モバイル回線が不安定になると映像がフリーズしたり黒画面になったりします。視聴者はその間「配信が落ちたのか、待てば戻るのか」がわからず、離脱してしまいます。

NOALBS(Node OBS Automatic Low Bitrate Switching)は、この問題を自動で解決するツールです。リレーサーバーのビットレートを常時監視し、回線が不安定になったらOBSのシーンを自動的に「BRB(すぐ戻ります)」画面に切り替え、回線が復帰したら自動的にライブ映像に戻します。

【通常時】
  エンコーダー → リレーサーバー → OBS(LIVEシーン)→ Twitch/YouTube
                       ↑
                   NOALBS が監視(ビットレート正常)

【回線不安定時】
  エンコーダー → リレーサーバー → OBS(BRBシーンに自動切替)→ Twitch/YouTube
                       ↑
                   NOALBS が検知(ビットレート低下 or 切断)

【回線復帰時】
  エンコーダー → リレーサーバー → OBS(LIVEシーンに自動復帰)→ Twitch/YouTube

この記事では、Windows PCでNOALBSをセットアップする方法を、NOALBS対応のリレーサービス(BELABOX Cloud、IRLServer等)を利用している前提で解説します。

前提条件

この記事の手順を進めるには、以下が必要です。

必要なもの 説明
Windows PC OBS Studioを動かすPC(配信の「司令塔」になる)
OBS Studio バージョン28以降(OBS WebSocket 5.x が内蔵されているもの)
NOALBS対応リレーサービス BELABOX Cloud、IRLServer、IRL Hosting など(統計APIが公開されているサービス)
Twitchアカウント チャットコマンド機能を使う場合に必要(YouTube配信のみの場合は不要)
テキストエディタ VS Code 推奨(Windows標準のメモ帳はJSON編集に向かないため非推奨)

Step 1: NOALBSをダウンロード

1-1. リリースページからダウンロード

NOALBSのGitHubリリースページにアクセスします。

Releases
Simple app to automatically switch scenes in OBS based on the current bitrate fetched from the ingest stats page. - NOALBS/nginx-obs-automatic-low-bitrate-switc...

最新リリース(2026年1月時点ではv2.16.0)の「Assets」を展開し、noalbs-vX.X.X-x86_64-pc-windows-msvc.zip(Windows用)をダウンロードします。

1-2. 展開と配置

  1. ダウンロードしたZIPファイルを展開
  2. 中身を任意のフォルダに配置(例: C:\Tools\noalbs\
  3. フォルダ内に以下のファイルがあることを確認:
    • noalbs.exe — 本体
    • config.json — 設定ファイル
    • .env — Twitch認証情報

注意: Windowsの設定によっては.envファイルが見えない場合があります。エクスプローラーの「表示」→「隠しファイル」を有効にしてください。

Step 2: OBS Studioの準備

2-1. OBS WebSocketを有効にする

NOALBSはOBS WebSocket経由でシーンを切り替えます。OBS Studio 28以降はWebSocket 5.xが標準搭載されています。

  1. OBS Studioを起動
  2. メニュー「ツール」→「WebSocketサーバー設定」を開く
  3. WebSocketサーバーを有効にする」にチェック
  4. サーバーポート: 4455(デフォルトのまま)
  5. 認証を有効にする」にチェックし、パスワードを設定(例: mypassword123
  6. 「OK」で保存

ここで設定したパスワードは、後ほどconfig.jsonに入力します。

2-2. シーンを作成する

NOALBSが切り替え先として使うシーンをOBSに作成します。最低限必要なのは以下の3つです。

シーン名 役割 内容の例
LIVE 通常時(ビットレート正常) リレーサーバーからのメディアソース、オーバーレイ、チャット表示など
LOW 低ビットレート時 LIVEと同じ映像 + 「回線不安定」テキスト表示など
BRB 切断時(オフライン) 「すぐ戻ります」の静止画 or アニメーション、BGM など

シーン名は自由に変更可能ですが、config.jsonの設定と完全に一致させる必要があります。

2-3. LIVEシーンにメディアソースを追加

リレーサーバーからの映像をOBSで受信するため、LIVEシーンにメディアソースを追加します。

  1. LIVEシーンを選択
  2. ソース欄の「+」→「メディアソース」を追加
  3. ローカルファイル」のチェックを外す
  4. 「入力」欄にリレーサーバーのSRT URLを入力:
    srt://relay.example.com:port?streamid=your_stream_id&mode=caller
  5. 「入力フォーマット」に mpegts と入力
  6. 「再接続の遅延」を 1(秒)に設定
  7. 「OK」で保存

SRT URLの具体的な値はリレーサービスのダッシュボードで確認できます。

Step 3: .envファイルの設定(Twitch連携)

Twitchチャットからのコマンド操作を使う場合、.envファイルにBotアカウントの認証情報を設定します。

3-1. OAuthトークンの取得

  1. twitchtokengenerator.com にアクセス
  2. Botとして使うTwitchアカウントでログイン(メインアカウントでもOK)
  3. Bot Chat Token」を選択して生成
  4. 表示された oauth:xxxxxxxxx をコピー

3-2. .envファイルを編集

VS Codeで.envファイルを開き、以下のように編集します。

TWITCH_BOT_USERNAME=あなたのTwitchユーザー名
TWITCH_BOT_OAUTH=oauth:ここにコピーしたトークンを貼り付け

注意点:

  • ファイル名は必ず .env(拡張子なし)。.env.txt になっていないか確認
  • 値をクォート(")で囲まないこと
  • YouTube配信のみでTwitchチャット連携が不要な場合、このファイルは空のままでOK

Step 4: config.jsonの設定

NOALBSの心臓部です。VS Codeでconfig.jsonを開いて編集します。ここではBELABOX Cloudをリレーサーバーとして使っている場合の設定例を示します。

4-1. 最小構成のconfig.json

初めての場合は、以下の最小構成から始めるのがおすすめです。不要なサーバー設定を削除し、必要な部分だけ残します。

{
  "user": {
    "id": null,
    "name": "あなたのTwitchユーザー名",
    "passwordHash": null
  },
  "switcher": {
    "bitrateSwitcherEnabled": true,
    "onlySwitchWhenStreaming": false,
    "instantlySwitchOnRecover": true,
    "autoSwitchNotification": true,
    "retryAttempts": 5,
    "triggers": {
      "low": 500,
      "rtt": 1500,
      "offline": 400
    },
    "switchingScenes": {
      "normal": "LIVE",
      "low": "LOW",
      "offline": "BRB"
    },
    "streamServers": [
      {
        "streamServer": {
          "type": "Belabox",
          "statsUrl": "http://use.srt.belabox.net:8080/あなたのSTREAMID",
          "publisher": "あなたのSTREAMID"
        },
        "name": "BELABOX cloud",
        "priority": 0,
        "overrideScenes": null,
        "dependsOn": null,
        "enabled": true
      }
    ]
  },
  "software": {
    "type": "Obs",
    "host": "localhost",
    "password": "OBS WebSocketで設定したパスワード",
    "port": 4455,
    "collections": null
  },
  "chat": {
    "platform": "Twitch",
    "username": "あなたのTwitchユーザー名",
    "admins": ["あなたのTwitchユーザー名"],
    "ignoreUsers": [],
    "language": "EN",
    "prefix": "!",
    "enablePublicCommands": true,
    "enableModCommands": true,
    "enableAutoStopStreamOnHostOrRaid": false,
    "announceRaidOnAutoStop": false,
    "commands": {
      "Fix": {
        "permission": "Mod",
        "userPermissions": null,
        "alias": ["f"]
      },
      "Switch": {
        "permission": "Mod",
        "userPermissions": null,
        "alias": ["ss"]
      },
      "Bitrate": {
        "permission": null,
        "userPermissions": null,
        "alias": ["b"]
      }
    }
  },
  "optionalScenes": {
    "starting": null,
    "ending": null,
    "privacy": null,
    "refresh": null
  },
  "optionalOptions": {
    "twitchTranscodingCheck": false,
    "twitchTranscodingRetries": 5,
    "twitchTranscodingDelaySeconds": 15,
    "offlineTimeout": null,
    "recordWhileStreaming": false,
    "switchToStartingSceneOnStreamStart": false,
    "switchFromStartingSceneToLiveScene": false
  }
}

4-2. 各設定項目の解説

user セクション

項目 説明
name あなたのTwitchユーザー名(小文字)
id null のままでOK(自動取得される)
passwordHash null のままでOK

triggers(閾値設定)— 最も重要な設定

NOALBSがシーンを切り替える判断基準です。単位はkbps / msです。

項目 デフォルト 説明
low 500 ビットレートがこの値(kbps)以下になるとLOWシーンに切替
rtt 1500 RTT(往復遅延)がこの値(ms)以上になるとLOWシーンに切替(SRT接続のみ)
offline 400 ビットレートがこの値以下になるとBRBシーン(切断扱い)に切替

調整のコツ:

  • 配信ビットレートが4000〜6000kbpsの場合、low: 500 / offline: 400 が目安
  • 低ビットレート(2000kbps程度)で配信する場合は、low: 300 / offline: 200 に下げる
  • retryAttempts: 5 は「5回連続で閾値以下だったら切り替え」の意味。値を増やすと切替がゆっくりに、減らすと敏感になる

switchingScenes(シーン名)

項目 説明
normal 通常時のシーン名(OBSのシーン名と完全一致させること)
low 低ビットレート時のシーン名
offline 切断時のシーン名

streamServers(リレーサーバー設定)

利用中のリレーサービスに合わせて設定します。使わないサーバーは削除するか "enabled": false にしてください

BELABOX Cloud の場合:

{
  "type": "Belabox",
  "statsUrl": "http://use.srt.belabox.net:8080/あなたのSTREAMID",
  "publisher": "あなたのSTREAMID"
}

statsUrlpublisher の値はBELABOX Cloudのダッシュボードに表示されるStream IDを使用します。

SRT Live Server の場合:

{
  "type": "SrtLiveServer",
  "statsUrl": "http://your-relay-server:8181/stats",
  "publisher": "publish/live/feed1"
}

IRLServer / IRL Hosting の場合:

各サービスのドキュメントでNOALBS用の統計URLとパブリッシャー名が案内されています。ダッシュボードまたはサポートで確認してください。

software(OBS接続設定)

項目 説明
host OBSが動いているPCのアドレス。同じPCなら localhost
password Step 2で設定したOBS WebSocketのパスワード
port 4455(OBS WebSocket 5.xのデフォルト)
collections Twitch/Kickで別プロファイルを使い分ける場合に設定。不要なら null

Step 5: NOALBSを起動する

5-1. 起動

  1. OBS Studioが起動していることを確認(NOALBSより先に起動しておく)
  2. noalbs.exe をダブルクリックして起動
  3. コマンドプロンプトのウィンドウが開き、ログが表示される

5-2. 正常起動時のログ

以下のようなログが表示されれば正常に起動しています。

[INFO] Connected to OBS
[INFO] Connected to Twitch chat
[INFO] Monitoring stream server: BELABOX cloud

5-3. よくあるエラーと対処法

エラー内容 原因 対処法
Failed to connect to OBS OBSが起動していない or WebSocket設定が間違い OBSを先に起動。パスワード・ポートを確認
Failed to authenticate OBS WebSocketのパスワードが不一致 config.jsonpassword をOBS側と一致させる
Twitch auth failed .envのOAuthトークンが無効 トークンを再取得して.envを更新
.env not found ファイルが.env.txtになっている 拡張子を確認。「名前の変更」で.txtを削除
シーンが切り替わらない シーン名がconfig.jsonとOBSで不一致 大文字小文字を含めて完全一致させる

Step 6: 動作テスト

セットアップが完了したら、実際に動作を確認します。

6-1. ビットレート確認

Twitchチャットで !bitrate と入力します。NOALBSが現在のビットレートを返信すれば、リレーサーバーとの連携は正常です。

6-2. シーン切替テスト

  1. エンコーダー(Moblin等)からリレーサーバーへの配信を開始
  2. OBSのLIVEシーンに映像が表示されることを確認
  3. エンコーダーの配信を一時停止(Moblinの停止ボタン等)
  4. 数秒後にNOALBSが検知し、自動でBRBシーンに切り替わることを確認
  5. エンコーダーの配信を再開
  6. 自動でLIVEシーンに戻ることを確認

6-3. 手動シーン切替テスト

Twitchチャットから以下のコマンドで手動切替もテストします。

コマンド 動作
!switch LIVE LIVEシーンに切替
!switch BRB BRBシーンに切替
!bitrate 現在のビットレートを表示
!fix ストリームの修復を試行(映像が固まったとき等に使用)

Twitchチャットコマンド一覧

NOALBSはTwitchチャットから操作できます。コマンドの権限レベルは3段階です。

全ユーザーが使えるコマンド

enablePublicCommands: true の場合)

コマンド エイリアス 説明
!bitrate !b 現在のビットレートを表示

モデレーターが使えるコマンド

enableModCommands: true の場合)

コマンド エイリアス 説明
!fix !f ストリーム修復を試行
!switch [シーン名] !ss 指定シーンに手動切替
!trigger [値] 低ビットレート閾値を変更(kbps)
!otrigger [値] オフライン閾値を変更(kbps)
!rtrigger [値] RTT閾値を変更(ms)
!sourceinfo ソース情報を表示
!serverinfo サーバー情報を表示

管理者(admin)が使えるコマンド

コマンド 説明
!start OBSの配信を開始
!stop OBSの配信を停止
!live LIVEシーンに切替
!privacy プライバシーシーンに切替
!noalbs prefix [文字] コマンドの接頭辞を変更(デフォルト: !

配信中にモデレーターが !fix で映像トラブルに対処してくれるのは、屋外配信では非常に助かる場面が多いです。

YouTube配信で使う場合の注意点

NOALBSのチャットコマンド機能はTwitch(およびKick)のみ対応しています。YouTubeのチャットからNOALBSを操作することはできません

ただし、NOALBSの自動シーン切替機能はプラットフォームに関係なく動作します。リレーサーバーのビットレートを監視してOBSのシーンを切り替えるだけなので、OBSの配信先がYouTubeでも問題ありません。

機能 Twitch YouTube
自動シーン切替(BRB↔LIVE)
チャットコマンド(!bitrate等) ×
レイド時の自動配信停止 ×

YouTube配信者がNOALBSを使う場合、.envファイルは空のままで、config.jsonchat セクションは設定不要です。自動切替だけで十分な価値があります。

運用Tips

NOALBSを自動起動させる

配信のたびに手動でnoalbs.exeを起動するのは手間です。OBSと一緒に自動起動させましょう。

  1. Win + R で「ファイル名を指定して実行」を開く
  2. shell:startup と入力してEnter
  3. 開いたスタートアップフォルダに、noalbs.exeショートカットを作成して配置

これでPC起動時にNOALBSも自動的に起動します。OBSも同様にスタートアップに入れておくと便利です。

BRBシーンを工夫する

BRBシーンは視聴者が最も長く見る可能性がある画面です。以下の要素を入れておくと離脱を防げます。

  • 「電波が不安定なためしばらくお待ちください」のテキスト
  • BGM(ループ再生)
  • チャット欄の表示(視聴者同士が会話できるように)
  • SNSアカウントの表示

閾値のチューニング

デフォルトの閾値(low: 500 / offline: 400)は多くのケースで適切ですが、配信環境によっては調整が必要です。

  • 頻繁にBRBに切り替わる場合: offline の値を下げる(300等)、retryAttempts を増やす(7〜10)
  • 回線が切れているのにBRBに切り替わらない場合: offline の値を上げる、retryAttempts を減らす
  • チャットから !trigger / !otrigger で配信中にリアルタイム調整可能

まとめ

NOALBSのセットアップ手順を振り返ります。

ステップ やること
Step 1 GitHubからWindows版をダウンロード・展開
Step 2 OBSでWebSocket有効化 + LIVE / LOW / BRB シーンを作成
Step 3 .envにTwitch認証情報を設定(YouTube配信のみなら不要)
Step 4 config.jsonにリレーサーバー情報・OBS接続情報・閾値を設定
Step 5 OBSを起動してからnoalbs.exeを起動
Step 6 エンコーダーの停止・再開で自動切替を確認

NOALBSは設定ファイルをテキストエディタで編集するタイプのツールなので、GUIに慣れている人には最初はとっつきにくいかもしれません。しかし一度設定してしまえば、あとは起動するだけで配信を自動的に守ってくれます。

屋外配信ツールの全体像は屋外ライブ配信ツール完全マップを、自前でリレーサーバーを構築したい場合のVPS選びは国内VPS 6社比較も参考にしてください。

コメント

タイトルとURLをコピーしました