HLS(HTTP Live Streaming)の作成は面倒です。
基本的にはFFmppegを使用してコマンドラインで作るのが一般的です。
しかし、それだとABR(アダプティブ・ビットレート)の対応に苦労します。
そこで、今回windows限定ですがドラック&ドロップで240p~1080pまでの画質を自動で作成できるバッチ「HLS作成さん」を作りました。
FFmpegのパスを通す必要があるので、まだの場合はこちらの記事を参考に導入してください。
WordPressでHLS形式の動画を配信する方法はこちら
【追記】GitHubにも上げました
プログラムのダウンロード
フォルダ内のREAD_MEをお読みの上、自己責任でご利用ください。
解凍するとHLS_Sakusei_Sanというフォルダがあるので、それを好きな場所に置いてください。

使用方法
フォルダを開くと「Drop_30fps.bat」、「Drop_60fps.bat」という2種類のファイルがあります。
元動画に近いフレームレートのファイルに変換したい動画ドロップします。

するとコマンドプロンプトが開いてエンコードが始まります。

エンコードが終わると「HLS_Sakusei_San」フォルダの「video」にエンコードされた動画が入っています。

このバッチを使用すると必ず240p、360p、480p、720p、1080pが生成されます。
videoフォルダはバッチを起動するたびに初期化されるので、名前を変更するか別の場所に移動してください。
バッチの内容について
このプログラムは複数のバッチファイルで構成されています。
HLS_Sakusei_San
→Drop_30fps.bat
→Drop_30fps.bat
→batch
→1080p.bat
→enc30fps.bat
→enc60fps.bat
→Initialization.bat
→move.bat
→rename.bat
それぞれ解説します。
Drop_30fps.bat
Drop_30fps.bat
30fps/60fpsの動画を作成します。
「batch」フォルダ内のバッチを読み込んでいます。
enc30fps.bat
enc60fps.bat
FFmpegへ渡すコードが記載されています。
Initialization.bat
フォルダ内の初期化を行います。
rename.bat
出力された.tsファイル、.m3u8ファイルの書き換えを行います。
動画時間が長いと書き換えに時間がかかる場合があります。
1080p.bat
1080p専用の書き換えプログラムです。
move.bat
videoフォルダ内に.tsファイル、.m3u8ファイルを移動します。
txtファイルも出力されているので、それらの削除も行います。
[ads]
エンコード内容について
作成される動画について説明します。
共通項目
セグメントの長さ(tsファイルの長さ)は3秒
キーフレームも3秒毎に設定されています
30fpsの動画
FRAME_RATE 30fps
GOP 90
HLS TYPE VOD
HLS TIME 3 seconds
426×240 Profile main 3.1 libx264 crf:22 maxrate:400k AAC:96kbps
640×360 Profile main 3.1 libx264 crf:21 maxrate:700k AAC:128kbps
854×480 Profile main 3.1 libx264 crf:20 maxrate:1200k AAC:160kbps
1280×720 Profile main 3.1 libx264 crf:19 maxrate:2200k AAC:192kbps
1920×1080 Profile main 3.1 libx264 crf:18 maxrate:3800k AAC:224kbps
60fpsの動画
FRAME_RATE 60fps
GOP 180
HLS TYPE VOD
HLS TIME 3 seconds
426×240 Profile main 3.1 libx264 crf:22 maxrate:600k AAC:96kbps
640×360 Profile main 3.1 libx264 crf:21 maxrate:900k AAC:128kbps
854×480 Profile main 3.1 libx264 crf:20 maxrate:1400k AAC:160kbps
1280×720 Profile main 3.1 libx264 crf:19 maxrate:3000k AAC:192kbps
1920×1080 Profile main 3.1 libx264 crf:18 maxrate:5400k AAC:224kbps
もし、エンコード設定を変更したい場合、「enc30fps.bat」、もしくは「enc60fps.bat」を右クリックし、編集を選択します。

すると、メモ帳が開くので書き換えてください。

注意事項
videoファルダの中身はバッチを起動すると必ず初期化されます(ダブルクリックでも)
作成後は名前を変更するか、別ディレクトリに移動することをお勧めします。
あくまでフォルダ内で実行する前提で組んでいるので、階層を弄ったり中身を別の場所に移したり絶対しないでください。
エンコード設定は自分の経験を元に決めています。
動作がおかしい、.tsファイルが消えないという場合はお手数ですがフォルダ内の「video」フォルダを削除して再度試してみてください。
分からないことがあればお気軽にコメント下さい。
コメント