berndd
Anmeldungsdatum: 24. März 2007
Beiträge: 944
|
Hallo, habe früher immer Aufnahmen direkt aus Tv-Browser angelegt. Dafür habe ich das Kaffeine-Plugin benutzt. Unter Jaunty läßt sich aber das nötige Paket python-dcop nicht installieren. Als Alternative ist auch eine Aufnahme mit config-crontab möglich. Die Aufnahmen werden dann direkt in die Crontab geschrieben. Dazu muss das Modul config-crontab installiert werden. Habe aber keine Ahnung wie man das macht. (dh-make-perl erstellt einen Ordner mit Namen Debian, mit den darin enthaltenen Dateien kann ich aber überhaupt nichts anfangen) Kann mir das jemand bitte erklären. Hier ist der Artikel von Tv-Brower: http://mszet.de/tv-browser.html
und hier kann man config-crontab runterladen. http://search.cpan.org/~scottw/Config-Crontab-1.20/ Gruß
|
Heinrich_Schwietering
Wikiteam
Anmeldungsdatum: 12. November 2005
Beiträge: 11290
Wohnort: Bremen
|
Hi! Das ist ja extrem genial! Direkte Programmierung aus dem TV-Browser heraus! Hab's allerdings noch nicht ganz raus. Aber zur vorbereitung erst mal dieses herunterladen:
http://search.cpan.org/~scottw/Config-Crontab-1.30/ Das Archiv entpacken, dann im Terminal in den entstandenen Ordner wechseln, und dort nacheinander
perl Makefile.PL
make
make test
sudo checkstall
ausführen; bei checkinstall noch eine Beschreibung angeben, z.B. "Config-Crontab". Damit wird das ganze als .deb gebaut und installiert (hat den Vorteil, dass du es dann einfacher wieder deinstallieren kannst, falls das nötig sein sollte.) dh-perl-make brauchst du dafür eigentlich nicht. Ich bastele noch an der Einstellung im tvbrowser.pl-Skript für das Aufnahmeprogramm; das bekomme ich aber hoffentlich auch noch hin. Werde wohl ein kleines Skript bauen, das die Aufnahme mit mplayer (mit -dumpstream -dumpfile "Aufnahmetitel.ts" o.ä.) speichert; starten kann ich sie schon, da muss ich nur noch ein wenig basteln , damit die Aufnahme nach Ablauf der Sendungsdauer auch wieder beendet wird... Sollte aber machbar sein; schau morgen noch mal drauf. so long hank
|
berndd
(Themenstarter)
Anmeldungsdatum: 24. März 2007
Beiträge: 944
|
Hallo, checkinstall bricht mit folgendem Fehler ab. Was kann man tun. 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 | Geben Sie die betreffende Nummer ein, um die Vorgaben zu ändern:
Installing with make...Installing with install...
====================== Installations-Ergebnisse ==========================
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ERROR: Can't create '/usr/local/man/man3'
mkdir /usr/local/man: File exists at /usr/share/perl/5.10/ExtUtils/Install.pm line 479
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
at -e line 1
make: *** [pure_site_install] Fehler 17
**** Installation fehlgeschlagen. Breche Paket-Erzeugung ab.
Räume auf...OK
|
Gruß
|
Heinrich_Schwietering
Wikiteam
Anmeldungsdatum: 12. November 2005
Beiträge: 11290
Wohnort: Bremen
|
Hi! Versuchst du, eine Vorgabe versuchst bei dem Aufruf zu ändern? Sonst versuche statt sudo checkinstall mal sudo make install
Dann wird zwar kein Paket erstellt, aber das macht nicht so viel. Dgf. danach noch mal sudo checkunstall, wenn es doch ein Paket werden soll. so long hank
|
Heinrich_Schwietering
Wikiteam
Anmeldungsdatum: 12. November 2005
Beiträge: 11290
Wohnort: Bremen
|
Hi! Ich fand das Ganze so genial, dass ich gleich einen Wiki-Artikel dazu gebaut habe: Skripte/DVB-T-Aufnahmen aus dem TV-Browser starten ! Ich hoffe, da hab' ich alles verständlich und nachvollziehbar beschrieben. ☺ so long hank
|
berndd
(Themenstarter)
Anmeldungsdatum: 24. März 2007
Beiträge: 944
|
Hallo, danke. Hat nun auch bei mir funktioniert. Es ging mit der 1.20 Version von config-crontab. Vielleicht noch interessant: Config-Crontab ließ sich erst installieren, nachdem ich den fehlerhaften Link "man" im Verzeichnis /usr/local gelöscht habe (keine Ahnung wo der herkommt) Gruß
|
Heinrich_Schwietering
Wikiteam
Anmeldungsdatum: 12. November 2005
Beiträge: 11290
Wohnort: Bremen
|
Hi! Ist ja seltsam - bei mir gab's mit 1.30 keinerlei Probleme, Standard-Jaunty, 32-bit. Das ganze ginge auch ohne Crontab::Config, bastele gerade noch an einem Skript bzw. den Parameter-Einstellung im Aufnahme-Plugin, aber mit Crontab::Config ist es doch wesentlich eleganter... Bei dir geht es jetzt, ich schließe daraus, dass der Artikel soweit verständlich ist? Oder wie hast du die Aufnahme geregelt? so long hank
|
berndd
(Themenstarter)
Anmeldungsdatum: 24. März 2007
Beiträge: 944
|
Hallo, das Wiki ist verständlich und praktikabel. Habe die Schritte genau befolgt. Vielleicht wär noch ein Hinweis darauf, dass man in der tvbrowserAufnahme.sh den Aufnahme-Ordner anpassen muss. Ansonsten gut erklärt. Gruß
|
Heinrich_Schwietering
Wikiteam
Anmeldungsdatum: 12. November 2005
Beiträge: 11290
Wohnort: Bremen
|
Hi! berndd schrieb:
das Wiki ist verständlich und praktikabel. Habe die Schritte genau befolgt. Vielleicht wär noch ein Hinweis darauf, dass man in der tvbrowserAufnahme.sh den Aufnahme-Ordner anpassen muss. Ansonsten gut erklärt.
Danke! ☺ Hab' das Skript dem Hinweis entsprechend gleich angepasst, jetzt ist standardmäßig ~/Videos vorgesehen. so long hank
|
Heinrich_Schwietering
Wikiteam
Anmeldungsdatum: 12. November 2005
Beiträge: 11290
Wohnort: Bremen
|
Hi! Hab' das Perskript noch etwas "aufgebohrt"; jetzt wird eine Zenity-Abfrage vorgeschaltet, ob die Sendung aufgezeichnet, gleichzeitig auch mit angeschaut oder nur angeschaut werden soll. Dafür sind allerdings vier Skripte nötig (wenn man die Zenity-Abfrage in das Perlskript bekommen könnte, wäre es etwas einfacher, kann ich aber nicht...): 1) das Select.sh-Skript, übernimmt die Variablen aus dem TV-Browser-Plugin und legt fest, welche Aufnahme-Variante gewählt wird:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 | #!/bin/bash
# Skript um Aufnahmen aus dem TV-Browser zu starten, gleichzeitig mitzuschauen, oder auch nur zu schauen.
# Autor Heinrich Schwietering (c) 2009
#
# Im TV-Browser-Plugin für die Aufnahme muss als Applikation "/bin/bash" eingetragen werden, bei den
# Parametern für "Aufnehmen":
# /pfad/zum/Select.sh {leadingZero(start_minute, "2")} {leadingZero(start_hour, "2")} {leadingZero(start_day, "2")}
# {leadingZero(start_month, "2")} [*{isset(channel_name_external_quiet,channel_name)}*] {length_minutes} {urlencode(title, "utf-8")} record
MINUTE=${1}
HOUR=${2}
DAY=${3}
MONTH=${4}
SENDER=${5}
DAUER=${6}
VERZ=$HOME/.tvbrowser
# Routine, um den Titel ohne "seltsame" Zeichen und mit Leerstellen zubekommen
TITEL=$(echo ${7} | tr '+' ' ' | /bin/echo -e $(sed 's/%/\\x/g'))
if [ ${8} == "record" ]; then
# Zenity-Aufruf, um Auswahl festzulegen
zenity --help > /dev/null || { echo "Fehler: Du benötigst \"zenity\" um dieses Script nutzen zu können." && exit 1 ; }
test ! -e $VERZ/Auswahl.lst && zenity --error --text "$VERZ/Auswahl.lst wurde nicht gefunden!" && exit 1
AUSWAHL=`cat ~/.tvbrowser/Auswahl.lst | zenity --list --title "Aufnehmen, Ansehen, Beides?" --column "Auswahl:"` || exit 0
test "$AUSWAHL" || { zenity --error --text "Es wurde keine Auswahl getroffen!" && exit 1 ; }
#if [ "${7}" == "Aufnehmen" ]; then
# CRONTAB ERSTELLEN; über das tvbrowser.pl, Aufruf des Unterskripts zu Aufnahme
/Pfad/zum/tvbrowserSelect.pl record $MINUTE $HOUR $DAY $MONTH $SENDER $DAUER "$TITEL" $AUSWAHL
echo $AUSWAHL &> $VERZ/"$MINUTE-$HOUR-$DAY-$MONTH-$TITEL".txt
else
if [ -a $VERZ/"$MINUTE-$HOUR-$DAY-$MONTH-$TITEL".txt ]; then
AUSWAHL=`cat $VERZ/"$MINUTE-$HOUR-$DAY-$MONTH-$TITEL.txt"`
/Pfad/zum/tvbrowserSelect.pl delete $MINUTE $HOUR $DAY $MONTH $SENDER $DAUER "$TITEL" $AUSWAHL
rm $VERZ/"$MINUTE-$HOUR-$DAY-$MONTH-$TITEL".txt
fi
fi
exit
|
2) das tvbrowserSelect.pl Perlskript, es wird benötigt, um die eigentlichen Crontab-Einträge zu erstellen bzw. zu löschen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57 | #!/usr/bin/perl
use warnings;
use strict;
use Config::Crontab;
# Argumente richten: [* *] ist Quoting
my (@temp, $temp, $st);
foreach (@ARGV) {
if ($st) { $temp .= " " . $_; if (/\*\]$/) { $st = 0; push(@temp, $temp); }}
else { if (/^\[\*/ && !/\*\]$/) { $st = 1; $temp = $_; } else { push(@temp, $_); }}
}
@ARGV = (); foreach (@temp) { if (/^\[\*(.*)\*\]$/) { $_ = $1; } push(@ARGV, $_); }
# Argumente Prüfen
my ($flag, $minute, $hour, $day, $month, $sender, $length, $title, $selection) = @ARGV;
if ($#ARGV != 8) {
print("\nUngültige Anzahl von Argumenten:\n\n",
" Syntax: $0 record|delete <minute> <hour> <day> <month> <sender> <length> <title> <selection>\n",
" Aufruf: $0 ",join(" ", @temp), "\n"
);
exit(1);
}
$title =~ s/"/\\"/g;
# Dieser Befehl wird in die Crontab eingetragen.
my $command = "/Pfad/zum/Auswahl.sh $sender \"$title\" $length $selection";
# Crontab bearbeiten
my $ct = new Config::Crontab;
$ct->strict(0);
$ct->read;
if ($flag eq "record") {
my @comments = $ct->select( -type => 'comment', -data_re => '^##\s*TV-Browser');
my $block;
if (!@comments) {
$block = new Config::Crontab::Block;
$block->last(new Config::Crontab::Comment(-data => '## TV-Browser <do not edit this>'));
} else {
$block = $ct->block(pop(@comments));
}
$block->last(new Config::Crontab::Event(
-minute => $minute, -hour => $hour, -dom => $day, -month => $month, -dow => '*', -command => $command
));
$ct->last($block);
} elsif ($flag eq "delete") {
my @comments = $ct->select( -type => 'comment', -data_re => '^##\s*TV-Browser');
foreach (@comments) {
my $block = $ct->block($_);
my @events = $block->select( -type => 'event',
-minute => $minute, -hour => $hour, -dom => $day, -month => $month, -dow => '*', -command => $command
);
foreach (@events) { $block->remove($_); }
}
}
$ct->write;
exit 0;
|
3). das eigentliche Auswahl.sh-Skript, mit dem die mplayer-Anwendungen gestartet werden
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51 | #!/bin/bash
# SKRIPT für die Aufname mit Select.sh erstellte jobs aus dem tvbrowser heraus
### KONFIGURATION - DATEN FÜR AUFNAHME
TVREC=/usr/bin/mplayer
TVPLAY=/usr/bin/gnome-mplayer
DATE=`/bin/date '+%d.%m.%Y-%H.%M'`
DAY=`date '+%d'`
MONTH=`date '+%m'`
HOUR=`date '+%H'`
MINUTE=`date '+%M'`
VERZ=$HOME/.tvbrowser
VIDEO=$HOME/Videos
TITEL=${2}
SENDER=${1}
DAUER=($((${3}*60)))
# REINE AUFNAHME
if [ "${4}" = "Aufnehmen" ]; then
# Aufnahme starten
DISPLAY=:0.0 $TVREC dvb://$SENDER -dumpstream -dumpfile "$VIDEO/$SENDER-\"$TITEL\"-$DATE.ts" &
# Aufnahme beenden
sleep $DAUER
killall $TVREC
fi
# NUR ANSEHEN
if [ "${4}" = "Ansehen" ]; then
# Aufnahme starten
DISPLAY=:0.0 $TVPLAY dvb://$SENDER --fullscreen &
sleep 1
# Beenden
sleep $DAUER
killall $TVPLAY
fi
# "TIME_SHIFT"
if [ "${4}" = "Beides" ]; then
# Aufnahme starten
DISPLAY=:0.0 $TVREC dvb://$SENDER -dumpstream -dumpfile "$VIDEO/$SENDER-\"$TITEL\"-$DATE.ts" &
sleep 1
DISPLAY=:0.0 $TVPLAY $VIDEO/*-$DATE.ts --fullscreen &
# Aufnahme beenden
sleep $DAUER
killall $TVREC
fi
/Pfad/zum/tvbrowserSelect.pl delete $MINUTE $HOUR $DAY $MONTH $SENDER ${3} "$TITEL" ${4}
rm $VERZ/"$MINUTE-$HOUR-$DAY-$MONTH-$TITEL".txt
fi
exit
|
4). noch ein kleines Löschen.sh-Skript, um die Löschanweisungen aus dem TV-Browser heraus an das Perlskript zu leiten:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 | #!/bin/bash
# Skript um Aufnahmen aus dem TV-Browser zu starten, gleichzeitig mitzuschauen, oder auch nur zu schauen.
# - Unterskript zum Löschen von Aufnahmezeiten im TV-Browser
# Autor Heinrich Schwietering (c) 2009
#
# Im TV-Browser-Plugin für die Aufnahme muss als Applikation "/bin/bash" eingetragen werden, bei den
# Parametern für "Löschen":
# /pfad/zum/Löschen.sh {leadingZero(start_minute, "2")} {leadingZero(start_hour, "2")} {leadingZero(start_day, "2")}
# {leadingZero(start_month, "2")} [*{isset(channel_name_external_quiet,channel_name)}*] {length_minutes} {urlencode(title, "utf-8")}
MINUTE=${1}
HOUR=${2}
DAY=${3}
MONTH=${4}
SENDER=${5}
DAUER=${6}
# Routine, um den Titel ohne "seltsame" Zeichen und mit Leerstellen zubekommen
TITEL=$(echo ${7} | tr '+' ' ' | /bin/echo -e $(sed 's/%/\\x/g'))
# CRONTAB LÖSCHEN
/Pfad/zum/tvbrowserSelect.pl delete $MINUTE $HOUR $DAY $MONTH $SENDER $DAUER "$TITEL" Aufnehmen
/Pfad/zum/tvbrowserSelect.pl delete $MINUTE $HOUR $DAY $MONTH $SENDER $DAUER "$TITEL" Ansehen
/Pfad/zum/tvbrowserSelect.pl delete $MINUTE $HOUR $DAY $MONTH $SENDER $DAUER "$TITEL" Beides
exit
|
Dazu wird die im Wiki beschriebene Auswahl.lst für die Zenity-Abfrage benötigt. Die Pfade in den Skripten müssen natürlich noch angepasst werden. So kann man auch mit dem Perlskript den Funktionsumfang der ersten im Wiki beschriebenen Methode erreichen. so long hank
|