Videos à distância
Fui assistir a um filme que baixei em um HD externo conectado ao meu notebook mais velho.
Normalmente eu ligo esse HD diretamente na Televisão, mas dessa vez eu não podia ejetar o HD, pois
ele estava sendo usado por outros programas.
Então me vi numa situação com duas alternativas: assistir o filme na telinha de 14" ou arranjar um
jeito de fazer streaming do vídeo para meu notebook novo, que possui saída HDMI, e aproveitar toda a
qualidade de som e imagem que a LG™ proporciona.
Como bom computeiro cinéfilo (não sou), escolhi a segunda opção e vou escrever aqui como resolvi o problema naquela hora bem como outros métodos que eu descobri depois.
1. Coloque os computadores em rede
Eu estava sem um roteador para poder fazer uma rede. Como ambos notebooks possuem placas wireless, criei uma rede rede Ad-Hoc, como explicado neste post (sem a parte da internet).
2. Arranje algum jeito de trocar arquivos
Existem várias maneiras de enviar pacotes de um computador para outro na rede:
-
SSH
SSH foi a primeira coisa que veio em mente por estar acostumado. Admito que não é uma solução muito boa, pois consome muita CPU e aumenta o tráfego da rede desnecessariamente (não existe motivo de usar criptografia a não ser que você seja paranoico ou o vídeo seja extremamente secreto). De qualquer forma, funcionou bem da seguinte maneira:
-
Instale e ative o SSH em ambos os computadores:
sudo pacman -S openssh sudo /etc/rc.d/sshd start
-
Conecte o Computador2 ao Computador1 por ssh:
ssh julio@192.168.1.1
-
Reproduza o vídeo
mplayer video.avi -display :0
ou
export DISPLAY=:0
caso precisemos utilizar algum outro programa que não possui um comando para mudar o display.
-
-
SSH com pipe
Como no modo anterior, mas redirecionando o vídeo direto para o mplayer
ssh julio@192.168.1.2 "cat /media/externo/Videos/video.avi" | mplayer -cache 65536 -
-
SSHFS
-
Instale o sshfs
sudo pacman -S sshfs
-
Monte o sistema de arquivos
sshfs julio@192.168.1.2:/media/externo /media/externo
-
Vá até a pasta e reproduza o vídeo com o
mplayer
como se fosse um arquivo local.mplayer /media/externo/Videos/video.avi
-
-
SSH com X11
-
Altere, no servidor, o arquivo
/etc/ssh/sshd_conf
de#X11forwarding no
para
X11Forwarding yes
ou, no cliente, edite o /etc/ssh/ssh_config de
#ForwardX11 no
paraForwardX11 yes
. -
Reproduza o vídeo com o
mplayer
ssh -XY julio@192.168.1.2 mplayer /media/externo/Videos/video.avi
-
-
Samba
-
Baixe o Samba
-
Ative o compartilhamento da sua pasta de vídeos
# vim /etc/samba/smb.conf [videos] comment = Videos do Julio path = /media/externo/Videos writable = no valid users = julio follow symlinks = yes wide links = yes
-
Monte o sistema de arquivos
sudo mount -t cifs //192.168.0.1/Videos /media/externo/Videos -o user=julio,password=PASSWORD,workgroup=WORKGROUP
-
Reproduza o vídeo com o mplayer como se fosse um arquivo local
mplayer /media/externo/Videos/video.avi
-
-
Netcat
-
No computador com o vídeo:
cat /media/externo/Videos/video.avi | nc -l -p 9998
-
No computador ligado à TV:
nc 192.168.0.1 9998 | mplayer -vo x11 -cache 3000 -
-
-
VLC com sftp
file
»Open Network…
sftp://julio@10.211.55.3/media/externo/Videos/video.avi
Digite login e senha
3. Converter
Na rede de casa eu consegui fazer streaming de vídeo 720p sem problemas, mesmo com o meu computador antigo usando wi-fi antigo (802.11g). Porém se você quiser fazer o mesmo com vídeo 1080p ou até mesmo fazer streaming pela internet, pode ser interessante converter o vídeo em tempo real. Para isso você pode usar o ffmpeg.
Evitar standby
Para evitar que o monitor do computador ligado à Televisão seja desligado automaticamente por
inatividade, podemos desativar o standby pelo Xorg
:
sudo vim /etc/X11/xorg.conf
E deixar a sessão ServerLayout
como no exemplo abaixo:
Section "ServerLayout"
Identifier "Layout"
Screen 0 "Screen0"
Option "Xinerama" "true"
Option "BlankTime" "0"
Option "StandbyTime" "0"
Option "SuspendTime" "0"
Option "OffTime" "0"
EndSection