Pagina 1 di 2

Intercettare stream MPlayer

Inviato: dom set 30, 2012 12:29
da Burroughs
Buona domenica a tutti!

Il mio problema è abbastanza strano, ma spero si possa trovare una soluzione: ieri sera non sono riuscito a registrare la prima puntata di Ulisse di Alberto Angela, così ho pensato di ricorrere al servizio Replay della RAI.
Bene, sul sito dedicato, con Firefox supportato dall'estensione RAISMTH, vado sulla puntata, avvio lo stream, parte MPlayer ma non riesco, men che meno che dal sorgente della pagina, ad avere una qualche indicazione sull'URL che MPlayer stesso utilizza in quel caso.
C'è qualcuno che può aiutarmi in tal senso?

Burroughs.

Re: Intercettare stream MPlayer

Inviato: dom set 30, 2012 12:38
da targzeta
In generale, poiché mplayer viene invocato da firefox, l'output di mplayer dovrebbe essere legato allo stdout di firefox, il quale dovrebbe essere legato a X. Insomma, io se faccio un cat su:

Codice: Seleziona tutto

~/.xsession-errors
vedo tutto l'output generato da tutti i software che girano sotto X. In particolare, quando mplayer viene eseguito da RAISMTH, in quel file c'è l'output generato da mplayer. Però questa potrebbe essere una mia configurazione particolare e potrebbe non funzionare per te.

Un altro metodo è quello di wrappare mplayer dentro RAISMTH. Io siccome volevo mettere una cache a mplayer ho fatto quanto segue:
  • ho creato questo script:

    Codice: Seleziona tutto

    #!/bin/sh

    /usr/bin/xterm -e /usr/bin/mplayer -cache 8192 $*
  • ho settato RAISMTH impostando come riproduttore video questo script.
conclusione, quando guardo in video sulla rai, RAISMTH fa partire il mio script e quindi mplayer viene eseguito all'interno di xterm.

Emanuele

Re: Intercettare stream MPlayer

Inviato: dom set 30, 2012 13:00
da Burroughs
Ciao, Emanuele!

No, ~/.xsession-errors non intercetta nulla di relativo a Firefox.
Con il metodo del tuo script, nell'output generato (scusami ma non riesco a farne un copia/incolla), MPlayer mi dice che sta riproducendo il file /tmp/3704440000000.264.
Del file in questione c'è anche una versione in .aac nella stessa directory.

Burroughs.

Re: Intercettare stream MPlayer

Inviato: dom set 30, 2012 14:58
da targzeta
Sì, hai ragione, si vede che col tempo RAISMTH è cambiato. Ma tu cosa vuoi fare? Non vuoi vederti la puntata? Oppure vuoi registrartela? Perché, in questo caso, nessuno ti impedisce di usare mencoder invece di mplayer ;).

Emanuele

Re: Intercettare stream MPlayer

Inviato: dom set 30, 2012 16:31
da Burroughs
targzeta ha scritto:Sì, hai ragione, si vede che col tempo RAISMTH è cambiato. Ma tu cosa vuoi fare? Non vuoi vederti la puntata? Oppure vuoi registrartela? Perché, in questo caso, nessuno ti impedisce di usare mencoder invece di mplayer ;).

Emanuele

No, io voglio solo registrarmela per poi vederla con calma sulla TV di casa.
Il problema è che non riesco a capire quale sia lo stream che utilizza mplayer per la riproduzione.

Burroughs.

Re: Intercettare stream MPlayer

Inviato: dom set 30, 2012 17:54
da targzeta
Non hai colto il mio consiglio. Se, nello script che ti ho postato, invece di usare mplayer usi mencoder, cosa credi che succeda? Che ti frega di sapere l'indirizzo dello stream?

Emanuele

Re: Intercettare stream MPlayer

Inviato: dom set 30, 2012 18:18
da Burroughs
targzeta ha scritto:Non hai colto il mio consiglio. Se, nello script che ti ho postato, invece di usare mplayer usi mencoder, cosa credi che succeda? Che ti frega di sapere l'indirizzo dello stream?

Emanuele

Fatto, ma la riproduzione si arresta subito dopo:

Codice: Seleziona tutto

[RAISMTH] Player Stop/EOF pid:3708020000000 c:2

Burroughs.

Re: Intercettare stream MPlayer

Inviato: dom set 30, 2012 18:41
da 414N
Più che mencoder forse è meglio mplayer con le opzioni:

Codice: Seleziona tutto

mplayer -dumptstream -dumpfile /path/del/file/di/dump

Re: Intercettare stream MPlayer

Inviato: lun ott 01, 2012 11:11
da Burroughs
414N ha scritto:Più che mencoder forse è meglio mplayer con le opzioni:

Codice: Seleziona tutto

mplayer -dumpstream -dumpfile /path/del/file/di/dump

No, 414N, il problema è proprio che è impossibile conoscere l'URL dello stream.

Burroughs.

Re: Intercettare stream MPlayer

Inviato: lun ott 01, 2012 13:30
da 414N
Ho fatto qualche prova con raismth e mplayer con l'opzione dumpstream, ma quel che si ottiene è un file senza audio contenente neanche il primo minuto del video che si desidera vedere.
Temo quindi che, a meno che tu non usi mplayer per riprodurre il filmato e registri la schermata con un'applicazione tipo recordmydesktop non sia possibile registrare gli stream rai.

Re: Intercettare stream MPlayer

Inviato: lun ott 01, 2012 13:44
da Burroughs
414N ha scritto:Ho fatto qualche prova con raismth e mplayer con l'opzione dumpstream, ma quel che si ottiene è un file senza audio contenente neanche il primo minuto del video che si desidera vedere.
Temo quindi che, a meno che tu non usi mplayer per riprodurre il filmato e registri la schermata con un'applicazione tipo recordmydesktop non sia possibile registrare gli stream rai.

Sì, quello che ho notato è che vengono creati due file in /tmp, uno contenente l'audio, l'altro il video della trasmissione.
Con ffmpeg occorrerebbe convertire il file video e poi, con qualche programma di editing, unire i due file, sincronizzando l'audio.
Per quanto riguarda i programma RAI -anche se è da qualche mese che non mi cimento- esistono dei programmi che estraggono il flusso audio/video e ne restituiscono l'URL in mms, ma con RAI Replay temo non ci sia nulla da fare.

Burroughs.

Re: Intercettare stream MPlayer

Inviato: lun ott 01, 2012 15:04
da miklos
Se non mi sbaglio raismith sfrutta una tecnologia Microsoft per lo streaming (maledetta rai) che manda i flussi audio e video tramite due url differenti.
Se ti interessano le url puoi attivare la modalità debug dell'estensione o meglio ancora controllare i processi con

Codice: Seleziona tutto

ps aux | grep mplayer
per vedere la url video e la stessa cosa con faad per la url audio.
per quanto riguarda il salvataggio credo che i due file temporanei creati siano dei file FIFO, in altre parole non registrano l'intero contenuto del file altrimenti ti ritroveresti l'hdd saturo dopo poche ore.

questo pero' ti potrebbe agevolare perchè puoi usarle come input diretto allo stesso mencoder per unire i due flussi in un unico file. dovrebbe bastare un 'semplice

Codice: Seleziona tutto

mencoder -oac copy -ovc copy fileaudio filevideo -o tuo file

tra l'altro mplayer stesso le utilizza allo stesso modo visto che altrimenti vedresti solo il video/sentiresti solo l'audio.

tutto questo pero' prendilo con le pinze perchè non l'ho assolutamente testato.. ricordo pero' di averci giocato un po' anche io con questo raismith tempo fa.

Re: Intercettare stream MPlayer

Inviato: lun ott 01, 2012 15:21
da Burroughs
Grazie, miklos, per le indicazioni.
In effetti i due file, che si trovano nella posizione che ho indicato prima, sarebbero più che utilizzabili (ti ringrazio anticipatamente per avermi spiegato come unirli in uno solo), il problema è che, quando avvio lo streaming con mplayer, questo si arresta dopo qualche minuto e non penso dipenda da problemi di connessione, visto che ho provato sia ieri che oggi, con condizioni di banda nettamente diverse.
Nel frattempo sono riuscito a trovare un URL alternativo della trasmissione, che ho dato in pasto al fido RaiTranslator; quest'ultimo mi dice di aver tradotto correttamente l'URL nel flusso mms, che poi scaricherei con mplayer, ma, purtroppo, nella casella di testo che dovrebbe contenere l'URL (in mms), non compare nulla.
Mah...

Burroughs.

Re: Intercettare stream MPlayer

Inviato: lun ott 01, 2012 15:26
da 414N
Credo sia inutile continuare a cercare un'URL mms:// per gli stream RAI visto il passaggio alla tecnologia Smooth Streaming della Microsoft...

Re: Intercettare stream MPlayer

Inviato: lun ott 01, 2012 23:12
da miklos
ho giocato un po' con l'estensione e ho capito un po' meglio come funziona.
praticamente, come dicevamo anche prima, l'estensione scarica i flussi audio e video in modo separato, secondo una tecnologia Microsoft.
questi due file che si trovano sotto /tmp vengon rimossi non appena l'eseguibile mplayer viene terminato

ora visto che non c'è modo di ricodificare/utilizzare mencoder per motivi di bufferizzazione (mplayer in visualizzazione è piu' lento rispetto a mencoder e quindi l'estensione ha tutto il tempo di continuare a bufferizzare) una possibile soluzione è usare questo semplice trick(basato sul codice di Emanuele)

configura al posto di mplayer uno script fatto in questo modo

Codice: Seleziona tutto

#!/bin/sh

/usr/bin/xterm -e read

in questo modo ottieni un terminale che sta in attesa che tu ci digiti qualcosa dentro.
nel frattempo pero' l'estensione scarichera' gli stream fino al loro completamento col risultato che prima di pigiare qualcosa in questo terminale puoi recuperarti i due file temporanei e unirli altrove con mencoder, avidemux etc etc etc :)

N.B: ho notato che normalmente mplayer viene lanciato col parametro -delay che definisce un certo scostamento audio.. tienilo a mente quando riunisci i flussi per evitare audio non sincronizzato