以下のような流れでRTMP配信を行うことができます。
Chrome/FirefoxブラウザでHLSを再生するにはHLS.jsというJavaScriptライブラリ、またはそれを組み込んだJavaScript動画プレイヤーライブラリを使用することが一般的です。
HLS.jsには、さまざまなオプション設定があります。通信エラーによるタイムアウトのデフォルト値がライブ配信用としては長いため、下記のようにセグメント長+1秒にすることでパケットロスを早期に検出し、リトライを繰り返すことができます。
セグメント長とは、動画ファイルの分割間隔のことです。CreateRTMPChannel APIのリクエストに含まれているdurationSecondsの値で指定しています。
下記に、セグメント長を2秒とした場合の推奨の設定例を紹介します。2秒+1=3秒でタイムアウトが推奨となりますので、タイムアウト関連の6項目を3000(ミリ秒)としています。 セグメント長を3秒とした場合、3秒+1=4秒でタイムアウトが推奨となりますので、下記の3000(ミリ秒)の6項目をすべて4000(ミリ秒)に変えてください。
var config = {
manifestLoadingTimeOut: 3000, // マスターマニフェストのタイムアウト(ミリ秒)
manifestLoadingMaxRetry: 10, // マスターマニフェストを何回リトライするか
manifestLoadingMaxRetryTimeout: 3000, // タイムアウトしたあとリトライするまでの最大待機時間(ミリ秒)
levelLoadingTimeOut: 3000, // レベルマニフェストのタイムアウト(ミリ秒)
levelLoadingMaxRetry: 10, // レベルマニフェストを何回リトライするか
levelLoadingMaxRetryTimeout: 3000, // タイムアウトしたあとリトライするまでの最大待機時間(ミリ秒)
fragLoadingTimeOut: 3000, // 動画データのタイムアウト(ミリ秒)
fragLoadingMaxRetry: 10, // 動画データを何回リトライするか
fragLoadingMaxRetryTimeout: 3000, // 動画データがタイムアウトしたあとリトライするまでの最大待機時間(ミリ秒)
liveBackBufferLength: 0, // 再生し終わったデータを保持する長さ(秒)
};
var hls = new Hls(config);
配信時間やエンコード時間などの情報は管理コンソールのWebRTC/HLS統計画面で確認できます。
現時点の各種仕様です。将来的には変更される可能性があります。
RTMPクライアントから接続して連続して配信を行う場合、最大 8時間 でサーバ側から切断されます。
この連続配信時間のカウントは途中でRTMPクライアントが切断した場合(クライアント側・サーバ側いずれからの切断でも同様)は0に戻ります。つまり、いったん切断して再度接続した場合、そこからまた最大8時間の配信が可能となります。
RTMPクライアントの最大の同時接続数、つまり、同時に配信を行うチャンネル数の上限は 10 となります。
お客様の必要に応じてシステム側で設定の変更も可能ですので、もしこれ以上の同時接続が必要な場合はお問い合わせください。
RTMPクライアントからImageFluxに入力する映像および音声には、以下のような制限があります。
映像
コーデック : H.264のみ
H.264 proflile : baseline/main/high のいずれか
Bフレーム : 「なし」のみ
解像度
幅 : 4096ピクセルまで
高さ : 4096ピクセルまで
フレームレート : 60fpsまで
ビットレート : 1.5Mbpsまで
音声
コーデック : AAC-LCのみ
チャンネル数 : 1チャンネル(=モノラル)または2チャンネル(=ステレオ)
サンプリングレート : 44.1KHzまたは48kHz
ビットレート : 320kbpsまで
OBS Studioから配信する場合、ホーム画面の[設定]から[配信]ページを表示し、[サービス]として「カスタム…」を選択します。 [サーバー]欄にRTMP配信用のURLからチャンネルIDを取り除いた部分を、[ストリームキー]欄にチャンネルIDをそれぞれ入力してください。
サーバー: rtmp://XXXXXXXX.imageflux.jp/live
ストリームキー: <channel_id>
[設定]→[出力]では、[映像エンコーダ]としてH.264系のエンコーダを選択してください。
プラットフォーム・環境により選択可能なエンコーダは異なりますが、利用可能であればハードウェアエンコーダを選択するとよいでしょう。
ハードウェアエンコーダが使用できない場合は x264 というソフトウェアエンコーダが使用できます。
[出力モード]を「詳細」にするとより細かい設定が可能となります。
[キーフレーム間隔]は 0 ではなく 2 秒程度に設定することをお勧めします。
Bフレームについて設定が可能なエンコーダの場合は、Bフレームを使用しないよう設定することをお勧めします。
必要な設定が完了した後は、ホーム画面の[配信開始]で配信を開始できます。 配信を終了するときは[配信終了]を押してください。
以下はOBS Studioでの必須設定・推奨設定です。
ビデオコーデック: H.264 (必須)
H.264 プロフィール: baseline/main/highいずれも可
キーフレーム間隔: 2秒推奨
Bフレーム: なし (必須)
解像度: 1280x720以下推奨
レートコントロール: CRF(最大ビットレート指定あり)推奨
最大ビットレート: 1500kbps以下
オーディオコーデック: AAC-LC(必須)
サンプリングレート: 48kHz (推奨)
チャンネル: 2(ステレオ) (推奨)
ビットレート: 160kbps以下推奨