You are here: Home>Blog>BlogPost>Streaming_video_e_backup_locale_del_flusso_video (22 Oct 2012, GuidoBrugnara)Edit Attach

Streaming video e backup locale del flusso video

22 Oct 2012 - 05:09:51 by Guido Brugnara in Interesting

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 ...

Comments (edit)

IreneBrugnara - 26 Oct 2012:

Provato e ha funzionato al primo tentativo smile


 

Topic revision: r1 - 22 Oct 2012, GuidoBrugnara
This site is powered by FoswikiCopyright (©) Leader.IT - Italy P.I. IT01434390223 Privacy policy & use of cookies