シェルスクリプトを書いた。
注意
使っていたffmpegのバージョンが少し古かった。最新版ではできない可能性もある。
ffmpeg version 2.8.4 Copyright (c) 2000-2015 the FFmpeg developers built with gcc 5.2.0 (GCC)
スクリプト
ファイルの名前は適当でいいが、例えば convert_m3u8_to_mp4.sh として保存
echo "filename: $1" echo -n "input quality (default:20) => " read QUALITY ffmpeg -i $1 -bsf:a aac_adtstoasc -vcodec copy -c copy -crf ${QUALITY:=20} ${1%.*}".mp4"
実行例
sh convert_m3u8_to_mp4.sh test.m3u8
と引数に変換したいm3u8ファイルを指定。
input quality (default:20) =>
と聞かれるので、動画の品質を指定。
crf値と品質の関係は以下のようなサイトを参考に。
x264のcrf値はどれくらいが適切なのか? | もにっき
http://www.kurobuti.com/blog/?p=2131
うまく最後まで実行されればm3u8ファイルと同じ名前のmp4ファイルができるはず。
(つまり実行例の例で言うとtest.mp4)
ffmpegを使って動画のトリミング
ffmpeg -ss 00:00:30.0 -i input.wmv -c copy -t 00:00:10.0 output.wmv
- -ssで開始時点を指定
終了タイミングを指定するのは、動画の長さを指定するか終了時点を指定する二つの方法がある。
- -tでトリミングする動画の時間長さを指定
- -toで終了時点を指定