ffmpegを使ってmp4をm3u8に変換

ツール

ffmpegコマンドを使ってmp4ファイルをm3u8(ts)形式に変換するコマンド
環境はUbuntu18

以下サンプルは input.mp4を
web用にビットレートを抑え
画面サイズを640×360にリサイズ
プレイリストファイル名stream/playlist.m3u8
tsはstream/v_%03d.ts に10秒分割 (%03dは3桁の連番数字になる)
に書き出します。

$ ffmpeg -i input.mp4\
 -vcodec libx264 -movflags faststart -vprofile baseline -level 3.0 -g 150 -b:v 519k -s 640x360 -acodec aac -strict experimental -b:a 63.4k -ar 44100 -flags +loop-global_header -map 0 -f segment -segment_format mpegts\
 -segment_time 10 \
 -segment_list stream/playlist.m3u8 \
 stream/v_%03d.ts

参考

$ ffmpeg
-i input.mp4 // input source
-vcodec libx264 // video codec (H264)
-movflags faststart // video fast decode(mov box moov to header)
-vprofile baseline -level 3.0 // video profile (Baseline, Lv 3.0)
-g 150 // ?
-b:v 519k // video bitrate (519kbps)
-s 768x432 // video size (768 x 432 px)
// -acodec libfaac // audio codec (AAC)
-acodec libfdk_aac
-b:a 63.4k // audio bitrate (63.4kbps)
-ar 44100 // audio sampling rate (44.1kHz)
-flags +loop-global_header
-map 0
-bsf h264_mp4toannexb
-f segment
-segment_format mpegts
-segment_time 10 // ts duration
-segment_list stream/playlist.m3u8 // playlist filename
stream/v%03d.ts // ts file name format

web用に最適化

$ ffmpeg \
-i 変換前ファイル名.mp4 \
-vcodec libx264 \
-movflags faststart \
-vprofile baseline -level 3.0 \
-g 150 \
-b:v 519k \
-s 960x540 \
-b:a 63.4k \
-ar 44100 \
-flags +loop-global_header \
-map 0 \
変換後ファイル名.mp4

ちなみに・・・ffmpegのインストール手順は忘れました

コメント

タイトルとURLをコピーしました