[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Aufnehmen vom Fernseher



Michael Ott schrieb:
Hallo Ihr!

Ich habe mir vor längeren mal einen USB-Teil gekauft, mit den man direkt
vom Fernseher aus Videos aufnehmen kann. Das Teil läuft super und M$ und
ich kann sogar damit was aufnehmen.
Debian erkennt das Ding auch, aber ich bräuchte nur noch eine Software,
mit der ich 1. was vom Fernseher aufnehmen kann
2. das dann einfach zusammen schneiden kann.

Habt ihr ein paar Tipps und vielleicht auch Howtos dazu. Ruhig auch in
Englisch. Natürlich alles mit Gui. CU Michael
ich mach das so:
(geschnitten wird danach mit dvbcut)

#!/bin/sh
#echo $#

sender=""
name=""
start=""
len=""
beginn="jetzt"
down="nein"
outfile=""
time="`date +%y%m%d%H%M%S`"
#default comprimierung
comp="-oac copy -ovc copy -of mpeg -idx"
fix="copy.mpg"
comp_name="copy"
len_name=""
sender_name=""

#scale="-vf scale= 720:405"
#scale="-vf scale=704:576"
scale=""

# Globale Variablen
SCRIPTNAME=$(basename $0)


# Funktionen
function usage {
echo "Usage: $SCRIPTNAME [-h] [-d] [-o OutputFile][-l Laenge] [-s Scale] [-t Start] [-c Kompressor] Sender" >&2
  echo "$SCRIPTNAME [-h] fuer mehr Hilfe"
  [[ $# -eq 1 ]] && exit $1 || exit $EXIT_FAILURE
}

function usage_more {
   echo -e "Usage:
   Sofort-Start mit:               record.sh Sender
mit Shutdown: record.sh -d Sender Sofort-Start mit Scalierung: record.sh -s 720:405 Sender
   Start jetzt, mit Laenge:        record.sh -l Len Sender
   mit Zeitangabe:                 record.sh -l Len -t Time Sender
   mit Kompressor:                 record.sh -c Compressor Sender
als Konverter (-o): record.sh -c Compressor -o OutputFile InputFile
   zeigt alle moeglichen Sender:   record.sh -k
   zeigt diese Hilfe-Seite:        record.sh -h

   Sender: z.B.:   \"arte\" fuer den Sender Arte
   Laenge: z.B.:   \"-l 01:30\" fuer 90 Minuten
   Uhrzeit: z.B.:  \"-t 16:10\" fuer 16:10 Uhr
   Kompr.: z.B.:   \"-c v4l\" fuer Video4Linux
   Shutdown:       \"-d\"

   Sample record.sh -d -t 20:15 -l 02:00 -c DX50 arte
"
}

function usage_comp {
   echo -e "Komprimierung:
   copy(default): DVB-Transportstream
   DX50: MPEG2
   x264: MPEG4
   v4l: Linux-Like
"
}

# Die Option -h für Hilfe sollte immer vorhanden sein, die Optionen
# -v und -o sind als Beispiele gedacht. -o hat ein Optionsargument;
# man beachte das auf "s" folgende ":".
# http://www.pro-linux.de/t_system/basescript.html
while getopts ':o:s:t:l:c:dhk' OPTION ; do
 case $OPTION in
    k)  less ~/.mplayer/channels.conf | cut -d: -f1; exit 0 ;;
    c)  #echo $OPTARG
        comp_name=$OPTARG
        case $OPTARG in
"DX50") comp="-ovc lavc -ffourcc DX50 -oac mp3lame -idx remove-logo=/home/lmateo/Desktop/Ich48x48.jpg"; fix="DX50.avi" ;; "x264") comp="-oac copy -ovc x264 -x264encopts threads=auto:bitrate=896:subq=3:me=hex:frameref=3:bframes=3 -idx"; fix="x264.mpg" ;; "v4l") comp="driver=v4l2:device=/dev/video0:input=0:outfmt=yv12:fps=25:alsa:amode=1:forcechan=2:chanlist=europe-west:channel=E5 -oac lavc -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1800:acodec=mp2:abitrate=128 -idx"; fix="xv4l2.mpg" ;;
           *)      usage_comp; exit 1 ;;
        esac ;;
    o)  outfile=$OPTARG ;;
    s)  scale="-vf scale=${OPTARG}" ;;
    l)  #echo $OPTARG
        len_name=$OPTARG
        len="-endpos $OPTARG:00" ;;
    t)  #echo $OPTARG
        beginn=$OPTARG ;;
    d)  down="ja" ;;
    h)  usage_more; exit 0 ;;
    \?) echo "Unbekannte Option \"-$OPTARG\"." >&2; usage; exit 1 ;;
:) echo "Option \"-$OPTARG\" benoetigt ein Argument." >&2; usage; exit 1 ;;
    *)  echo "error" >&2; usage; exit 1 ;;
 esac
done

# Verbrauchte Argumente überspringen
shift $(( OPTIND - 1 ))

# Eventuelle Tests auf min./max. Anzahl Argumente hier
if (( $# < 1 )) ; then
echo "Mindestens ein Argument beim Aufruf uebergeben." >&2; usage; exit 1
fi

if (( $# > 1 )) ; then
echo "Zu viele Argumente uebergeben oder Leerzeichen maskieren!" >&2; usage; exit 1
fi

# Leerzeichen entfernen
for tok in $1 ;
do
   sender_name="$sender_name$tok"
done
sender=$1
#echo $sender_name

time="`date +%y%m%d%H%M%S`"
filename="${time}_${sender_name}_${fix}"

if [ "$outfile" = "" ] ;then
  echo -e "
       Sender       $sender
       Startzeit    $beginn
       Laenge       $len_name
       Kompressor   $comp_name
       Filename     $filename
       Shutdown     $down
   "
   sender="dvb://${sender}"
else
   echo "Der Film ${sender_name} wird mit $comp_name codiert."
   filename="${outfile}${fix}"
fi

z=0
array=( "|" "/" "-" "\\"  )
if [ "$beginn" != "jetzt" ] ;then
   start="`echo $beginn | cut -b 1,2,4,5`"
   # warteschleife:
   while [ "$start" != "`date +%H%M`" ]
     do
       if [ $z -eq 4 ] ; then z=0; fi
echo -e " ${array[${z}]} Uhrzeit `date +%H:%M` = Startzeit $beginn \r\c"
        z=$(($z+1))
       sleep 0.1
       #clear
     done
fi

echo "/usr/bin/mencoder ${sender} $comp $scale -quiet $len -o ${filename}"
/usr/bin/mencoder "${sender}" $comp $scale -quiet $len -o ${filename}

if [ "$down" = "ja" ] ;then
   sudo shutdown -h +2 "Die Kiste wird in zwei Minuten abgeschalten!!!"
fi


exit 0

# gut fuer dvb-cut
name="${sender}-`date +%y%m%d%H%M%S`.copy.mpg"
/usr/bin/mencoder dvb://"$sender" -of mpeg -oac copy -ovc copy -quiet -o "$name" $len

# gut fuer den desk
name="${sender}-`date +%y%m%d%H%M%S`.DX50.avi"
#/usr/bin/mencoder dvb://"$sender" -of avi -ovc lavc -ffourcc DX50 -oac mp3lame -vf scale=720:576 -forceidx -quiet -o "$name" $len

name="${sender}-`date +%y%m%d%H%M%S`.x264.avi"
#/usr/bin/mencoder dvb://"$sender" -oac copy -ovc x264 -x264encopts threads=auto:bitrate=896:subq=3:me=hex:frameref=3:bframes=3 -vf scale=720:576 -forceidx -quiet -o "$name" $len

name="${sender}-`date +%y%m%d%H%M%S`.xv4l2.avi"
#/usr/bin/mencoder dvb://"$sender" driver=v4l2:device=/dev/video0:input=0:outfmt=yv12:fps=25:alsa:amode=1:forcechan=2:chanlist=europe-west:channel=E5 -oac lavc -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1800:acodec=mp2:abitrate=128 -vf scale=720:576 -forceidx -quiet -o "$name" $len



Reply to: