CGJU
ツール検索サイト
2026年6月25日 · 読了時間 7 分
💡 クイック選択:一般的なライブ配信はRTMP、低遅延・高品質ならSRT、ブラウザでのリアルタイムインタラクションはWebRTCを選びましょう。

一、三大ライブ配信プロトコル概要

1. RTMP プロトコル

RTMP(Real-Time Messaging Protocol)はMacromedia(後にAdobeに買収)が開発したリアルタイムメッセージングプロトコルで、当初はFlashプレーヤーとサーバー間の音声・動画伝送に使用されていました。

  • リリース年:2002年
  • 開発元:Adobe / Macromedia
  • トランスポート層:TCP
  • デフォルトポート:1935

Flashが歴史的役割を終えつつありますが、RTMPは現在でもライブ配信の推流側で最も広く使われているプロトコルです。抖音、B站、Twitchなど、ほぼすべてのライブ配信プラットフォームがRTMP推流に対応しています。

2. SRT プロトコル

SRT(Secure Reliable Transport)はHaivisionが開発したオープンソースの動画伝送プロトコルで、UDPベースでありながらTCPのような信頼性を提供します。

  • リリース年:2017年(オープンソース化)
  • 開発元:Haivision
  • トランスポート層:UDP
  • デフォルトポート:カスタム(一般的に9000番)

SRTの最大のメリットは、不安定なネットワーク環境でも低遅延かつ高品質な伝送を維持できる点です。リモート制作や屋外ライブ配信などのシーンに適しています。

3. WebRTC プロトコル

WebRTC(Web Real-Time Communication)はウェブブラウザでのリアルタイム通信技術で、ブラウザ間でプラグインをインストールすることなく、直接音声・動画通信を行うことができます。

  • リリース年:2011年
  • 開発元:Google、後にW3C標準化
  • トランスポート層:UDP
  • デフォルトポート:ランダム(一般的に3478/19302番)

WebRTCの最大のメリットは、遅延が非常に小さい(通常500ms以下)ことと、ブラウザにネイティブ対応している点です。リアルタイムインタラクティブ配信やビデオ会議などのシーンに非常に適しています。

二、遅延比較

遅延はライブ配信プロトコルの最も重要な指標の1つであり、アプリケーションシーンによって要求される遅延は異なります。

プロトコル 典型的な遅延 遅延レベル
RTMP 1-3秒 低遅延
SRT 0.5-2秒 超低遅延
WebRTC 100-500ms 極低遅延
⚠️ 注意:上記は推流側からサーバーまでの遅延です。HLS/DASHなどのプロトコルを経由して視聴者側に配信される場合、全体の遅延は10-30秒に増加します。エンドツーエンドの低遅延を実現するには、全链路で低遅延プロトコルを使用する必要があります。

三、互換性比較

推流側の互換性

  • RTMP:OBS、FFmpeg、Wirecastなど、ほぼすべての推流ソフトウェアとライブ配信プラットフォームが対応しており、互換性が最も高い
  • SRT:OBS 25.0+、FFmpeg 4.0+、Haivisionデバイスなどが対応しており、対応度は急速に向上している
  • WebRTC:ブラウザにはネイティブ対応しているが、OBSなどのデスクトップソフトでの対応は少なく、専用のSDKが必要

再生側の互換性

  • RTMP:ブラウザではFlash(廃止済み)またはflv.jsなどのライブラリを使用してHTTP-FLVで再生する必要があり、ネイティブ対応は低い
  • SRT:ブラウザは非対応、専用のプレーヤーまたはデバイスが必要
  • WebRTC:Chrome、Firefox、Safari、Edgeなど、すべての主要ブラウザにネイティブ対応

CDN対応

  • RTMP:すべてのCDNベンダーが対応しており、ライブ配信CDNの標準プロトコル
  • SRT:Cloudflare Stream、Akamaiなど一部のCDNが対応しており、対応度は増加傾向
  • WebRTC:WebRTC配信に対応するCDNは少なく、コストが高い

四、ネットワーク適応性比較

ライブ配信の推流ではネットワークが不安定になることが多く、プロトコルのネットワーク適応性は非常に重要です。

特性 RTMP SRT WebRTC
伝送プロトコル TCP UDP + ARQ UDP
パケットロス再送 ✓ TCP再送 ✓ 選択的再送 △ 一部対応
パケットロスの影響 大(カクつきが蓄積) 小(画質低下で対応)
帯域変動 低い 高い 非常に高い(自動適応)
暗号化 △ RTMPS ✓ AES-128/256 ✓ DTLS-SRTP

五、OBS設定チュートリアル

OBS Studioは最も人気のあるライブ配信ソフトウェアです。以下では、異なるプロトコルでの推流設定方法を紹介します。

1. RTMP推流設定

  1. OBSを開き、「ファイル」→「設定」→「配信」をクリック
  2. サービスで「カスタム...」を選択
  3. サーバーに以下を入力:rtmp://あなたのサーバーアドレス/live
  4. ストリームキーにライブ配信ルームのキーを入力
  5. 「OK」をクリックして設定を保存
  6. 「配信開始」をクリックするとライブ配信が開始されます

2. SRT推流設定

  1. OBSを開き、「ファイル」→「設定」→「配信」をクリック
  2. サービスで「カスタム...」を選択
  3. サーバーに以下を入力:srt://あなたのサーバーアドレス:9000?streamid=ストリーム名
  4. ストリームキーは空欄のままにする
  5. 「OK」をクリックして設定を保存
  6. 「配信開始」をクリックするとライブ配信が開始されます

3. 推奨される動画エンコード設定

  • エンコーダー:x264(互換性が高い)またはNVENC(ハードウェアアクセラレーション、CPU使用率が低い)
  • 解像度:1920×1080(1080p)または1280×720(720p)
  • フレームレート:30fpsまたは60fps
  • ビットレート:3000-6000 kbps(アップロード帯域に応じて調整)
  • キーフレーム間隔:2秒(30fpsで60フレーム)
  • プリセット:veryfastまたはfaster(速度と品質のバランス)

六、Nginx-RTMPサーバー構築

Nginx-RTMPは最も一般的なセルフホスト型ライブ配信サーバーソリューションです。以下では、迅速な構築方法を紹介します。

1. Ubuntu/Debianでのインストール

# 依存関係のインストール
sudo apt update
sudo apt install -y build-essential libpcre3 libpcre3-dev libssl-dev zlib1g-dev

# nginxとnginx-rtmp-moduleのダウンロード
wget http://nginx.org/download/nginx-1.24.0.tar.gz
wget https://github.com/arut/nginx-rtmp-module/archive/refs/heads/master.zip -O nginx-rtmp-module.zip

# 解凍
tar zxf nginx-1.24.0.tar.gz
unzip nginx-rtmp-module.zip

# コンパイルとインストール
cd nginx-1.24.0
./configure --add-module=../nginx-rtmp-module-master
make
sudo make install

2. Nginx-RTMPの設定

/usr/local/nginx/conf/nginx.confを編集し、httpブロックの前にrtmp設定を追加します:

rtmp {
    server {
        listen 1935;
        chunk_size 4096;

        application live {
            live on;
            record off;
            
            # HLS設定
            hls on;
            hls_path /tmp/hls;
            hls_fragment 3s;
            hls_playlist_length 10s;
        }
    }
}

次にhttpブロック内にHLSアクセス設定を追加します:

location /hls {
    types {
        application/vnd.apple.mpegurl m3u8;
        video/mp2t ts;
    }
    root /tmp;
    add_header Cache-Control no-cache;
    add_header Access-Control-Allow-Origin *;
}

3. サービスの起動

# nginxの起動
sudo /usr/local/nginx/sbin/nginx

# 設定の再読み込み
sudo /usr/local/nginx/sbin/nginx -s reload

# 停止
sudo /usr/local/nginx/sbin/nginx -s stop

4. 推流テスト

FFmpegを使用して推流テストを行います:

ffmpeg -re -i input.mp4 -c copy -f flv rtmp://localhost/live/stream1

以下のアドレスで視聴できるようになります:

  • RTMPアドレス:rtmp://あなたのサーバーIP/live/stream1
  • HLSアドレス:http://あなたのサーバーIP/hls/stream1.m3u8

七、FFmpeg推流コマンド

1. RTMP推流

ローカルファイルの推流(リアルタイムレート):

ffmpeg -re -i input.mp4 -c:v libx264 -b:v 2500k -g 60 \
  -c:a aac -b:a 128k -f flv rtmp://server/live/stream

-reパラメータは、入力をネイティブフレームレートで読み取り、リアルタイムライブ配信をシミュレートすることを示します。

2. カメラ/マイクによるリアルタイム推流

# Linux
ffmpeg -f v4l2 -i /dev/video0 -f alsa -i default \
  -c:v libx264 -b:v 2000k -g 60 \
  -c:a aac -b:a 128k \
  -f flv rtmp://server/live/stream

# Windows
ffmpeg -f dshow -i video="カメラ名":audio="マイク名" \
  -c:v libx264 -b:v 2000k -g 60 \
  -c:a aac -b:a 128k \
  -f flv rtmp://server/live/stream

3. SRT推流

# 推流側
ffmpeg -re -i input.mp4 -c:v libx264 -b:v 2500k -g 30 \
  -c:a aac -b:a 128k -f mpegts srt://0.0.0.0:9000?mode=listener

# 再生側(または引き取り転送)
ffplay srt://送信側IP:9000?mode=caller

4. 画面録画による推流

# X11 (Linux)
ffmpeg -f x11grab -s 1920x1080 -r 30 -i :0.0 \
  -c:v libx264 -b:v 3000k -g 60 \
  -c:a aac -b:a 128k \
  -f flv rtmp://server/live/stream

# gdigrab (Windows)
ffmpeg -f gdigrab -s 1920x1080 -r 30 -i desktop \
  -c:v libx264 -b:v 3000k -g 60 \
  -c:a aac -b:a 128k \
  -f flv rtmp://server/live/stream

八、ライブ配信のベストプラクティス

1. 推流パラメータの推奨

画質レベル 解像度 フレームレート 動画ビットレート 音声ビットレート
標準画質 854×480 30 800-1500k 96-128k
高画質 1280×720 30 1500-3000k 128k
フルHD 1920×1080 30 3000-6000k 128-192k
フルHD高フレームレート 1920×1080 60 4500-8000k 128-192k

2. ネットワーク保障の推奨

  • 有線ネットワークを使用:WiFiは不安定なため、重要なライブ配信では有線接続を推奨
  • 帯域に余裕を持たせる:アップロード速度は推流ビットレートの1.5-2倍以上を確保
  • ネットワークテスト:ライブ配信前にspeedtest.netでアップロード速度をテスト
  • バックアップソリューション:4G/5Gのバックアップ回線を準備し、メイン回線の障害に備える

3. 推流のセキュリティ

  • 推流キーを使用:推流アドレスとキーを漏らさないようにする
  • 認証を有効化:サーバーに推流認証を設定し、不正な推流を防止
  • RTMPSを使用:対応プラットフォームではRTMPS(RTMP over TLS)による暗号化推流を使用

まとめ

ライブ配信プロトコルの選択は、具体的なシーンに応じて決定する必要があります:

  • RTMP:エコシステムが最も成熟しており、互換性が最も高い。ほとんどのライブ配信シーンに適している
  • SRT:ネットワーク変動への耐性が強く、屋外ライブ配信やリモート制作に適している
  • WebRTC:遅延が最も小さく、ブラウザネイティブ対応。リアルタイムインタラクティブ配信に適している

ほとんどのユーザーにとって、RTMP推流 + HLS/HTTP-FLV配信が最も安定したソリューションです。低遅延のインタラクションが必要な場合は、WebRTCを検討するとよいでしょう。

ライブ配信ストリームが正常かどうかをテストしたいですか?当サイトの FLV/RTMPオンラインプレーヤーでライブ配信ストリームの可用性をすぐに確認できます。

関連記事

その他の役立つ記事とツール

ライブ配信ストリームをテストしたいですか?

当サイトのFLV/RTMPオンラインプレーヤーで、ライブ配信ストリームが正常かどうかをすぐに確認できます

今すぐ体験 ➡