#!/bin/tcsh -f # Default settings for this script. Use settings.csh file to override. # set existing audio codec to recompress to ogg or no for don't do it set TranscodeAudio="no" set Params="" set AudioQuality="tv" cd "$1" set Container=`echo *.avi *.mkv *.mp4 *.m4v *.flv *.wmv *.mov | awk -F. '{print $NF}'` set FN=`basename *.$Container .$Container` # If the file is an flv file mkvmerge can't handle the muxxed audio (usually AAC) so it must be transcoded into an ogg. if ($Container == "flv") then set TranscodeAudio="yes" endif if ($Container == "wmv") then set TranscodeAudio="yes" endif # add these to settings.csh in each dir: if (-e settings.csh) source settings.csh # actual video encode if ($?Crop) then mencoder "${FN}.$Container" $Params -nosub -oac pcm -sws 9 -vf $Crop,softskip,harddup -ovc x264 -x264encopts crf=22:threads=auto -of avi -o "${FN}.q.avi" || exec echo "Error encoding video." else mencoder "${FN}.$Container" $Params -nosub -oac pcm -sws 9 -vf softskip,harddup -ovc x264 -x264encopts crf=22:threads=auto -of avi -o "${FN}.q.avi" || exec echo "Error encoding video." endif # check for index files placed in dir manually to be muxxed later if (-e eng.idx) then set IDX="eng.idx" else set IDX="" endif set NFN="${FN}.q.mkv" if ($TranscodeAudio != "no") then if ($TranscodeAudio == "ogg") then # We have an existing file with an ogg track which we are going to keep as is. (This rarely happens) mkvextract tracks "${FN}.$Container" 2:"eng.ogg" else # We want to transcode the audio to ogg. Because the temporary video file already has a pcm decode of the original audio we will just use that. ionice -c3 mplayer -af format=s16le -ao pcm:fast:waveheader:file=eng.wav -novideo "${FN}.q.avi" tcode ogg $AudioQuality eng.wav endif if ($Container == "flv") then ionice -c3 mkvmerge -o "$NFN" -A "${FN}.q.avi" --language 0:en eng.ogg $IDX else if ($Container == "wmv") then ionice -c3 mkvmerge -o "$NFN" -A "${FN}.q.avi" --language 0:en eng.ogg $IDX else ionice -c3 mkvmerge -o "$NFN" -A "${FN}.q.avi" --language 0:en eng.ogg -D -A "${FN}.$Container" $IDX endif else ionice -c3 mkvmerge -o "$NFN" -A "${FN}.q.avi" -D "${FN}.$Container" $IDX endif mv -v "$NFN" .. cd ..