Forum: PC-Programmierung Linux Prozesse gleichzeitig beenden


von Tobi (Gast)


Lesenswert?

Hi,

es geht um die Aufnahme von DVB-S2 unter Linux. Das ganze funktioniert 
zum Testen bis jetzt so:

szap-s2 -a 0 -c channels.config "arte HD;ZDFvision" -H -r & mplayer 
/dev/dvb/adapter0/dvr0 -demuxer lavf -cache 18000

Für die eigentliche Aufnahme würde es dann so aussehen:

szap-s2 -a 0 -c channels.config "arte HD;ZDFvision" -H -r & mencoder 
/dev/dvb/adapter0/dvr0 -o /home/tobi/artehd.h264 -demuxer lavf -frames 
$((25*60*5)) -oac copy -ovc copy

Das Problem ist nun das sich der mencoder nach einer Zeit beendet, aber 
szap-s2 weiter läuft. Wie kann ich erreichen das szap-s2 beendet wird 
sobald mencoder nicht mehr läuft ?

Vielen Dank,
Tobi

von Sven P. (Gast)


Lesenswert?

Hauruck-Methode: Schreib die PID von szap nach dem Start in eine 
Variable. Dann starte mencoder verkettet mit kill. Wenn mencoder fertig 
ist, schreitet die Ausführung weiter zu kill und beendet szap.

Elegantere Methode: Einen FIFO benutzen. Wird der auf einem Ende 
geschlossen, fliegt das andere Ende gleich mit weg.

von DVB (Gast)


Lesenswert?

Warum überhaupt mit externem szap?

der mplayer/mencoder kann den Channel selber einstellen, wenn er mit 
DVB-Support kompiliert ist, und eine channels.conf im ~/.mplayer 
liegt...

zum Speichern des ganzen Transport-Streams:
> mplayer -dumpstream dvb://"arte HD" -dumpfile stream.ts

bzw mit mencoder:
> mencoder -ovc copy -oac copy -o stream.ts dvb://"ZDF HD"

Und wenn die CPU es hergibt kann der mencoder natürlich auch noch gleich 
in was Platzsparenderes umkomprimieren.

von Marvin S. (demo)


Lesenswert?

szap-s2 -a 0 -c channels.config "arte HD;ZDFvision" -H -r & szappid=$!; 
mencoder
/dev/dvb/adapter0/dvr0 -o /home/tobi/artehd.h264 -demuxer lavf -frames
$((25*60*5)) -oac copy -ovc copy; kill $szappid

von Marvin S. (demo)


Lesenswert?

muss garnicht so kompliziert, man kann tatsaechlich gleich kill $! 
hinter das mplayer setzen... ;)

Gruesse

Marvin

von Tobi (Gast)


Lesenswert?

Hallo,

vielen Dank für die Infos.
Mir wäre es auch am liebsten mplayer/mencoder ohne szap-s2 zu verwenden 
aber ich bekomme keine channels.conf für Astra 19,2 zusammen die der 
mplayer in kubuntu 10.10 akzeptiert. D.h. SDTV geht schon, aber HDTV 
geht nicht.
Wenn jemand eine funktionierende channels.conf hat wäre ich ihm dankbar 
wenn er mir erklären könnte wie er das mit scan-s2, w_scan oder dvbscan 
hibekommen hat.

Gruss,
Tobi

von wirbel (Gast)


Lesenswert?

w_scan -fs -S19E2 -X > ~/channels.conf

von Tobi (Gast)


Lesenswert?

Moin,

also mit "w_scan -fs -s S19E2 -X > ~/.mplayer/channels.conf
klappen mit mplayer nur die SD Programme.

So sieht das bei mir für HDTV aus:

/mplayer dvb://"arte HD(ZDFvision)" -demuxer lavf
MPlayer SVN-r32848-4.4.5 (C) 2000-2011 MPlayer Team

Playing dvb://arte HD(ZDFvision).
dvb_tune Freq: 11361000
Not able to lock to the signal on the given frequency, timeout: 30
dvb_tune, TUNING FAILED
ERROR, COULDN'T SET CHANNEL  417: Failed to open dvb://arte 
HD(ZDFvision).


Exiting... (End of file)


Ob mit oder ohne den Parameter "-demuxer lavf" spielt keine Rolle.
Ich habe es sowohl mit der mplayer Version von ubuntu veruscht als auch 
mit der aktuelle Version aus dem SVN.

Meine channels.conf sieht z.B. für Arte auf Astra 19,2 so aus:
arte(ARD):10744:h:0:22000:401:402:28724
arte HD(ZDFvision):11361:h:0:22000:6210:6221:11120


Hat noch jemand einen Tipp ?

Gruss,
Tobi

von Tobi (Gast)


Lesenswert?

Hi,

ich gebe es langsam auf. Es sieht für mich so aus als ob die Ursache in 
den DVB tuning Funktionen im mplayer liegt. Vieleicht kommt er nicht mit 
der DVB API >5 klar.

Tobi

von Hesse James (Gast)


Lesenswert?

Hallo
Das ist ja ein Zufall. Genau mit der gleichen Frage habe ich mich die 
letzten Tage auch herumgequält und bin gescheitert: wie bringe ich dem 
Mplayer bei, dass er per "mplayer dvb://" auch DVB-S2 Kanäle anzeigt, 
geschweige denn abspeichert. Mit DVB-S Kanälen klappt das ja so 
problemlos. Bei DVB-S2 bekomme ich auch obige Fehlermeldungen. Der 
grosse Charme dieser Variante ist ja der, dass man per Channel up /down 
im Mplayer Kanalwechsel per Lirc durchführen kann. Wie das mit szap-s2 
gehen soll ist mir schleierhaft.

Habe die Kanallisten einmal mit w_scan und einmal mit scan-s2 
durchgeführt wegen evtl. Abweichungen. Negativ

Ich habe aktuell DVB-API 5.1 (Kernel 2.6.34) mit Puppy Linux am laufen. 
Hatte aber auch schon mit einem 5.0 probiert. Gleiches Ergebnis. Ich 
wollte bei Gelegenheit ein 5.2er ausprobieren aber das kommt wohl erst 
mit 2.6.38 ?

Habe bei Puppy Linux dazu einen Thread laufen aber da kam bisher auch 
nichts Verwertbares dabei heraus. Vielleicht sollte man mal bei den 
Mplayer-Entwicklern anfragen. Gibts da ein passendes Forum ?
Gruss Christian

scan-s2
arte_HD:11361:h:0:22000:6210:6221:11120:6
w_scan
arte_HD:11361:h:0:22000:6210:6221+6222:11120

von Hesse James (Gast)


Lesenswert?

Mit HD-Inhalten die per Kabel übertragen werden scheint Mplayer keine 
Probleme zu haben.
http://andymanone.dyndns.org/atarixle/blog/index.htm

Gruss Christian

von Hesse James (Gast)


Lesenswert?


von Tobi (Gast)


Lesenswert?

Moin,

wie schön nicht mit dem Problem alleine zu sein ;-)

Das aktuelle "w_scan" hat eine Option -M mit der angeblich eine 
channels.conf für die MPLayer erzeugt wird. Klappen tut es damit aber 
auch nicht.

Wo gibt es eigentlich die Doku für die aktuelle DVB API unter Linux ?

Gruss,
Tobi

von Hesse James (Gast)


Lesenswert?

Hallo
Ich hatte ja meine channels.conf sowohl mit w_scan als auch mit scan-s2 
erzeugt um die miteinander vergleichen zu koennen. Daran lag es jetzt 
jedenfalls nicht.
Einsfestval konnte ich mittlerweile wie im Blog-Link gezeigt abspielen. 
Das liegt aber wohl daran, dass hier offenbar der HD-Inhalt nicht per 
H.264 kodiert ist.
Bei den anderen kann Mplayer derzeit definitiv keine Darstellung mittels 
mplayer dvb://
Man muss sich wohl auf den Umweg szap-s2 und mplayer einstellen. Da 
gibts gerade beim Link auf das ComputerForum ganz interessante Ansaetze 
des Workarrounds. Leider ist da dann das Channelup/Channeldown des 
mplayers aussen vor.

Bechreibung API:
http://www.linuxtv.org/downloads/v4l-dvb-apis/

Gruss Christian

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.