#!/bin/bash
# Version 060917 charset="UTF-8",LF
#変数指定
##変数_ツールパス、出力拡張子指定
MENCODER=/usr/local/bin/mencoder
FFMPEG=/usr/local/bin/ffmpeg
MP4BOX=/usr/local/bin/mp4box
MUXMOVIE=/usr/local/bin/muxmovie
EXT=mp4
##変数_MEncoder Options --Video
EXTME=264
OPTSME_A="-nosound"
OPTSME_V="-ovc x264 -x264encopts threads=2:cabac:bitrate=1024:keyint=240:keyint_min=1:scenecut=55:bframes=2:b_adapt:weight_b:nob_pyramid:qp_min=10:qp_max=51:qp_step=4:qcomp=0.6:ratetol=4:deblock:deblockalpha=0:deblockbeta=0:cqm=jvt:nofast_pskip:direct_pred=3:psnr"
#:nodct_decimate
OPTSME_VP1=":pass=1:turbo=1"
OPTSME_VP2=":pass=2:me=3:subq=7:frameref=4:mixed_refs:8x8dct:i8x8:8x8mv:b8x8mv:i4x4:4x4mv:trellis=2:brdo:bime"
OPTSME_VF="-vf pullup,softskip,pp=l5,crop=720:480:0:0,scale=640:480:::4,hqdn3d=4:3:6,harddup"
OPTSME_OTHER2="-sws 9 -ofps 24000/1001 -of rawvideo"
##変数_ffmpeg Options --Audio
EXTFF=aac.mp4
OPTSFF="-y -vn -f mp4 -acodec aac -ar 48000 -ac 2 -ab 64 -map 1.1:0.0"
##変数_mp4box Options --mux
OPTSMP4BOX="-fps 23.976025"
##変数_muxmovie Options --Cutting Delay Frame
EXTMX=mov
OPTSMX="-startAt 00:00:00.05"
#for loop
for f in "$@"
do
foME="${f%.*}.${EXTME}"
foTEXT="${f%.*}.txt"
foTEXTLOG="${f%.*}.txt.log"
echo `date +%y/%m/%d" "%H:%M.%S` ${f##/*/} | tee ${foTEXT}
## MENCODER_PASS1
echo "===MENCODER_PASS1===" | tee -a ${foTEXT}
START_SEC=`date +%s`;echo `date +%m/%d" "%H:%M.%S` | tee -a ${foTEXT}
echo ${MENCODER} ${f} ${OPTSME_A} ${OPTSME_V}${OPTSME_VP1} -passlogfile ${foME}.log ${OPTSME_VF} ${OPTSME_OTHER2} -o /dev/null | tee -a ${foTEXT}
${MENCODER} ${f} ${OPTSME_A} ${OPTSME_V}${OPTSME_VP1} -passlogfile ${foME}.log ${OPTSME_VF} ${OPTSME_OTHER2} -o /dev/null >& ${foTEXTLOG}
### JIkan Keisan
echo " " | tee -a ${foTEXT};grep x264 ${foTEXTLOG} | tee -a ${foTEXT};echo " " | tee -a ${foTEXT};grep stream ${foTEXTLOG} | tee -a ${foTEXT};END_SEC=`date +%s`;TOTAL_SEC=`expr $END_SEC - $START_SEC`;HRS=`expr ${TOTAL_SEC} / 3600`;MIN=`expr ${TOTAL_SEC} % 3600 / 60`;SEC=`expr ${TOTAL_SEC} % 60`;TOTAL_TIME=${HRS}:${MIN}.${SEC};echo "SEC ; ${TOTAL_SEC}" | tee -a ${foTEXT};echo "TIME; ${TOTAL_TIME}" | tee -a ${foTEXT};echo " " | tee -a ${foTEXT}
## MENCODER_PASS2
echo "===MENCODER_PASS2===" | tee -a ${foTEXT}
START_SEC=`date +%s`;echo `date +%m/%d" "%H:%M.%S` | tee -a ${foTEXT}
echo ${MENCODER} ${f} ${OPTSME_A} ${OPTSME_V}${OPTSME_VP2} -passlogfile ${foME}.log ${OPTSME_VF} ${OPTSME_OTHER2} -o ${foME} | tee -a ${foTEXT}
${MENCODER} ${f} ${OPTSME_A} ${OPTSME_V}${OPTSME_VP2} -passlogfile ${foME}.log ${OPTSME_VF} ${OPTSME_OTHER2} -o ${foME} >& ${foTEXTLOG}
### JIkan Keisan
echo " " | tee -a ${foTEXT};grep x264 ${foTEXTLOG} | tee -a ${foTEXT};echo " " | tee -a ${foTEXT};grep stream ${foTEXTLOG} | tee -a ${foTEXT};END_SEC=`date +%s`;TOTAL_SEC=`expr $END_SEC - $START_SEC`;HRS=`expr ${TOTAL_SEC} / 3600`;MIN=`expr ${TOTAL_SEC} % 3600 / 60`;SEC=`expr ${TOTAL_SEC} % 60`;TOTAL_TIME=${HRS}:${MIN}.${SEC};echo "SEC ; ${TOTAL_SEC}" | tee -a ${foTEXT};echo "TIME; ${TOTAL_TIME}" | tee -a ${foTEXT};echo " " | tee -a ${foTEXT}
## FFMPEG_AUDIO
echo "===FFMPEG_AUDIO===" | tee -a ${foTEXT}
foFF="${f%.*}.${EXTFF}"
echo ${FFMPEG} -i ${foME} -i ${f} ${OPTSFF} ${foFF} | tee -a ${foTEXT}
${FFMPEG} -i ${foME} -i ${f} ${OPTSFF} ${foFF}
## MP4BOX_--mux
echo "===MP4BOX_--mux===" | tee -a ${foTEXT}
echo ${MP4BOX} ${OPTSMP4BOX} -add ${foME} -add ${foFF} -new ${f%.*}.${EXT} | tee -a ${foTEXT}
${MP4BOX} ${OPTSMP4BOX} -add ${foME} -add ${foFF} -new ${f%.*}.${EXT}
## MP4BOX_--info
echo "===MP4BOX_--info===" | tee -a ${foTEXT}
echo ${MP4BOX} -info ${f%.*}.${EXT} | tee -a ${foTEXT}
${MP4BOX} -info ${f%.*}.${EXT} | tee -a ${foTEXT}
## muxmomvie -- Cut Delay frame
#echo "===muxmomvie -- Cut Delay frame ===" | tee -a ${foTEXT}
#echo ${MUXMOVIE} ${OPTSMX} ${f%.*}.${EXT} -o ${f%.*}.${EXTMX} | tee -a ${foTEXT}
#${MUXMOVIE} ${OPTSMX} ${f%.*}.${EXT} -o ${f%.*}.${EXTMX} 2>> ${foTEXT}
## 中間生成物削除
rm ${foME}
rm ${foME}.log
rm ${foFF}
rm ${foTEXTLOG}
done
$ chmod a+x VGA243)ターミナルでVGA24、続いて素材ファイルをD&D。複数処理可。リターンで開始。例えば"VGA24"がデスクトップにある場合、
$ /Users/ユーザ名/Desktop/VGA24 ここにXXX.mpegをD&D リターン