初心者向け、FFmpegでm3u8のURLから動画をダウンロードしてMP4に変換&結合する方法
- ISLAND TVやTVerなどで動画をWinX YxxTxxx DownloaderやFreemake Video Converterなどでダウンロードしようとすると、直接にダウンロードできません。
- 調べて見たら、ISLAND TVやTVerなどの動画のURLがm3u8になっていて、一般の動画ダウンロードソフトではダウンロードできません。m3u8のURLから動画をダウンロードするにはFFmpegというソフトがお勧められました。
- しかし、ネットで紹介された方法はパソコン音痴の私にとってはあまりにも複雑で、イマイチわかりません。
- 初心者でもわかるように、最初から最後までFFmpegでm3u8のURLから動画をダウンロードする方法を教えていただけませんか。
先日、筆者は「FFmpegでm3u8のURLから動画をダウンロードする方法を教えてください」というメールを受信しました。
確かに、ネットではFFmpegでm3u8のダウンロード方法についての文章はたくさんありますが、全部初心者にとっては、分かりづらいと思います。
だから、ここでは、FFmpegでm3u8のURLから動画をダウンロードする方法を一から紹介します。
目次
豆知識〜m3u8を直接にダウンロードして再生できない原因
【FFmpeg m3u8ダウンロードStep1】m3u8のURLを取得する方法
豆知識〜FFmpeg各オプションの簡単な説明
【FFmpeg m3u8ダウンロードStep2】FFmpegでm3u8のURLからts動画をダウンロードして保存する方法
FFmpegでm3u8のURLからts動画をMP4に変換して結合する方法
FFmpegより簡単にm3u8をダウンロードする方法
まとめ
豆知識〜m3u8を直接にダウンロードして再生できない原因
ストリーミングをダウンロードするために、まずm3u8とHLSという形式を紹介しなければなりません。
- HLS( -HTTP Live Streaming)というのはAppleが策定したライブストリーミングの手法です。WOWOW, AbemaTV, Netflix, Hulu, Tver, Avgel, GYAO!, Pornhub, U-NEXTなどの動画サイトではHLSという方式で動画が配信されています。
- HLSによる配信は、m3u8(インデックスファイル)とTS(分割されたメディアセグメントファイル)により構成されています。
HLS
- m3u8というのはただストリーミング動画の一つ、または複数のメディアファイルのパスをプレーンテキスト(テキストファイル)で記述したものです。このファイルを、".m3u"または".m3u8"の拡張子で保存します。動画データを格納することではありません。一方、このファイルのおかげで、ストリーミングへのアクセス、ウェブサイトからのダウンロード、インターネットラジオの視聴が容易になります。
m3u8
動画ゲッターなどのブラウザプラグインでは、m3u8インデックスファイルをダウンロードして、そしてtsファイルを一括ダウンロードすることもできます。
しかし、そのtsファイルが大量になってしまい、再生するものにはなれません。
ここはFFmpegの出番です。FFmpegを使ったら、m3u8のURLからts動画をMP4にダウンロードして保存することができます。
これからはその方法について詳しく紹介します。
VideoProc Converter AI - 動画ダウンロードには一押し!
☘ 1000以上のサイトから動画が素早くダウンロード可能
☘ 音楽をMP3/AAC/M4A/WMAにダウンロードできる
☘ ようつべライブ動画を直接に無劣化でダウンロードできる
☘ 複数の動画(プレイリス・チャンネル)が同時に追加可能
☘ ようつべの未公開動画と「後で見る」もダウンロードできる
☘ レジューム機能あり、失敗したダウンロードタスク再開可能
【FFmpeg m3u8ダウンロードStep1】m3u8のURLを取得する方法
FFmpegは直接に動画のm3u8ファイルのURLを取得できないので、事前にブラウザから、m3u8動画のURLを取得する必要があります。
-
動画の再生画面の空白の部分を右クリックして、「ページのソースを表示」をクリックします。
一部のサイトは右クリック未対応なので、直接にブラウザのURL欄で「view-source:+動画ページのURL」を入力して開きます。
例えば:view-source:https://j-island.net/movie/play/id/7225
-
キーボードにある「Ctrl」+「F」と同時にクリックして、「.m3u8」を入力します。
「' '」にあるURLは探しているm3u8のURLです。
筆者が試した動画のURLは下のようになります。
- /movie/play_hls/file_name/200922_04/?play_list=j-island%2F200922_04%2F200922_04.m3u8
しかし、これは絶対パスではなく、相対パスです。URLが不完全で、FFmpegでは認識できません。http/htttpsのあるように、相対パスを絶対パスに補足しましょう。
実践で利用したサイトは「https://j-island.net/」なので、先コピーした相対パスの前に「https://j-island.net/」を貼り付けたらFFmpegで読み込めるm3u8のURLができました。
m3u8のURLは:
- https://j-island.net/movie/play_hls/file_name/200922_04/?play_list=j-island%2F200922_04%2F200922_04.m3u8
となります。ちなみに、一部のサイトは完全の相対パスを利用しているので、ドメインを補足する必要がありません。
豆知識〜FFmpeg各オプションの簡単な説明
FFmpegでm3u8のURLから動画をダウンロードするには、FFmpegの各オプションを説明する必要があると思うので、まずその意味を解説します。
FFmpegで動画を処理する時、下のようなコマンドが基本形となります。
- ffmpeg -i "入力.拡張子" "出力.拡張子"
FFmpegでm3u8のURLから動画ダウンロードする場合は、次のような形になります。
- ffmpeg -i "解析URL" -c copy "ストリーミング.ts"
また他のオプションの説明は下記をご覧下さい。
- -user-agent ""は、ブラウザの種類やバージョンを表す文字列です。ブラウザからのアクセスを偽装するために必要となります。
- -codec copyは、動画・音声を複製します。
- -c copyと書くこともできます。
- -copytsは、元動画ファイルのタイムスタンプをコピーするオプション。
- -bsf:a aac_adtstoascは、tsからmp4に変換するときに付けるオプション。…なのですが、今は付けなくてもよしなにやってくれるみたいです。
- -loglevel "error"は、プロンプトに表示されるログの設定になります。このオプションを付けると、エラーが起こったときのみログが表示されます。
【FFmpeg m3u8ダウンロードStep2】FFmpegでm3u8のURLからts動画をダウンロードして保存する方法
HLSにより配信している動画の形式は元々tsファイルなので、FFmpegのエンコードなしのダウンロードなら、動画はtsで保存します。出力の拡張子は「.ts」にします。
コマンドは:
- ffmpeg -i "http*****.m3u8" -c copy "output.ts"
となります。そして下の順でやったら、FFmpegでm3u8のURLからts動画をダウンロードすることができます。
-
Windows 10の左下にある検索ボックスで「CMD」を入力して、「コマンドプロンプト」を起動します。
-
「ffmpeg -i "http*****.m3u8" -c copy "output.ts"」をコピペして「Enter」キーを押します。こうすれば、FFmpegでm3u8のURLから動画をtsファイルにダウンロードして保存します。
そのダウンロードしたtsファイルの保存先はコマンドプロンプトを開いて、そのカーソルの左にあるパスです。
下図のように、ダウンロードしたtsファイルの保存先はC:\Users\akiというフォルダです。
FFmpegでm3u8のURLからts動画をMP4に変換して結合する方法
これまではFFmpegでm3u8をダウンロードする方法をご紹介しますた。ですが、tsファイルとして保存されます。tsファイルはアプリケーション側で扱いにくい形式なので、tsからmp4形式に変換するのが一般的です。
FFmpegでストリーミング動画形式を変換すると画質や音質は劣化するのではないか、と心配になるかも知れません。
HLSには元のファイルにも規定があり、ts(コンテナの)の中にはmp4(コンテナに入れられるコーデックの映像・音声)が入っています。このような変換を上のコマンドで行った場合は、データの先頭にあるファイル情報(ヘッダ)のみが変更されます。ビデオとオーディオのコーデックは変換しないので、映像・音声はそのままなので、劣化するということはありません。
それでは、FFmpegでm3u8のURLから動画をMP4に変換して結合する方法を紹介します。
-
Windows 10の左下にある検索ボックスで「CMD」を入力して、「コマンドプロンプト」を起動します。
-
「ffmpeg -i "http****.m3u8" -c copy -bsf:a aac_adtstoasc "output.mp4"」をコピペして、「Enter」キーを押します。こうすれば、FFmpegでm3u8のURLから動画をMP4ファイルにダウンロードして保存します。
FFmpegより簡単にm3u8をダウンロードする方法
これまではFFmpegを使ってm3u8をダウンロードして、tsファイルとMP4ファイルとして保存する方法をご紹介しました。コマンドで操作するFFmpegは素人にとって難しくてなかなか始まりません。ソフトを普通に操作する方法はないでしょうか。
それは確実にあります。VideoProc Converter AIというソフトは、通常動画をダウンロードする方法でm3u8もダウンロードできます。m3u8の絶対パスを入力することで、たとえ生放送もアーカイブも気軽にダウンロードできます。
このソフトは、m3u8ファイルをダウンロードする後に、MP4など互換性が高い動画形式に変換できます。同じく簡単かつ直感的な方法で、高速度かつ高品質に変換できます。
ではこれからは、VideoProc Converter AIでm3u8をダウンロードする方法をご紹介しましょう。
-
まずはVideoProc Converter AIを公式サイトからダウンロードして、インストールします。起動して、「ダウンロード」ボタンをクリックして、動画ダウンロード機能を起動します。
m3u8動画をダウンロードする方法 -
これまで紹介した手順でm3u8ファイルの絶対パスを取得して、コピーしておきます。
「動画追加」をクリックして、「URL貼付け&分析」ボタンをクリックします。
分析が完成したら、「選ばれた動画をダウンロードする」ボタンをクリックして、ダウンロードリストに追加します。
このソフトは複数作業に対応しています。このステップを繰り返して、ダウンロードしたい動画を追加します。
m3u8動画をダウンロードする方法 -
生放送をダウンロードする場合に、動画情報の横に「録画開始」ボタンをクリックして、ダウンロードし始めます。
アーカイブ動画をダウンロードする場合に、右下の「Download now」をクリックします。
まとめ
FFmpegでm3u8のURLから動画をダウンロードする方法を身につけましたか。FFmpegはコマンドで指令を下して作業を完成しますので、コマンドに詳しくないお方にとって難しそうな気がします。
この時に、より直感的なVideoProc Converter AIを使いましょう。使い慣れたソフトの形で、M3U8のリンクをコピペすることだけで、コマンド不要で簡単にダウンロードできます。M3U8をダウンロードする時に、このソフトは生放送とアーカイブ両方もダウンロードでき、オリジナルの品質で保存できます。
高性能動画保存ソフト- VideoProc Converter AI
VideoProc Converter AIは人気動画保存ソフトで、ニコニコ、インスタグラムストーリーのような1000+ネット動画をダウンロードして保存することが出来ます。また、録画機能が搭載されているので、動画やゲームを録画して保存するも簡単にできます。保存した動画をMP4, MOV, AVI, FLV MP3など形式でお使いのパソコンやスマホで自由に楽しめます。

