#!/bin/bash
# Automatically generated by h264enc
# edited by sswam <sam@nipl.net> so I can run it for various files
#
# crops, scales, converts to x264 in mkv
# this one is for anime / cartoons

WORKDIR="$HOME"
JOB="job$$"
TMPDIR="$WORKDIR/.h264enc/$JOB"

IN="$1"
NAME="${IN%.???}"
TMPAVI="$TMPDIR/tmp.avi"
OUT="${2:-$NAME.pnd.x264.mkv}"

FILTER=scale=-2:480:0,crop=800:480
VIDEO_BITRATE=1000
AUDIO_BITRATE=110

SLEEP=0

mkdir -p "$TMPDIR"

nice -n 10 /usr/local/bin/mencoder "$IN" -o /dev/null -passlogfile "$TMPDIR/pass.log" -nosub -vf softskip,$FILTER,harddup -sws 10 -oac pcm -ovc x264 -x264encopts pass=1:turbo=2:bitrate=$VIDEO_BITRATE:nointerlaced:force_cfr:frameref=8:mixed_refs:bframes=5:b_adapt=2:b_pyramid=normal:noweight_b:weightp=1:direct_pred=auto:aq_mode=2:aq_strength=0.5:me=hex:subq=10:nombtree:psy_rd=0.3,0.0:chroma_me:trellis=1:cabac:deblock:8x8dct:partitions=p8x8,b8x8,i8x8,i4x4:nofast_pskip:nodct_decimate:threads=auto:keyint=240:keyint_min=24

nice -n 10 /usr/local/bin/mencoder "$IN" -o "$TMPAVI" -passlogfile "$TMPDIR/pass.log" -nosub -vf softskip,$FILTER,harddup -sws 10 -oac pcm -ovc x264 -x264encopts pass=2:bitrate=$VIDEO_BITRATE:nointerlaced:force_cfr:frameref=8:mixed_refs:bframes=5:b_adapt=2:b_pyramid=normal:noweight_b:weightp=1:direct_pred=auto:aq_mode=2:aq_strength=0.5:me=hex:subq=10:nombtree:psy_rd=0.3,0.0:chroma_me:trellis=1:cabac:deblock:8x8dct:partitions=p8x8,b8x8,i8x8,i4x4:nofast_pskip:nodct_decimate:threads=auto:keyint=240:keyint_min=24




sleep $SLEEP

test -p "$TMPDIR/audio.wav" || mkfifo "$TMPDIR/audio.wav"
/usr/bin/faac --mpeg-vers 4 -b $AUDIO_BITRATE   "$TMPDIR/audio.wav" -o "$TMPDIR/audio.aac" &
/usr/local/bin/mplayer "$IN" -noconfig all -loop 1 -really-quiet -vc dummy -vo null -nocache  -ao pcm:fast:file="$TMPDIR/audio.wav"

sleep $SLEEP

echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<!DOCTYPE Tags SYSTEM \"matroskatags.dtd\">

<Tags>
  <Tag>
    <Simple>
      <Name>Source</Name>
      <String>Video file</String>
    </Simple>
    <Simple>
      <Name>Title</Name>
      <String>$NAME</String>
    </Simple>
    <Simple>
      <Name>Video Filters</Name>
      <String>softskip,$FILTER,harddup</String>
    </Simple>
    <Simple>
      <Name>Audio Codec (Track 1)</Name>
      <String>LC-AAC Stereo</String>
    </Simple>
    <Simple>
      <Name>Encoder</Name>
      <String>MEncoder SVN-r35056-4.6 (C) 2000-2012 MPlayer Team</String>
    </Simple>
    <Simple>
      <Name>x264 parameters</Name>
      <String>pass=2:bitrate=$VIDEO_BITRATE:nointerlaced:force_cfr:frameref=8:mixed_refs:bframes=5:b_adapt=2:b_pyramid=normal:noweight_b:weightp=1:direct_pred=auto:aq_mode=2:aq_strength=0.5:me=hex:subq=10:nombtree:psy_rd=0.3,0.0:chroma_me:trellis=1:cabac:deblock:8x8dct:partitions=p8x8,b8x8,i8x8,i4x4:nofast_pskip:nodct_decimate:threads=auto:keyint=240:keyint_min=24</String>
    </Simple>
    <Simple>
      <Name>x264 version</Name>
      <String>0.125.2208</String>
    </Simple>
    <Simple>
      <Name>mkvmerge version</Name>
      <String>5.1.0</String>
    </Simple>
    <Simple>
      <Name>h264enc parameters</Name>
      <String>h264enc -2p -p ani</String>
    </Simple>
    <Simple>
      <Name>Comment</Name>
      <String>Tagged by h264enc 9.4.6 on 2012/08/01</String>
    </Simple>
  </Tag>
</Tags>" > "$TMPDIR/mkvtags.xml"
test -e "$OUT" && mv -f "$OUT" "$OUT.old"
/usr/bin/mkvmerge  --global-tags "$TMPDIR/mkvtags.xml" -A --title "$NAME" --track-name 0:"$NAME" "$TMPAVI" --track-name 0:"LC-AAC Stereo"  "$TMPDIR/audio.aac"     -o "$OUT"

sleep $SLEEP

rm -rf "$TMPDIR"

