Puis-je canaliser / dev / video sur ssh

J'ai deux ordinateurs, un bureau dans mon bureau (avec une webcam attachée) et un ordinateur portable ailleurs sur le réseau.

Habituellement je jette un oeil à mon bureau à travers ma webcam en courant

ssh Office -Y "mplayer tv://device=/dev/video0" 

de mon ordinateur portable. Je n'aime pas mplayer Xforwarding, alors pourquoi ne puis-je tunnel /dev/video sur mon pc en exécutant ceci sur mon ordinateur portable?

 sudo mkfifo /dev/video1 ssh Office 'dd if=/dev/video' | sudo dd of=/dev/video1' 

et puis pour regarder la webcam (sur mon ordinateur portable )

 mplayer tv://device=/dev/video1 

Quelque chose comme:

 dd if=/dev/video0 | mplayer tv://device=/dev/stdin 

travaille pour moi (SOA # 1) localement. Ainsi fait:

 ssh localhost dd if=/dev/video0 | mplayer tv://device=/dev/stdin 

Aussi bien que

 mkfifo test dd if=/dev/video0 of=test & mplayer tv://device=test 

Par conséquent:

  1. Essayez sans tuyau nommé
  2. Vérifiez la bande passante

Aussi – comment ne fonctionne pas (affichage écran noir, se plaint d'un périphérique inconnu, etc.)?

Si vous avez une faible bande passante, je recommand la compression du stream video:

 ssh USER@REMOTEHOST ffmpeg -an -f video4linux2 -s 640x480 -i /dev/video0 -r 10 -b:v 500k -f matroska - | mplayer - -idle -demuxer matroska 

  • -an désactive l'enencoding audio. Si vous voulez de l'audio, remplacez -an par -f alsa -ac 1 -i hw:3 (où hw: 3 pourrait aussi être hw: 0 ou hw: 1, … Voir arecord -l pour votre appareil). Si vous ne voulez que de l'audio (pas de video), utilisez ceci )
  • -s 640x480 est la taille de votre video en dimension x et y
  • -r 10 est le nombre d'images que vous voulez recevoir (inférieur rend de meilleures images à faible débit, mais semble plus bumby)
  • -b:v 500k est un bitrate de 500 kilobit / s

Vous avez besoin de ffmpeg sur l'hôte distant et mplayer sur la machine locale installée.

Le projet VideoLAN existe en grande partie pour faire exactement ce que vous désirez.

Je n'ai pas utilisé ses capacités de streaming, mais dans son utilisation de la machine unique, il a montré pour être solide comme un roc pour moi.

Je ne sais pas s'il y a une raison pour laquelle vous ne pouvez pas le faire, mais un problème que je vois avec votre implémentation est que le système distant cherchera / dev / video1 sur son système, mais ne pourra pas le find car vous l'avez créé sur votre système local.

Ce que je ferais est quelque chose le long de ce qui suit

 nc -l 12345 | sudo tee /dev/video > /dev/null & ssh Office 

puis essayez quelque chose en lui disant d'aller sur le port TCP 12345 de votre système local.