動かざることバグの如し

近づきたいよ 君の理想に

ffmpegでm3u8ファイル(HLS)から動画をダウンロードして保存するコマンド

環境

$ffmpeg -h|head
ffmpeg version git-2019-03-08-147ef1d Copyright (c) 2000-2019 the FFmpeg developers
  built with Apple LLVM version 10.0.0 (clang-1000.10.44.4)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/HEAD-147ef1d --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags='-I/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/include -I/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/include/darwin' --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libbluray --enable-libmp3lame --enable-libopus --enable-librubberband --enable-libsnappy --enable-libtesseract --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librtmp --enable-libspeex --enable-videotoolbox --disable-libjack --disable-indev=jack --enable-libaom --enable-libsoxr
  libavutil      56. 26.100 / 56. 26.100
  libavcodec     58. 47.103 / 58. 47.103
  libavformat    58. 26.101 / 58. 26.101
  libavdevice    58.  6.101 / 58.  6.101
  libavfilter     7. 48.100 /  7. 48.100
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  4.100 /  5.  4.100
  libswresample   3.  4.100 /  3.  4.100
  libpostproc    55.  4.100 / 55.  4.100

コマンド

ネットから落としてきたm3u8ファイルの中に動画が分割された.tsファイルのリストが入っている。

で、それをwgetで落として結合しようかな、と思っていたのだが、どうやらffmpeg自体にダウンロード機能があった。

以下ダウンロードするコマンド

ffmpeg -protocol_whitelist file,http,https,tcp,tls,crypto -loglevel debug -i hoge.m3u8 -movflags faststart -c copy movie.mp4
  • protocol_whitelist ローカルのm3u8ファイルを指定する場合はこのオプションをつけないとエラーになる
  • loglevel 任意
  • i 保存したいm3u8ファイルの場所
  • movflags faststart 録画終了後にメタデータをmp4ファイルの先頭部分に移動します。再生開始までの時間が短縮されます つまりおまじない
  • c copy コーデックはエンコードすることなくコピーするだけ 動画変換が今回の目的ではないので

でいける。

蛇足

m3u8ファイルのダウンロードは以下が一番使いやすかった。監視してくれるChrome拡張機能

chrome.google.com