Registrazione di uno stream su sistemi *nix

Ho avuto l’esigenza di scrivere un veloce script per registrare stream video su sistemi Linux. Lo condivido, a beneficio di chiunque ne abbia bisogno.

Esso si basa sul comando at, che tutti i sistemi Unix ed Unix-like dovrebbero avere, e VLC, il popolare riproduttore multimediale, che può essere usato, tramite il comando cvlc, dalla shell, senza modalità grafica. Se non lo avete, potete installarlo semplicemente tramite apt, yum o qualsivoglia sistema di pacchetti usi la vostra distribuzione.
In particolare il comando:

cvlc [indirizzo stream] --sout='#transcode{vcodec=[codec video],acodec=[codec audio]}:std{access=file,mux=[mux (avi, mp4. mkv, ecc.)],dst=[nome file]}' --run-time=[durata in secondi] --stop-time=[durata in secondi] vlc://quit

permette la registrazione di un dato stream, per un totale di secondi, personalizzando codec da usare e nome del file.

Qui il tutto è inserito in uno script per shell, che prende come argomenti l’indirizzo dello stream, il tempo di registrazione, il nome del file e l’orario d’inizio. In questo caso i codec sono già impostati (video MP4 ed audio MP3):

#!/bin/sh
bold=$(tput bold)
norm=$(tput sgr0)
echo "${bold}Recorder Script v1.0${norm} - R.S. 2017-06-07"
if [ -z "$1" -o -z "$2" -o -z "$3" -o -z "$4" ]; then
echo 'Utilizzare la seguente sintassi: "./recorder.sh [indirizzo stream] [tempo di registrazione in secondi] [nome della registrazione] [orario registrazione]"'
else
echo "${bold}Stream:${norm} $1"
echo "${bold}Durata:${norm} $2""s"
echo "${bold}Nome file:${norm} $3"".mp4"
echo "${bold}Orario di inizio:${norm} $4"
rec="cvlc $1 --sout='#transcode{vcodec=mp4v,acodec=mp3}:std{access=file,mux=mp4,dst=$3.mp4}' --run-time=$2 --stop-time=$2 vlc://quit"
echo "${bold}Comando:${norm} echo $rec | at $4"
echo "$rec" | at "$4"
echo "${bold}Registrazione impostata.${norm}"
fi

Potete fare copia/incolla nel vostro editor di testo preferito, e poi salvare il tutto come preferite (io l’ho chiamato recorder.sh, ma il nome non influisce sul funzionamento).

Lo script funziona anche su sistemi Mac che hanno installato VLC. Logicamente, non esistendo il comando cvlc sui computer della Mela morsicata, dovrete sostituirlo con “/Applications/VLC.app/Contents/MacOS/VLC -I rc”, che permette di eseguire VLC in riga di comando. Sui Mac bisogna poi abilitare il comando at, eseguendo “sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.atrun.plist” nel Terminale.

Qui trovate una lista approfondita di sintassi accettate da at, che potrete utilizzare come variabili temporali per indicare l’inizio della registrazione.

Ovviamente non mi assumo alcuna responsabilità derivante dal vostro uso del contenuto di questa pagina, lo script è liberamente disponibile e modificabile da parte vostra.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *