このスクリプトは、MP4形式の動画ファイルから、複数の解像度・ビットレートを持つHLS(HTTP Live Streaming)形式の動画ストリームを生成し、簡易なHTTPサーバーを起動して配信を行います。
スクリプトを実行するために以下のツールが必要です。
bash(シェル)ffmpeg(動画エンコード用)python3(簡易HTTPサーバー用)
インストール例(Ubuntu/Debian):
sudo apt update
sudo apt install ffmpeg python3./python-hlsserver.bash./python-hlsserver.bash 8000| 項目 | 内容 | デフォルト値 |
|---|---|---|
INPUT_FILE |
入力となる動画ファイル名 | test.mp4 |
OUTPUT_DIR |
HLS形式ファイルを保存する出力ディレクトリ | 入力ファイル名+_hls |
PORT |
配信に使用するHTTPサーバーのポート番号 | 8080 |
HLS_PREFIX |
マスタープレイリストに記載される各ストリームのURL | http://10.0.0.1:${PORT} |
- 入力動画ファイル名から拡張子を除いた名前を使用して、出力フォルダを作成します。
- 既にフォルダが存在している場合は、動画変換処理をスキップして既存のフォルダを使用します。
-
以下の4種類の解像度とビットレートの動画ストリームを生成します。
- 1280x720(3000 kbps)
- 854x480(1500 kbps)
- 640x360(800 kbps)
- 426x240(400 kbps)
-
動画を
ffmpegで変換し、それぞれの解像度に対応したHLS用.m3u8ファイルと.tsセグメントファイルを生成します。
- 各解像度で生成したストリームをまとめるマスタープレイリストを生成します。
- クライアント側ではこのプレイリストを参照して、適切な解像度を選択できます。
- Pythonの簡易HTTPサーバーを指定されたポート番号で起動し、HLSファイルを配信します。