Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Aufnahmeskript für pvr-350 funktioniert nun
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German)
View previous topic :: View next topic  
Author Message
Andreas O.
Tux's lil' helper
Tux's lil' helper


Joined: 04 Jan 2003
Posts: 132
Location: Welthauptstadt der Biere

PostPosted: Thu Feb 02, 2012 6:36 am    Post subject: Aufnahmeskript für pvr-350 funktioniert nun Reply with quote

Hallo,

ich hoffe, hier kann mir ein Skript-Kundiger weiterhelfen (ich gestehe, ich kenne mich hier leider fast gar nicht aus).

Ich möchte auf der Kommandozeile einfach von meinem Videorekorder (VHS) von meiner S-Video1-Schnittstelle mit meiner PVR-350-TV-Karte mit einer vorgegebenen Endzeit aufnehmen.

Dazu habe ich im Internet zwei Skripte gefunden, die ich versucht habe, für meinen Zweck zu kombinieren.

Das erste Skript, das schon funktioniert, lautet - ich habe es mal vdr.sh genannt:

Code:
# SHELL SCRIPT FOR VCR-TO-DVD CONVERSION
#!/bin/bash
printf "%s\n" "< VHS copier > "
ivtv-tune -c 1
printf "ENTER to begin recording, ctrl-C to stop"
read ENTER
DATE=`date +%I%M%p`
echo "Recording started at $DATE "
cat /dev/video0 > /home/anderl/Desktop/VHS/VHS_$DATE.mpg


Nun habe ich die vermeintlich richtigen Stellen eines anderen Skriptes in dieses / in ein neues Skript namens vdr1.sh eingebaut, das nun wie folgt lautet:

Code:
# SHELL SCRIPT FOR VCR-TO-DVD CONVERSION
#!/bin/bash
#auf S-Video umschalten
ivtv-tune -c 1
#eigentlicher Aufnahmebefehl
BEFEHL=cat /dev/video0 > /home/anderl/Desktop/VHS/VHS_$NAME.mpg

echo -n "Name der Aufzeichnung [aufzeichnung]: "
read NAME

# NAME leer (zero) ?
if [ -z $NAME ]; then
   NAME="aufzeichnung"
fi

echo -n "Maximale Aufnahmedauer ([[hh:]mm:]ss) [unbegrenzt]: "
read DAUERMAX
if [ $DAUERMAX ]; then
   echo "Aufnahmedauer: $DAUERMAX"
   BEFEHL="$BEFEHL -endpos $DAUERMAX"
else
   echo "Aufnahmedauer: unbegrenzt"
fi

echo "--------------------------------------------------------------"
echo "Fuehre aus: $BEFEHL"
echo "--------------------------------------------------------------"
echo "Die Aufzeichnung kann mit <Strg>-C korrekt beendet werden."
echo "Eingabe-Taste druecken, um mit der Aufzeichnung zu beginnen"
echo "<Strg>-C zum Abbruch"
read x

STARTZEIT=$(date +%Y.%m.%d_%H:%M)

DATEI=$NAME"."$STARTZEIT"."

BEFEHL="$BEFEHL -o $DATEI"


Dabei kommt leider nur Folgendes raus:

Code:
 ./vcr1.sh
/dev/video0: 73.250 MHz
./vcr1.sh: Zeile 6: /dev/video0: Keine Berechtigung
Name der Aufzeichnung [aufzeichnung]:
Maximale Aufnahmedauer ([[hh:]mm:]ss) [unbegrenzt]: 00:01:00
Aufnahmedauer: 00:01:00
--------------------------------------------------------------
Fuehre aus:  -endpos 00:01:00
--------------------------------------------------------------
Die Aufzeichnung kann mit <Strg>-C korrekt beendet werden.
Eingabe-Taste druecken, um mit der Aufzeichnung zu beginnen
<Strg>-C zum Abbruch


es wird leider nichts aufgenommen, weil ich angeblich keine Berechtigung für /dev/video0 hätte - aber in skript vdr.sh habe ich diese doch (als gleicher, einfacher Benutzer) !?

Sicher ist nur eine Kleinigkeit am Skript vdr1.sh falsch, aber was ?


Andreas


Last edited by Andreas O. on Sat Feb 04, 2012 7:52 pm; edited 1 time in total
Back to top
View user's profile Send private message
Finswimmer
Moderator
Moderator


Joined: 02 Sep 2004
Posts: 5467
Location: Langen (Hessen), Germany

PostPosted: Thu Feb 02, 2012 7:20 am    Post subject: Reply with quote

Probier mal bei dem Befehl ein " " drumherum zu setzen, denn du willst das da noch gar nicht ausführen, sondern nur den späteren Befehl erstellen.

Ein anderes Problem wird aber sein, dass dein Befehl dann so aussieht:
cat /dev/video0 > /home/anderl/Desktop/VHS/VHS_$NAME.mpg -endpos $DAUERMAX -o $NAME"."$STARTZEIT"."

cat wird -endpos und -o nicht kennen.



Auf die Schnelle ginge ein Programm so:

Code:

#!/bin/bash
# Laufzeit ermitteln
echo -n "Maximale Aufnahmedauer (in Minuten): "
read DAUERMAX
let LAUFZEIT=60*$DAUERMAX

# Starten der Aufnahme
cat /dev/video0 > /home/anderl/Desktop/VHS/VHS_$NAME.mpg &
PID=$!

sleep $LaUFZEIT && kill $(echo $PID)


Ich würde allerdings das Verzeichnis nicht hardcoden, sondern als ersten Paramater übergeben.
_________________
Bitte auf Rechtschreibung, korrekte Formatierung und Höflichkeit achten!
Danke
Back to top
View user's profile Send private message
Andreas O.
Tux's lil' helper
Tux's lil' helper


Joined: 04 Jan 2003
Posts: 132
Location: Welthauptstadt der Biere

PostPosted: Thu Feb 02, 2012 11:22 am    Post subject: Reply with quote

Hallo,

danke erst mal für die schnelle Antwort :)
Ich werde mich am WE damit intensiv auseinandersetzen.
Für mich ist einfach ein Programm wie mythtv oder vdr zuviel des Guten, wenn ich einfach nur den MPEG-Strom abgreifen will und einfach nur das Skript nach einer gewissen Aufnahmedauer (z.B. nach 45 Minuten 30 Sekunden) automatisch beendet werden soll.

Andreas

[Edit:] So, habe dein Skript nun weiter modifiziert und als vcr2.sh betitelt:

Code:
#Einfaches Shell-Skript um von VHS (S-Video) aufnehmen zu können
#!/bin/bash
#auf S-Video umschalten
ivtv-tune -c 1
 # Laufzeit ermitteln
 echo -n "Maximale Aufnahmedauer (in Minuten): "
 read DAUERMAX
 let LAUFZEIT=60*$DAUERMAX

 # Starten der Aufnahme
 cat /dev/video0 > /home/anderl/Desktop/VHS/VHS.mpg &
 PID=$!

 sleep $LAUFZEIT && kill $(echo $PID)


Was noch nicht gleich funktioniert, ist, dass bei meinem Befehl ivtv-tune -c 1 gleich ein Signal gefunden wird, d.h. es wird erst mal nur "Schnee-Grieseln" aufgenommen, wenn ich das aber separat ausführe, wird ein Signal erkannt:

Code:
 ./vcr2.sh
/dev/video0: 73.250 MHz  (Signal Detected)
Maximale Aufnahmedauer (in Minuten): 1


Kann man hier noch was reinschreiben, dass er z.B. noch 2 Sekunden warten soll, bis die eigentliche Aufnahme beginnen kann?
Ansonsten bin ich mit deinem Skript schon sehr zufrieden :D

Übrigens - mit:

Code:
 v4l2-ctl -d /dev/video0 --list-inputs


kriegt man raus, auf welchen Kanal man schalten muss.

Andreas
Back to top
View user's profile Send private message
Andreas O.
Tux's lil' helper
Tux's lil' helper


Joined: 04 Jan 2003
Posts: 132
Location: Welthauptstadt der Biere

PostPosted: Sat Feb 04, 2012 7:51 pm    Post subject: Reply with quote

Setze nun das Thema auf gelöst.
Habe mir in meiner .bashrc ein kleines alias für den Befehl ivtv-tune erstellt, damit kann ich auch ganz gut leben.
Danke nochmal für Deine Hilfe :)

Andreas
Back to top
View user's profile Send private message
Finswimmer
Moderator
Moderator


Joined: 02 Sep 2004
Posts: 5467
Location: Langen (Hessen), Germany

PostPosted: Sun Feb 05, 2012 9:08 am    Post subject: Reply with quote

Wenn du deinen Beitrag editierst, bekommt man das in der Foren-Übersicht nicht mit.

mit sleep $anzahlDerSekunden kannst du an jeder beliebigen Stelle das Skript kurz anhalten.
Ich würde es direkt vor cat /dev... setzen, dann ist die Usereingabe schon fertig und man kann gehen.
_________________
Bitte auf Rechtschreibung, korrekte Formatierung und Höflichkeit achten!
Danke
Back to top
View user's profile Send private message
Andreas O.
Tux's lil' helper
Tux's lil' helper


Joined: 04 Jan 2003
Posts: 132
Location: Welthauptstadt der Biere

PostPosted: Sun Feb 05, 2012 3:17 pm    Post subject: Reply with quote

Finswimmer wrote:

mit sleep $anzahlDerSekunden kannst du an jeder beliebigen Stelle das Skript kurz anhalten.
Ich würde es direkt vor cat /dev... setzen, dann ist die Usereingabe schon fertig und man kann gehen.


Wie gesagt, skripten ist noch nicht meine Stärke :oops:

ich setze also z.B. den sleep-Befehl hier ein:


Code:
#Einfaches Shell-Skript um von VHS (S-Video) aufnehmen zu können
#!/bin/bash
#auf S-Video umschalten
ivtv-tune -c 1
 # Laufzeit ermitteln
 echo -n "Maximale Aufnahmedauer (in Minuten): "
 read DAUERMAX
 let LAUFZEIT=60*$DAUERMAX

sleep $5

 # Starten der Aufnahme
 cat /dev/video0 > /home/anderl/Desktop/VHS/VHS.mpg &
 PID=$!

 sleep $LAUFZEIT && kill $(echo $PID)


Also ist "sleep $5" (für 5 Sekunden anhalten) richtig gesetzt?
Sorry, dass ich so blöde frage, habe nun mal so gut wie keine Ahnung von Syntax.

Andreas
Back to top
View user's profile Send private message
Finswimmer
Moderator
Moderator


Joined: 02 Sep 2004
Posts: 5467
Location: Langen (Hessen), Germany

PostPosted: Sun Feb 05, 2012 4:34 pm    Post subject: Reply with quote

Nee, nicht ganz.

sleep 5 wäre richtig.
Im Zweifelsfall einfach mal sleep --help eingeben, da würdest du den Syntax erklärt bekommen.
_________________
Bitte auf Rechtschreibung, korrekte Formatierung und Höflichkeit achten!
Danke
Back to top
View user's profile Send private message
Andreas O.
Tux's lil' helper
Tux's lil' helper


Joined: 04 Jan 2003
Posts: 132
Location: Welthauptstadt der Biere

PostPosted: Sun Feb 05, 2012 7:04 pm    Post subject: Reply with quote

So, habe nun das Skript weiter modifiziert (dazu brauchte es nun doch keinen sleep-Befehl mehr):

Code:
#Einfaches Shell-Skript um von VHS (S-Video) aufnehmen zu können mit der Hauppauge PVR-350
#!/bin/bash
#auf S-Video umschalten
v4l2-ctl --set-input=1
 # Laufzeit ermitteln
 echo -n "Maximale Aufnahmedauer (in Minuten): "
 read DAUERMAX
 let LAUFZEIT=60*$DAUERMAX

 # Starten der Aufnahme
 cat /dev/video0 > /home/anderl/Desktop/VHS/VHS.mpg &
 PID=$!

 sleep $LAUFZEIT && kill $(echo $PID)


Dieses habe ich nun vcr genannt (vorher ausführbar gemacht) und nach /usr/local/bin kopiert, so dass ich künftig nur noch
Code:
vcr

aufzurufen brauche :D

Vielen Dank nochmal an dieser Stelle an Dich, Finswimmer - ohne dich wäre ich nie soweit gekommen :D :D :D


Andreas
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum