06/08/31 04:26.49 無敵看板娘_07_060818.mpeg
===MENCODER_PASS1===
08/31 04:26.49
/usr/local/bin/mencoder /Users/USERNAME/Movies/無敵看板娘_07_060818.mpeg -nosound -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:\
pass=1:turbo=1 \
-passlogfile /Users/USERNAME/Movies/無敵看板娘_07_060818.264.log \
-vf pullup,softskip,pp=l5,crop=720:480:0:0,scale=640:480:::4,hqdn3d=4:3:6,harddup \
-sws 9 -ofps 24000/1001 -of rawvideo -o /dev/null
x264 [info]: using SAR=1/1
x264 [info]: using cpu capabilities Altivec
x264 [info]: slice I:431 Avg QP:21.50 size: 29156 PSNR Mean Y:44.33 U:48.73 V:49.89 Avg:45.39 Global:44.89
x264 [info]: slice P:15580 Avg QP:23.42 size: 9033 PSNR Mean Y:42.33 U:46.72 V:48.11 Avg:43.43 Global:42.93
x264 [info]: slice B:19937 Avg QP:24.91 size: 2006 PSNR Mean Y:41.93 U:46.50 V:47.97 Avg:43.07 Global:42.71
x264 [info]: mb I I16..4: 41.6% 0.0% 58.4%
x264 [info]: mb P I16..4: 19.0% 0.0% 6.6% P16..4: 48.8% 9.0% 2.4% 0.0% 0.0% skip:14.3%
x264 [info]: mb B I16..4: 0.7% 0.0% 0.5% B16..8: 14.9% 0.0% 0.0% direct: 9.5% skip:74.5%
x264 [info]: final ratefactor: 21.59
x264 [info]: direct mvs spatial:96.8% temporal:3.2%
x264 [info]: SSIM Mean Y:0.9835922
x264 [info]: PSNR Mean Y:42.131 U:46.626 V:48.056 Avg:43.251 Global:42.826 kb/s:1031.35
Video stream: 1032.369 kbit/s (129046 B/s) size: 193488208 bytes 1499.373 secs 44937 frames
SEC ; 2969
TIME; 0:49.29
===MENCODER_PASS2===Avg QP(p)=22、Global PSNR=44、 数値的にはやや悪い。アニメなら20以下/45は欲しいところだが、他のアニメはぜんぜんその範囲に収まるのでこの素材固有の現象のようだ。実際、動きが 多い。
08/31 05:16.18
/usr/local/bin/mencoder /Users/USERNAME/Movies/無敵看板娘_07_060818.mpeg -nosound -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:\
pass=2:me=3:subq=7:frameref=4:mixed_refs:8x8dct:i8x8:8x8mv:b8x8mv:i4x4:4x4mv:trellis=2:brdo:bime \
-passlogfile /Users/USERNAME/Movies/無敵看板娘_07_060818.264.log \
-vf pullup,softskip,pp=l5,crop=720:480:0:0,scale=640:480:::4,hqdn3d=4:3:6,harddup \
-sws 9 -ofps 24000/1001 -of rawvideo -o /Users/USERNAME/Movies/無敵看板娘_07_060818.264
x264 [info]: using SAR=1/1
x264 [info]: using cpu capabilities Altivec
x264 [info]: slice I:431 Avg QP:20.37 size: 29233 PSNR Mean Y:45.50 U:49.10 V:50.24 Avg:46.45 Global:45.90
x264 [info]: slice P:15580 Avg QP:22.18 size: 8822 PSNR Mean Y:43.38 U:46.93 V:48.29 Avg:44.35 Global:43.97
x264 [info]: slice B:19937 Avg QP:23.62 size: 2103 PSNR Mean Y:42.91 U:46.76 V:48.21 Avg:43.95 Global:43.65
x264 [info]: mb I I16..4: 7.5% 69.8% 22.7%
x264 [info]: mb P I16..4: 0.8% 6.7% 1.5% P16..4: 52.9% 12.8% 7.4% 0.3% 0.1% skip:17.4%
x264 [info]: mb B I16..4: 0.0% 0.2% 0.1% B16..8: 23.6% 1.4% 3.4% direct: 3.4% skip:67.8%
x264 [info]: 8x8 transform intra:72.6% inter:53.8%
x264 [info]: direct mvs spatial:91.1% temporal:8.9%
x264 [info]: ref P 70.5% 14.5% 10.1% 4.8%
x264 [info]: ref B 73.5% 14.8% 7.2% 4.6%
x264 [info]: SSIM Mean Y:0.9847882
x264 [info]: PSNR Mean Y:43.144 U:46.863 V:48.273 Avg:44.155 Global:43.809 kb/s:1024.32
Video stream: 1025.342 kbit/s (128167 B/s) size: 192171292 bytes 1499.373 secs 44937 frames
SEC ; 7946
TIME; 2:12.26
===FFMPEG_AUDIO===音声は別途ffmpegで。これはffmpegX版。
/usr/local/bin/ffmpeg -i /Users/USERNAME/Movies/無敵看板娘_07_060818.264 -i /Users/USERNAME/Movies/無敵看板娘_07_060818.mpeg -y -vn -f mp4 -acodec aac -ar 48000 -ac 2 -ab 64 -map 1.1:0.0 /Users/USERNAME/Movies/無敵看板娘_07_060818.aac.mp4
===MP4BOX_--mux===これもffmpegX版。
/usr/local/bin/mp4box -fps 23.976025 -add /Users/USERNAME/Movies/無敵看板娘_07_060818.264 -add /Users/USERNAME/Movies/無敵看板娘_07_060818.aac.mp4 -new /Users/USERNAME/Movies/無敵看板娘_07_060818.mp4
===MP4BOX_--info===映像と音声の持続時間が0.11sec異なる。1/23.976025=0.04170833155なので、トータルで2.6フレーム程度のズレがあ る。原因は、冒頭に挿入されるDelay frameの存在と思われる(AVI出力を想 定しているMEncoderにはそもそもtimestampの概念が無い。リンク先同様の手法でBフレームに対応していると思われる)。bframes=2だ し。
/usr/local/bin/mp4box -info /Users/USERNAME/Movies/無敵看板娘_07_060818.mp4
* Movie Info *
Timescale 600 - Duration 00:24:59.330
Fragmented File no - 2 track(s)
File Brand isom - version 1
File has root IOD
Scene PL 0xff - Graphics PL 0xff - OD PL 0xff
Visual PL: AVC/H264 Profile (0x15)
Audio PL: AAC Profile @ Level 2 (0x29)
No streams included in root OD
Track # 1 Info - TrackID 1 - TimeScale 24000 - Duration 00:24:59.331
Media Info: Language "und" - Type "vide" - Sub Type "avc1" - 35948 samples
MPEG-4 Config: Visual Stream - ObjectTypeIndication 0x21
AVC/H264 Video - Visual Size 640 x 480
Self-synchronized
Track # 2 Info - TrackID 2 - TimeScale 48000 - Duration 00:24:59.221
Media Info: Language "und" - Type "soun" - Sub Type "mp4a" - 70276 samples
MPEG-4 Config: Audio Stream - ObjectTypeIndication 0x40
MPEG-4 Audio AAC LC - 2 Channel(s) - SampleRate 48000
Synchronized on stream 1
#!/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 リターン