簡単にHLS形式の動画を作れる「HLS作成さん」を配布しました

テクノロジー

HLS(HTTP Live Streaming)の作成は面倒です。
基本的にはFFmppegを使用してコマンドラインで作るのが一般的です。
しかし、それだとABR(アダプティブ・ビットレート)の対応に苦労します。

そこで、今回windows限定ですがドラック&ドロップで240p~1080pまでの画質を自動で作成できるバッチ「HLS作成さん」を作りました。

FFmpegのパスを通す必要があるので、まだの場合はこちらの記事を参考に導入してください。

WordPressでHLS形式の動画を配信する方法はこちら

【追記】GitHubにも上げました

GitHub - GoLaboRat/Ms.-HLS-Creation
Contribute to GoLaboRat/Ms.-HLS-Creation development by creating an account on GitHub.

プログラムのダウンロード

フォルダ内のREAD_MEをお読みの上、自己責任でご利用ください。

解凍するとHLS_Sakusei_Sanというフォルダがあるので、それを好きな場所に置いてください。

使用方法

フォルダを開くと「Drop_30fps.bat」、「Drop_60fps.bat」という2種類のファイルがあります。

元動画に近いフレームレートのファイルに変換したい動画ドロップします。

TEST.mkvを60fps.batファイルにドロップする場合

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

エンコードが終わると「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」フォルダを削除して再度試してみてください。

分からないことがあればお気軽にコメント下さい。

コメント