トランソニックソフトウェア

ブログ
BLOG

2020.10.23

[CentOS7.6][nginx][HLS]FFMPEGによるマルチビットレート ライブストリーミングサーバ構築

マルチビットレート配信とは、1つのライブ配信を複数のビットレートで配信する方法です。

通常のライブ配信では1つのビットレートでの配信となり、全ての視聴者が同じ画質で動画を視聴します。

それに対しマルチビットレート配信では、視聴者のネット環境に応じて最も快適に視聴できるビットレートを複数の中から自動判定し配信するというものです。

 

前回の以下の記事では、1つのビットレートでの配信環境を作りました。

まずは、この手順に従って1つのビットレートでの配信環境を作りましょう。

その後、FFMPEGを利用してストリーミングを3つに分割して m3u8ファイルを構成する手順を説明します。

■ライブストリーミングサーバ構築
https://trans-it.net/centos7-ngin-livestreaming/

 

また、ストリーミングを分割するのにFFMPEGを利用します。

FFMPEGのインストールは以下の手順を参考に行ってください。

■FFMPEG4.3のインストール(コーデック H264、fdk-aac)
https://trans-it.net/centos7-ffmpeg43-h264-fdkaac/

 

( 1 ) nginxの設定

/usr/local/nginx/conf/nginx.conf

を vi で開き、以下のように設定します。

application srcに、

exec /var/scripts/exec_ffmpeg.sh $name;

と設定し、シェル exec_ffmpeg.shの中に、ffmpegでストリーミングを分割する処理を書きます。

 

また、以下のコマンドで hlsディレクトリを作成しておく。

 

( 2 ) シェルの設定

exec /var/scripts/exec_ffmpeg.sh の内容は以下の通りです。

まずは

※改行は消して1行にしてください。

 

上記コマンドにより実行権限を付与しておく事。

ストリーミングをFFMPEGを利用して動的に3つのビットレートに変換し、それを再度、nginxにストリーミングとして流し直す感じですね。

CPUパワーをとてつもなく消費するので、それなりのスペックのサーバが必要となります。

パラメータがサーバの環境に合っていないと、ストリーミングが途中で止まってしまいます。