MediaConversionTools/ts2mpg.sh

74 lines
2.1 KiB
Bash

#!/bin/bash
if [ "$#" -ne 2 ]; then
echo "usage ts2mp4.sh [path to vdr recordings] [path to movies]";
exit 1;
fi
if [ ! -d $1 ]; then
echo "vdr recordings 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";
echo "changing into vdr recordings directory '$1'";
cd $1;
echo `pwd`
FILE_LIST="$1/tompg.lst"
while IFS= read -r LINE
do
echo "processing '$LINE'";
cd "$LINE";
for j in *.rec; do
cd $j;
BASENAME=00001;
INFO_FILE=info
if [ -f 001.vdr ]; then
BASENAME=001;
INFO_FILE=info.vdr
fi
MOVIENAME=$(sed -n -e 's/^T \(.*\)$/\1/p' $INFO_FILE);
if [ ! -f "$2/$MOVIENAME/$MOVIENAME.mkv" ]; then
echo `pwd`
echo "BN $BASENAME"
echo "demuxing $MOVIENAME"
if [ $BASENAME == "001" ]; then
FILENAMES=$(ls 00*.vdr | paste -sd " " -);
else
FILENAMES=$(ls *.ts | paste -sd " " -);
fi
projectx -demux $FILENAMES -name $BASENAME -cut marks.bytepos
echo "converting $MOVIENAME";
if [ ! -d "$2/$MOVIENAME" ]; then
mkdir "$2/$MOVIENAME";
fi
if [ -f "$BASENAME.ac3" ]; then
echo "mplex -f 8 -o \"$MOVIENAME.mpg\" $BASENAME.ac3 $BASENAME.mp2 $BASENAME.m2v";
mplex -f 8 -o "$MOVIENAME.mpg" $BASENAME.ac3 $BASENAME.mp2 $BASENAME.m2v;
else
echo "mplex -f 8 -o \"$MOVIENAME.mpg\" $BASENAME.mp2 $BASENAME.m2v";
mplex -f 8 -o "$MOVIENAME.mpg" $BASENAME.mp2 $BASENAME.m2v;
fi
echo "ffmpeg -nostdin -i \"$MOVIENAME.mpg\" -c:v libx264 -c:a aac \"$2/$MOVIENAME/$MOVIENAME.mkv\"";
ffmpeg -nostdin -i "$MOVIENAME.mpg" -c:v libx264 -c:a aac "$2/$MOVIENAME/$MOVIENAME.mkv";
else
echo "video file $MOVIENAME.mkv already exists; skipping";
fi
cd ..;
done;
cd ..;
done < "$FILE_LIST"