Streaming video e backup locale del flusso video
Premessa
Partendo dall'ottimo e semplice articolo
http://en.flossmanuals.net/ogg-theora/live-streaming/ffmpeg2theora è possibile in pochi minuti installare un sistema di streaming audio/video da telecamera dotata di interfaccia DV (firewire 1394).
Nel citato articolo si suggerisce di utilizzare il seguente script:
sudo dvgrab --format raw - \
| ffmpeg2theora -a 0 -v 5 -f dv -x 320 -y 240 -o /dev/stdout - \
| oggfwd icecastserver 8000 pwd /theora.ogv
Si tratta di una serie di comandi tra loro collegati in pipe che elaborano il flusso audio/video; dalla sorgente firewire, passando per un convertitore di formato e per essere infine inviato al server per la diffusione.
L'esigenza era però di effettuare anche il salvataggio del flusso audio/video in locale.
L'idea è di intercettare il flusso audio/video per salvarlo in locale.
Soluzione
#!/bin/bash
HMS="$(date +%H-%M-%S)"
NAME="my_test_video"
dvgrab --format raw - \
| tee >(split -d -a3 -b680MB - ${NAME}_${HMS}_) \
| ffmpeg2theora -a -1 -v 3 -f dv -x 320 -y 240 -o /dev/stdout - \
| oggfwd icecastserver 8000 pwd /$NAME.ogv
Come potete notare si è fatto uso dei ben noti comandi
tee e
split.
In tal modo vengono salvati spezzoni della dimensione di 680Mbyte che si possono copiare su CD.
Ovviamente la dimensione può essere adattata a piacimento.
Il taglio del flusso non coincide però con il singolo frame, ma per uso amatoriale l'errore è trascurabile.
Se vi fosse la necessità di effettuare il montaggio di una parte a cavallo dei due spezzoni potete semplicemente accodarli per poi elaborarli:
cat my_test_video_22-30-18_005 my_test_video_22-30-18_006 my_test_video_22-30-18_007 >my_test_video_22-30-18_005-007.dv
Buona registrazione ...
IreneBrugnara - 26 Oct 2012:
Provato e ha funzionato al primo tentativo