LoginSignup
9
7

More than 5 years have passed since last update.

ffmpegを使ってiOS用にmp4ファイルをHLSに変換するシェルスクリプト

Last updated at Posted at 2017-03-29

iOS向け動画ページの動作確認の必要にせまられて作って作りました。
本番環境で使うならAWSのElastic transcoderが安くていい感じだけど、ちょっとしたテストならこれでいいかも・・・

シェルスクリプト

#!/bin/sh
ffmpeg -i $1 -profile:v baseline -level 3.0 -s 1280x780 -start_number 0 -hls_time 10 -hls_list_size 0 -f hls high.m3u8
ffmpeg -i $1 -profile:v baseline -level 3.0 -s 640x360 -start_number 0 -hls_time 10 -hls_list_size 0 -f hls medium.m3u8
ffmpeg -i $1 -profile:v baseline -level 3.0 -s 320x240 -start_number 0 -hls_time 10 -hls_list_size 0 -f hls low.m3u8

echo '#EXTM3U' > index.m3u8
echo '#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1883000,RESOLUTION=1280x720,CODECS="avc1.4d001f"' >> index.m3u8
echo 'high.m3u8' >> index.m3u8
echo '#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1083000,RESOLUTION=640x480,CODECS="avc1.4d001f"' >> index.m3u8
echo 'medium.m3u8' >> index.m3u8
echo '#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=458000,RESOLUTION=320x240,CODECS="avc1.42001f"' >> index.m3u8
echo 'low.m3u8' >> index.m3u8

使い方

上記のスクリプトを適当な名前で保存します。例えばconv.shとか
それで引数に変換したい動画を指定すればオーケー

$ conv.sh input.mp4

そうするとhigh、medium、lowの動画が出来上がる。
シミュレータにてiOS10.2で動作することは確認済みです。

9
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
7