63 lines
1.7 KiB
Bash
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;
|