Dateien nach "/" hochladen
This commit is contained in:
commit
c58aa04ea5
|
|
@ -0,0 +1,60 @@
|
|||
if [ "$#" -ne 2 ]; then
|
||||
echo "usage episodes2mkv.sh [path to vdr recording] [path to movies]";
|
||||
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";
|
||||
|
||||
echo `pwd`
|
||||
|
||||
readarray -t LINES < "$1/episodes.lst"
|
||||
|
||||
echo "lines ${#LINES[@]}";
|
||||
|
||||
FILE_LIST="$1/episodes.lst"
|
||||
for LINE in "${LINES[@]}"; do
|
||||
#while IFS= read -r LINE
|
||||
#do
|
||||
echo "processing '$LINE'";
|
||||
cd "$1/$LINE";
|
||||
MOVIENAME=$(sed -n -e 's/^T \(.*\)$/\1/p' info);
|
||||
EPISODE=$(sed -n -e 's/^S \(.*\)$/\1/p' info);
|
||||
BASE_PATH="$2/$MOVIENAME/$EPISODE"
|
||||
DEST_NAME="$2/$MOVIENAME/$EPISODE.mkv"
|
||||
TRIMMED_NAME="$MOVIENAME.trimmed.ts"
|
||||
if [ ! -f "$DEST_NAME" ]; then
|
||||
echo "converting $MOVIENAME - $EPISODE";
|
||||
STAMPS=($(sed -n -e 's/^\([0-9:]\+.[0-9]\{2\}\).*$/\1/p' marks))
|
||||
if [ "${#STAMPS[@]}" -ne "2" ]; then
|
||||
echo "more than two cut marks found; skipping";
|
||||
echo "${#STAMPS[@]}";
|
||||
exit 1;
|
||||
fi;
|
||||
echo ${STAMPS[0]}
|
||||
echo ${STAMPS[1]}
|
||||
FILENAMES=$(ls *.ts | paste -sd "|" -);
|
||||
# if [ ! -d "$2/$MOVIENAME" ]; then
|
||||
# echo mkdir "$2/$MOVIENAME";
|
||||
# fi
|
||||
if [ ! -f "$TRIMMED_NAME" ]; then
|
||||
echo ffmpeg -i "concat:$FILENAMES" -ss ${STAMPS[0]} -to ${STAMPS[1]} -c:v copy -c:a copy "$TRIMMED_NAME";
|
||||
ffmpeg -nostdin -i "concat:$FILENAMES" -ss ${STAMPS[0]} -to ${STAMPS[1]} -c:v copy -c:a copy "$TRIMMED_NAME";
|
||||
fi
|
||||
echo ffmpeg -i "$TRIMMED_NAME" -c:v libx264 -c:a copy "'$EPISODE.mkv'";
|
||||
ffmpeg -nostdin -i "$TRIMMED_NAME" -c:v libx264 -c:a copy "$EPISODE.mkv";
|
||||
else
|
||||
echo "video file $DEST_NAME already exists; skipping";
|
||||
fi
|
||||
cd -;
|
||||
done < "$FILE_LIST"
|
||||
|
|
@ -0,0 +1,64 @@
|
|||
#!/bin/bash
|
||||
|
||||
if [ "$#" -ne 2 ]; then
|
||||
echo "usage ts2mkv.sh [path to vdr recording] [path to movies]";
|
||||
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";
|
||||
|
||||
echo "changing into vdr recordings directory '$1'";
|
||||
cd $1;
|
||||
|
||||
echo `pwd`
|
||||
|
||||
FILE_LIST="$1/tomkv.lst"
|
||||
while IFS= read -r LINE
|
||||
do
|
||||
echo "processing directory '$LINE'";
|
||||
cd "$LINE";
|
||||
for j in *.rec; do
|
||||
cd $j;
|
||||
MOVIENAME=$(sed -n -e 's/^T \(.*\)$/\1/p' "info");
|
||||
DEST_NAME="$2/$MOVIENAME/$MOVIENAME.mkv"
|
||||
TRIMMED_NAME="$MOVIENAME.trimmed.ts"
|
||||
if [ ! -f "$DEST_NAME" ]; then
|
||||
echo "converting $MOVIENAME";
|
||||
STAMPS=($(sed -n -e 's/^\([0-9:]\+.[0-9]\{2\}\).*$/\1/p' "marks"))
|
||||
if [ "${#STAMPS[@]}" -ne "2" ]; then
|
||||
echo "more than two cut marks found; skipping";
|
||||
echo "${#STAMPS[@]}";
|
||||
cd ..;
|
||||
continue;
|
||||
fi;
|
||||
echo "trimming form ${STAMPS[0]} to ${STAMPS[1]}";
|
||||
FILENAMES=$(ls *.ts | paste -sd "|" -);
|
||||
if [ ! -f "$TRIMMED_NAME" ]; then
|
||||
echo ffmpeg -nostdin -i "concat:$FILENAMES" -ss ${STAMPS[0]} -to ${STAMPS[1]} -c:v copy -c:a copy "$TRIMMED_NAME";
|
||||
ffmpeg -nostdin -i "concat:$FILENAMES" -ss ${STAMPS[0]} -to ${STAMPS[1]} -c:v copy -c:a copy "$TRIMMED_NAME";
|
||||
fi
|
||||
|
||||
if [ ! -d "$2/$MOVIENAME" ]; then
|
||||
mkdir "$2/$MOVIENAME";
|
||||
fi
|
||||
|
||||
echo ffmpeg -nostdin -i "$TRIMMED_NAME" -c:v libx264 -c:a copy "$DEST_NAME";
|
||||
ffmpeg -nostdin -i "$TRIMMED_NAME" -c:v libx264 -c:a copy "$DEST_NAME";
|
||||
else
|
||||
echo "video file $DEST_NAME already exists; skipping";
|
||||
fi
|
||||
cd ..;
|
||||
done;
|
||||
cd ..;
|
||||
done < "$FILE_LIST"
|
||||
|
|
@ -0,0 +1,73 @@
|
|||
#!/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"
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Check if ffprobe is installed
|
||||
if ! command -v ffprobe >/dev/null 2>&1; then
|
||||
echo "ffprobe is not installed. Please install it to run this script."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check if a filename is provided as an argument
|
||||
if [ $# -ne 1 ]; then
|
||||
echo "Usage: $0 <filename>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
filename=$1
|
||||
|
||||
# Use ffprobe to get the video stream information
|
||||
video_info=$(ffprobe -v quiet -show_streams -select_streams v "$filename")
|
||||
|
||||
# Check if the video_info variable is empty
|
||||
if [ -z "$video_info" ]; then
|
||||
echo "No video stream found in the input file."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Search for the video resolution in the video stream information
|
||||
resolution=$(echo "$video_info" | grep -oP "(?<=^width=)\d+" | head -1)
|
||||
|
||||
# Check if the resolution is greater than or equal to 1280x720
|
||||
if [ "$resolution" -ge 1280 ] && [ "$resolution" -ge 720 ]; then
|
||||
echo "The file contains HD content."
|
||||
else
|
||||
echo "The file does not contain HD content."
|
||||
fi
|
||||
|
|
@ -0,0 +1,62 @@
|
|||
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;
|
||||
Loading…
Reference in New Issue