if [ "$#" -ne 2 ]; then echo "usage tvshow2mkv.sh [path to vdr recording] [path to tvshows]"; exit 1; fi if [ ! -d "$1" ]; then echo "vdr recording directory not valid: $1"; exit 1; fi if [ ! -d "$2" ]; then echo "movie directory not valid: $2"; exit 1; fi echo "vdr recordings directory: $1"; echo "movie directory: $2"; cd "$1"; echo `pwd` for j in *.rec; do cd $j; SHOWNAME=$(sed -n -e 's/^T \(.*\)$/\1/p' info); EPISODE=$(sed -n -e 's/^S \(.*\)$/\1/p' info); echo "Converting $SHOWNAME - $EPISODE"; OUTPUT_PATH="$2/$SHOWNAME"; OUTPUT_MKV_NAME="$EPISODE.mkv"; OUTPUT_MPG_NAME="$EPISODE.mpg"; if [ ! -d "$OUTPUT_PATH" ]; then echo "creating output path $OUTPUT_PATH"; mkdir "$OUTPUT_PATH"; fi if [ -f "$OUTPUT_PATH/$OUTPUT_MKV_NAME" ]; then echo "Episode $EPISODE already decoded"; continue; elif [ ! -f "$OUTPUT_PATH/$OUTPUT_MPG_NAME" ]; then BASENAME=00001; echo "projectx -demux 00001.ts -name 00001 -cut marks.bytepos" projectx -demux 00001.ts -name 00001 -cut marks.bytepos if [ -f "$BASENAME.ac3" ]; then echo "mplex -f 8 -o \"$OUTPUT_PATH/$EPISODE.mpg\" $BASENAME.ac3 $BASENAME.mp2 $BASENAME.m2v"; mplex -f 8 -o "$OUTPUT_PATH/$EPISODE.mpg" $BASENAME.ac3 $BASENAME.mp2 $BASENAME.m2v; else echo "mplex -f 8 -o \"$OUTPUT_PATH/$EPISODE.mpg\" $BASENAME.mp2 $BASENAME.m2v"; mplex -f 8 -o "$OUTPUT_PATH/$EPISODE.mpg" $BASENAME.mp2 $BASENAME.m2v; fi fi echo "converting to mkv"; ffmpeg -i "$OUTPUT_PATH/$OUTPUT_MPG_NAME" -c:v libx264 -c:a aac "$OUTPUT_PATH/$OUTPUT_MKV_NAME" cd ..; done;