This project is closed and read-only.
Linux Tvheadend transcoding + comskip
Added by Latuxette Tuux over 12 years ago
Hello every one,
I share with you my script for transcoding records from Tvheadend + searching commercial, then read it with XBMC.
For Debian user by exemple:
after have add Deb-Mutimedia repository apt source.list : see how http://www.deb-multimedia.org
apt-get update && apt-get upgrade
apt-get install deb-multimedia-keyring
apt-get update
apt-get install libargtable2-dev libavformat-dev libavcodec-dev checkinstall
apt-get install --reinstall libavcodec53 libavcodec-dev
You found comskip pour Linux here
http://forum.xbmc.org/showthread.php?tid=150084
Note: remenber to use checkinstall make install for creat a .deb of comskip ;)
I hop it will help, norlmaly i'll keep it script update
Regards
---
Tuxa
#! /bin/bash
#Write by Tuxa <tuxa galaxie.eu.org>
# It script it publish on GNU GENERAL PUBLIC LICENSE
#http://www.gnu.org/licenses/gpl-3.0.en.html
SCRIPTNAME="tvh-transcoder.sh"
DATE=`date "+%m/%d/%y %l:%M:%S %p"`
DATELOG=`date +%Y%m%d%H%M%S`
WORKINGDIR="/media/MEDIA/Video/Trancode"
FINALDIR="/media/MEDIA/Video/Enregistrements"
LOGFILE="$WORKINGDIR/logs/$DATELOG-$SCRIPTNAME.log"
HANDBRAKECLIPATH=`which HandBrakeCLI`
COMSKIPPATH=`which comskip`
function convert_to_mkv() {
if [ -f "$1" ]
then
echo "$(date +"%m/%d/%y %l:%M:%S %p"): Start trancoding $1" >> $LOGFILE
nice -n 19 $HANDBRAKECLIPATH -i "$1" -t 1 -c 1 -o "$2.mkv" -f mkv -e x264 --x264-tune film -b 1200 -2 -a 1 -E faac -B 160 -R 0 -6 dpl2 -D 1 -C 2 && \
echo "$(date +"%m/%d/%y %l:%M:%S %p"): Finished without error" >> $LOGFILE
fi
}
function search_commercials_from_mkv() {
if [ -f "$1" ]
then
echo "$(date +"%m/%d/%y %l:%M:%S %p"): Searching commercials on $1" >> $LOGFILE
nice -n 19 $COMSKIPPATH -q "$1" >> $LOGFILE && \
echo "$(date +"%m/%d/%y %l:%M:%S %p"): Finished without error" >> $LOGFILE
fi
}
function search_commercials_from_ts() {
if [ -f "$1" ]
then
echo "$(date +"%m/%d/%y %l:%M:%S %p"): Searching commercials on $1" >> $LOGFILE
nice -n 19 $COMSKIPPATH -t -q "$1" >> $LOGFILE && \
echo "$(date +"%m/%d/%y %l:%M:%S %p"): Finished without error" >> $LOGFILE
fi
}
function clean_directory() {
echo "$(date +"%m/%d/%y %l:%M:%S %p"): Cleaning files of $1" >> $LOGFILE
if [ -f "$2.mkv" ]
then
echo "$(date +"%m/%d/%y %l:%M:%S %p"): Move $2.mkv to $FINALDIR" >> $LOGFILE
mv "$2.mkv" $FINALDIR
fi
if [ -f "$2.txt" ]
then
echo "$(date +"%m/%d/%y %l:%M:%S %p"): Move $2.txt to $FINALDIR" >> $LOGFILE
mv "$2.txt" $FINALDIR
fi
if [ -f "$2.log" ]
then
echo "$(date +"%m/%d/%y %l:%M:%S %p"): Move $2.log to $WORKINGDIR/logs/$DATELOG-$2.log" >> $LOGFILE
mv "$2.log" "$WORKINGDIR/logs/$DATELOG-$2.log"
fi
}
echo "--------------------------------------------------------------------------------------------------------" >> $LOGFILE
echo "$SCRIPTNAME started on $DATE" >> $LOGFILE
echo "--------------------------------------------------------------------------------------------------------" >> $LOGFILE
cd $WORKINGDIR
for FILE in $WORKINGDIR/*.*
do
if [[ $FILE == *.ts ]]; then
FILESHORT="`basename "$FILE" .ts`"
convert_to_mkv "$FILE" "$FILESHORT"
search_commercials_from_mkv "$FILESHORT.mkv"
clean_directory "$FILE" "$FILESHORT"
echo "$(date +"%m/%d/%y %l:%M:%S %p"): Delete source file $FILE" >> $LOGFILE
#rm $FILE
#mv "$FILE" $WORKINGDIR/Trash/
echo "--------------------------------------------------------------------------------------------------------" >> $LOGFILE
fi
if [[ $FILE == *.mkv ]]; then
FILESHORT="`basename "$FILE" .mkv`"
search_commercials_from_mkv "$FILE"
clean_directory "$FILE" "$FILESHORT"
echo "--------------------------------------------------------------------------------------------------------" >> $LOGFILE
fi
if [[ $FILE == *.avi ]]; then
FILESHORT="`basename "$FILE" .avi`"
convert_to_mkv "$FILE" "$FILESHORT"
search_commercials_from_mkv "$FILESHORT.mkv"
clean_directory "$FILE" "$FILESHORT"
echo "$(date +"%m/%d/%y %l:%M:%S %p"): Delete source file $FILE" >> $LOGFILE
#rm $FILE
#mv $FILE $WORKINGDIR/Trash/
echo "--------------------------------------------------------------------------------------------------------" >> $LOGFILE
fi
done
DATE=`date "+%m/%d/%y %l:%M:%S %p"`
echo "$SCRIPTNAME finish at $DATE" >> $LOGFILE
echo "--------------------------------------------------------------------------------------------------------" >> $LOGFILE
Replies (1)
RE: Linux Tvheadend transcoding + comskip
-
Added by saen acro about 11 years ago
Is your code can be connected to this
https://github.com/Helly1206/comskipper
and in near feature to be integrated in tvheadend
aka
live stream split to time shift and comskip
analysed stream status to set DVR PAUSE to file write
and commercial not to be written to file