Ci ho perso un po' di tempo anche io. Mi sono fatto stampare le opzioni che l'estensione passa ai due lettori, video (mplayer) e audio (faad). Ovviamente i nomi dei file sono temporanei:
- audio
Codice: Seleziona tutto
/tmp/3704440000000.aac.tmp -l 2 -s 48000 -a /tmp/3704440000000.aac.aac
- video
Codice: Seleziona tutto
-stop-xscreensaver -nokeepaspect -noconsolecontrols -aspect 16:9 -mc 0 -delay 0.629 -audiofile /tmp/3704440000000.aac /tmp/3704440000000.264
Il dumpstream di mplayer fallisce per un motivo ben preciso, ovvero perché mplayer consuma subito il file: non si accorge che questo si ingrandisce man mano. Infatti il dump lo fa però il video è di pochi secondi.
Saputo questo, ho modificato lo script di sopra in questo modo:
Codice: Seleziona tutto
#!/bin/sh
video_file=$(echo $* | sed 's/.* \([^ ]*\) */\1/')
option=$(echo $* | sed "s;$video_file;;")
audio_file=${video_file%.*}.aac
#/usr/bin/xterm -e /usr/bin/mplayer -cache 8192 $*
/usr/bin/xterm -e "tail -f -n +0 $video_file | mplayer -cache 8192 -dumpstream -dumpfile /tmp/video.dump $option -"
che però, purtroppo, non fa il dump dell'audio. In pratica è come quello scritto da miklos, solo che adesso il video lo si trova sotto '/tmp/video.dump' e, cosa più importante, si riesce a capire quando mplayer ha finito perché si vede che il dump si blocca.
Il video in questione (la rai aumenterà lo stipendio di Albero Angela quando vedrà quanti download stiamo facendo
) è diviso in 5 spezzoni, però anche raismth lo nota. Io ho fatto un po' di prover sul primo, che dura circa 5 minuti. Quindi, teoricamente, se riuscissimo ad avere il dump corretto sia dell'audio che del video, basterebbe fare lo stesso lavoro con tutti e 5 gli stream.
Seguendo l'idea dello script, si può mandare in esecuzione (notate la variabile audio_file) anche altri programmi oltre a mplayer. Ho provato con mencoder, però si pianta tutto quando lo stream finisce e non riesco a fermarlo se non killandolo con SIGTERM. Inoltre con l'opzione 'delay' non ci mette l'audio, senza l'audio è sfalsato. Si potrebbe pensare anche a ffmpeg, però c'è il problema del 'delay' che RAISMTH passa a mplayer per sincronizzare l'audio.
Io credo che il problema sia l'audio, poiché è un ac3. Si potrebbe provare a convertire l'audio in mp3 (o wav) prima di eseguire mplayer per vedere se passandogli l'audio in un altro formato il dumpstream effettua il dump anche dell'audio...boh.
Ora sono troppo stanco per provare, ma spero che questo post stuzzichi la fantasia,
Emanuele