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 direto 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 wifi 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