GNU/Linux >> Linux Esercitazione >  >> Linux

Piping del dispositivo video su SSH o tcptunnel?

Puoi usare netcat.

cat /dev/video0 | nc -l 1234

Questo aprirà un server su un host in ascolto sulla porta 1234 e l'invio di dati non compressi e non crittografati da /dev/video0 a qualsiasi client che si connette. Puoi ricevere i dati su un altro host invocando:

nc videohost 1234 | mplayer tv://device=/dev/stdin

dove videohost è l'host che invia i dati da /dev/video0 .


La soluzione netcat non ha funzionato per me. Mostra un errore pipe o cat segnalazione Invalid input .

Questa è l'unica soluzione che ha funzionato per me:

ssh [email protected] "ffmpeg  -r 14 -s 640x480 -f video4linux2 -i /dev/video0 -f matroska -" | mplayer - -idle

Questo ha il vantaggio di essere codificato, quindi risparmi larghezza di banda come bonus.

Combina con tee e puoi guardare e registrare allo stesso tempo:

ssh [email protected] "ffmpeg  -r 14 -s 640x480 -f video4linux2 -i /dev/video0 -f matroska -" | tee $(date +%Y-%m-%d_%H-%M-%S)_recording.mkv | mplayer - -idle

Questo aprirà mplayer per lo streaming live e lo salverà in un file contenente la data e l'ora corrente allo stesso tempo (esempio nome file:2018-11-22_01-22-10_recording.mkv ).

Sostituisci -f matroska con -f avi per utilizzare il formato avi più compresso. Ciò farà risparmiare molte risorse della CPU sulla sorgente e molta larghezza di banda per un'esperienza più priva di ritardi.


Ti consiglierei seriamente di non farlo. Di recente ho provato lo streaming di video avi su un accesso al file ssh:// ed è doloroso. Devi ricordare che il video viene crittografato e quindi decrittografato durante questo processo.

Se il tuo computer non è in grado di gestire la compressione del flusso, sicuramente non sarà in grado di gestirne la crittografia.

Davvero vuoi solo avere un tunnel tcp per i dati grezzi:

http://www.vakuumverpackt.de/tcptunnel/


Linux
  1. Come mappare il dispositivo /dev/sdX e /dev/mapper/mpathY dal dispositivo /dev/dm-Z

  2. Come codificare in base64 /dev/random o /dev/urandom?

  3. Quando dovrei usare /dev/shm/ e quando dovrei usare /tmp/?

  4. kernel:disabilitare /dev/kmem e /dev/mem

  5. È sbagliato collegare /dev/random a /dev/urandom su Linux?

Utilizzare un dispositivo su SSH?

DD da /dev/zero a /dev/null... cosa succede realmente

Linux:differenza tra /dev/console , /dev/tty e /dev/tty0

Come Linux usa /dev/tty e /dev/tty0

echo o print /dev/stdin /dev/stdout /dev/stderr

Perché sono necessari < o > per usare /dev/tcp