MediaConversionTools/tvshow2mkv.sh

63 lines
1.7 KiB
Bash

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;