ich habe ein kleines script geschrieben, welches alle 5 minuten als cronjob läuft, periodisch nach MPEG-TS aufnahmen scanned, die über einen nfs mount von der dbox auf einem linux rechner abgelegt werden und diese automatisch ins mpeg4/divx/xvid format encoded.
Die encoder-einstellungen sind auf meine bedürfnisse (PPC-Format) optimiert und müssten individuell angepasst werden.
Mit dem verwendeten programm mencoder ist die umwandlung in ziemlich alle formate möglich
Voraussetzungen:
Separater Linux Rechner mit NFS mount auf die DBOX2
mencoder zum encoden der files
Cron:
Code: Alles auswählen
*/5 * * * * /path/to/script.sh
Code: Alles auswählen
#!/bin/sh
#
# script for encoding MPEG-TS Videos streamed from the dbox to nfs
#
# Version 0.1
#
#
############## Variables ##############
MENCODER=/usr/bin/mencoder
SCALE=320:240
ABITRATE=96
# NFSPATH HAS TO END WITH /
NFSPATH=/home/nfs/
OUTPUTEXTENSION=.avi
#######################################
# check for mencoder binary
if [ ! -r $MENCODER ]; then
# echo "mencoder not found... exiting!"
exit
fi
# list oldest file and exit if no file exists
FILE=`ls -t $NFSPATH | awk /^.+\.ts$/ | tail -n1`
if [ -z $FILE ]; then
# echo "No files to process... exiting!"
exit
fi
# set output name
OUTPUTFILE=$FILE$OUTPUTEXTENSION
# check for oputput file
if [ -r $NFSPATH$OUTPUTFILE ]; then
# echo "$OUTPUTFILE already exists... exiting"
exit
fi
# compare file size and exit if file is still growing
SIZE1=`du $NFSPATH$FILE | awk '{print $1'}`
sleep 5
SIZE2=`du $NFSPATH$FILE | awk '{print $1'}`
if [ $SIZE1 != $SIZE2 ]; then
# echo "File not finished yet... exiting"
exit
fi
# encode file
$MENCODER "$NFSPATH$FILE" -vf pp=ci,scale=$SCALE -ovc lavc -ffourcc DX50 -oac lavc -lavcopts \ vbitrate=500:acodec=mp3:abitrate=$ABITRATE -o $NFSPATH$OUTPUTFILE >/dev/null 2>&1
# check for oputput file
if [ ! -r $NFSPATH$OUTPUTFILE ]; then
# echo "$OUTPUTFILE dos not exist... exiting"
exit
fi
# delete input file
rm -f $NFSPATH$FILE