Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- glc2webm()
- {
- local glcFile
- local glcBase
- local out
- local fpsRate
- local bitrate
- local maxsize
- local sizearg
- if [[ "$1" == "" ]]
- then
- echo "error: $0: no glc file specified" >&2
- return 127
- fi
- if [[ "$2" == "" ]]
- then
- fpsRate=30
- else
- fpsRate=$2
- fi
- if [[ "$3" == "" ]]
- then
- bitrate="1024k"
- else
- bitrate="${3}k"
- fi
- if [[ "$4" == "" ]]
- then
- sizearg=""
- maxsize="any"
- else
- sizearg=("-fs" "${4}")
- maxsize="$4"
- fi
- glcFile="$1"
- glcBase="$(basename $glcFile)"
- glcBase="${1/.*/}"
- out="$glcBase.webm"
- if [ -e "$out" ]
- then
- if [ -f "$out" ]
- then
- echo "warning: $out existed beforehand, moved to $out.old" >&2
- mv $out $out.old
- else
- echo "error: $out exists and is not a regular file, skipping" >&2
- continue
- fi
- fi
- echo "Encoding ${glcFile} at FPS of ${fpsRate} at ${bitrate}, max size $maxsize"
- echo "Dumping to MP4..."
- (glc-play $glcFile -o - -y 1 -g "0.02;0;1.35;1.35;1.35" | ffmpeg -i - -y -loglevel warning video-$glcBase.mp4)
- local error=$?
- if [[ $error != 0 ]]
- then
- echo "Error on dumping, aborting"
- return $error
- fi
- echo "Pass 1..."
- ffmpeg -i video-$glcBase.mp4 -codec:v libvpx -b:v $bitrate -r $fpsRate $sizearg -c 4 -quality best -bufsize 2048k -an -threads 3 -pass 1 -f webm -loglevel warning - >/dev/null
- local error=$?
- if [[ $error != 0 ]]
- then
- echo "Error on pass 1, aborting"
- return $error
- fi
- echo "Pass 2..."
- ffmpeg -i video-$glcBase.mp4 -codec:v libvpx -b:v $bitrate -r $fpsRate $sizearg -c 4 -quality best -bufsize 2048k -an -threads 3 -pass 2 -f webm -loglevel warning $out
- local error=$?
- if [[ $error != 0 ]]
- then
- echo "Error on pass 2, aborting"
- return $error
- fi
- rm video-$glcBase.mp4
- echo "dun, look at $out (size $(du -h ${out} | cut -f1))"
- }
Advertisement
Add Comment
Please, Sign In to add comment