HLS(m3u8+ts)形式の動画をffmpegというソフトを使用してmp4形式の動画に一発変換する方法を紹介します。これでらくらく再生可能です。
contents
HLS(m3u8)とは
HLSとは
HLSとはHTTP Live Streamingの略で、Appleによって開発された動画配信技術です。
今回中身については本題ではないので記述しません。
m3u8とは
HLSを使用した配信では、インデックスファイルと分割された動画ファイルにより構成されています。
m3u8はインデックスファイルのことです。もともとM3U はマルチメディアプレイリストのファイルフォーマットで、M3U8はUTF-8で書かれたM3Uファイルということを表しています。
FFmpegをインストールする
動作確認環境:Windows7 64bit
OSや動作環境の違いで多少異なることが有ります。
ダウンロード
FFmpegを公式ページからダウンロードする。
①公式ページにアクセス後、画面左のメニューか中央右のDownloadをクリックする。
②Windowsのマークをクリックする。
③「Windows Builds」をクリックする。
④画面中央右の「Download FFmpeg」をクリックしダウンロードを開始する。
これでダウンロード完了です♪
インストール
先程ダウンロードしたファイルをインストールしていきます。
ffmpeg-20170702–c885356–win64-static.zip
青文字部分はダウンロードした時期、環境によって異なります。
①ダウンロードしたファイルを解凍します。
②解凍したフォルダをffmpegにリネームします。
③任意の場所に格納(移動)します。
私は C:\Program Files\ffmpeg に格納しました。
④環境変数設定
システムを表示(コンピュータのアイコンを右クリック)→システムの詳細設定→環境変数
変数名:PATH に <格納場所>+\bin を追加します。
私の場合、C:\Program Files\ffmpeg\bin です。※すでに値が設定されている場合は区切り文字「;」を入力したあと環境変数を設定して下さい。
環境変数の設定方法はWindows 環境変数 Path の設定方法を御覧ください(外部リンク)。
これでようやくFFmpegを使用する準備が整いました。
動画変換方法
FFmpegを使用したHLS形式動画のmp4への変換方法を紹介します。
※作業は「D:\work」配下で行っています。
例として25この分割動画ファイルとインデックスファイルを用意しました。こちらをワンステップでmp4に変換します!
動画ファイルとインデックスファイルがあるフォルダを開き、アドレスバーにcmdと入力します。コマンドプロンプトを開いて動画ファイルがあるフォルダに移動してもOKです。
作業フォルダにいることを確認。ちゃんと、「D:\work>」と表示されています。
あとは下記コマンドを打ち込むだけです。
ffmpeg -i (インデックスファイル名).m3u8 -movflags faststart -c copy -bsf:a aac_adtstoasc (保存する動画名).mp4
実際にコマンドを実行してみます。インデックスファイル名=index.m3u8、保存する動画名=output.mp4としました。
ffmpeg -i index.m3u8 -movflags faststart -c copy -bsf:a aac_adtstoasc output.mp4
コマンド入力してEnterを押すだけ!
一瞬で分割されたファイルの統合が終わりました。
しっかり指定したoutput.mp4ができていますね。もちろんちゃんと再生できます♪
さいごに
今回はFFmpegを使用したHLS(m3u8+ts)形式の動画のmp4への一発変換方法を紹介しました。
Freemake Video Converterというソフトでも似たようなことができるのですが、私の環境では統合ではなく一回動画のエンコードを挟んでしまって動画ファイルがでかくなるという問題が発生しました。
動画をただ連結してくれるだけのFFmpegをおすすめします。