FFmpeg M3U8をMP4に変換【2025年完全ガイド】

2026年版:FFmpegでストリーミングプレイリストをMP4ダウンロードに変換する実践ガイド。

目次

  • FFmpeg の概要とインストール
  • 基本変換コマンド
  • 高度なオプション(品質、速度、音声)
  • よくある問題と解決策
  • 一括変換スクリプト
  • オンライン代替ツール

概要

FFmpeg コマンドラインを使い、M3U8/HLS プレイリストを MP4 に変換する方法を学びます。インストール、基本コマンド、品質調整、トラブルシュートまで実用的に整理します。

前提条件

  • FFmpeg がインストール済み
  • アクセス可能な M3U8 URL またはローカルファイル
  • 基本的なコマンドライン操作の知識

FFmpeg をインストール

Windows

  1. ffmpeg.org から最新版をダウンロードします。
  2. アーカイブを C:\\ffmpeg に展開します。
  3. C:\\ffmpeg\\bin を PATH に追加します。

macOS

brew install ffmpeg

Linux (Ubuntu/Debian)

sudo apt install ffmpeg

基本変換コマンド

ストリームコピー(最速)

ffmpeg -i "https://example.com/playlist.m3u8" -c copy output.mp4

-c copy は元の音声・映像コーデックを保持します。MP4 コンテナがソースに対応している場合に最速です。

互換性のために再エンコード

ffmpeg -i input.m3u8 -c:v libx264 -c:a aac output.mp4

H.264 と AAC に再エンコードすると、ブラウザ、スマートテレビ、モバイル端末での互換性が高まります。

高度なオプション

高品質出力

ffmpeg -i input.m3u8 -c:v libx264 -crf 18 -preset slow output.mp4

-crf で品質を調整します。値が低いほど高品質で、slow preset はファイルサイズ効率を改善します。

ビットストリームフィルタで高速変換

ffmpeg -i input.m3u8 -c copy -bsf:a aac_adtstoasc output.mp4

aac_adtstoasc は ADTS 形式の AAC を MP4 互換に変換し、再エンコードを避けられます。

解像度を指定

ffmpeg -i input.m3u8 -s 1920x1080 -c:v libx264 -c:a copy output.mp4

-s で動画を指定解像度へスケールし、不要なら音声は copy できます。

よくある問題と修正

CORS または参照元エラー

保護された playlist では必要な header を追加します。

ffmpeg -headers "Referer: https://example.com" -i playlist.m3u8 -c copy output.mp4

Protocol not supported

ffmpeg -protocol_whitelist file,http,https,tcp,tls -i playlist.m3u8 -c copy output.mp4

ネットワークタイムアウト

ffmpeg -timeout 10000000 -i playlist.m3u8 -c copy output.mp4

一括変換スクリプト

Bash スクリプト

#!/bin/bash
for file in *.m3u8; do
  ffmpeg -i "$file" -c copy "${file%.m3u8}.mp4"
done

Windows バッチ

for %%f in (*.m3u8) do ffmpeg -i "%%f" -c copy "%%~nf.mp4"

オンライン代替

ブラウザで処理したい場合は オンライン M3U8 to MP4 コンバーター を使えます。進捗表示、キュー処理、ローカルインストール不要のワークフローに対応します。

FAQ

変換が失敗する理由は? ネットワークアクセス、protocol whitelist、DRM 保護の有無を確認してください。

品質を保つには? 元のコーデックに対応できる環境なら -c copy を使い、再エンコードを避けます。

ライブ配信を録画できますか? はい。-t 3600 を追加すれば 1 時間で録画を止められます。

まとめ

FFmpeg は M3U8 から MP4 への変換を細かく制御できます。もっと手早い方法なら オンラインコンバーター を使ってブラウザ上で処理できます。