GNU/Linux >> Tutoriels Linux >  >> Linux

Canaliser le périphérique vidéo via SSH ou tcptunnel ?

Vous pouvez utiliser netcat.

cat /dev/video0 | nc -l 1234

Cela ouvrira un serveur sur un hôte écoutant sur le port 1234 et l'envoi de données non compressées et non chiffrées depuis /dev/video0 à tout client qui se connecte. Vous pouvez recevoir les données sur un autre hôte en invoquant :

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

videohost est l'hôte qui envoie les données depuis /dev/video0 .


La solution netcat n'a pas fonctionné pour moi. Il affiche soit une erreur de canal, soit cat rapport Invalid input .

C'est la seule solution qui a fonctionné pour moi :

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

Cela a l'avantage d'être encodé, ce qui vous permet d'économiser de la bande passante en prime.

Combinez avec tee et vous pourrez regarder et enregistrer en même temps :

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

Cela ouvrira mplayer pour la diffusion en direct et l'enregistrera dans un fichier contenant la date et l'heure actuelles en même temps (exemple de nom de fichier :2018-11-22_01-22-10_recording.mkv ).

Remplacer -f matroska avec -f avi pour utiliser le format avi plus compressé. Cela permettra d'économiser beaucoup de ressources CPU sur la source et beaucoup de bande passante pour une expérience sans décalage.


Je vous déconseille sérieusement cela. J'ai récemment essayé de diffuser des vidéos avi via un accès au fichier ssh:// et c'est douloureux. Vous devez vous rappeler que la vidéo est cryptée puis décryptée au cours de ce processus.

Si votre ordinateur ne peut pas gérer la compression du flux, il ne pourra certainement pas gérer son chiffrement.

Vraiment, vous voulez juste avoir un tunnel tcp pour les données brutes :

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


Linux
  1. Linux :Différence entre /dev/console , /dev/tty et /dev/tty0 ?

  2. Quelle est la portabilité de /dev/stdin, /dev/stdout et /dev/stderr ?

  3. Comment encoder en base64 /dev/random ou /dev/urandom ?

  4. Quand dois-je utiliser /dev/shm/ et quand dois-je utiliser /tmp/?

  5. Linux :Différence entre /dev/console , /dev/tty et /dev/tty0

Comment mapper les périphériques /dev/sdX et /dev/mapper/mpathY à partir du périphérique /dev/dm-Z

Utiliser un appareil via SSH ?

DD de /dev/zero à /dev/null...ce qui se passe réellement

Comment Linux utilise /dev/tty et /dev/tty0

À quoi sert `/dev/console` ?

Créer un périphérique de bloc virtuel qui écrit dans /dev/null