以前に書いた「OpenGLのアニメーションを動画ファイルにしてみた」でのPPMファイル→JPEG→AVI→MPEGという流れが覚えていられないので、シェルスクリプトにしてみた。
- #! /bin/bash
- MOGRIFY=mogrify ←パスが通っていなければフルパスで記載
- FFMPEG=ffmpeg ←パスが通っていなければフルパスで記載
- IMGDIR=.
- FPS=20
- while getopts "d:f:" OPT; do
- case $OPT in
- \?) ERROR=11; break;;
- d) IMGDIR=$OPTARG;;
- f) FPS=$OPTARG;;
- esac
- done
- shift $(( $OPTIND - 1 ))
- FILENAME=$1
- $MOGRIFY -format jpeg $IMGDIR/*.ppm
- $FFMPEG -r $FPS -i ${IMGDIR}/%d.jpeg -vcodec mjpeg -sameq ${IMGDIR}/${FILENAME}.avi
- $FFMPEG -i ${IMGDIR}/${FILENAME}.avi -b 900 -ab 96 ${IMGDIR}/${FILENAME}.mpeg
- exit 0
-dオプションで画像が置いてあるディレクトリ、-fオプションでフレーム/secが指定できる。出力ファイル名を最後につけて実行する。実行方法は以下のような感じ
$ ./mkmov -d ./img -f 20 outmovie