Teknik^tDR
Versió 3.x!

Veure pel·lícules en xarxa amb l’Apple TV

 
per teknik el 7 Abril 2010 | Hacking, Mac

Aquest article ha estat com a esborrany al blog durant força temps (crec que uns 6 mesos!). Crec recordar que no l’havia publicat perquè abans volia publicar un sobre com aplicar un patchstick per poder obtenir accés al dispositiu (per exemple amb SSH!), o per poder muntar unitats de xarxa amb AFP o SMB. També faltaria explicar com muntar les unitats de xarxa…

Com que ara tinc l’Apple TV actualitzat a “Take Three” (concretament 3.0.2) i en breu vull publicar un article sobre com aplicar el patchstick, el publicaré tal qual. Comencem!


Un cop fet això ens podem topar amb un problema, i és que si fem servir la Wi-Fi per accedir a les carpetes compartides ens trobem que en escenes amb una mica de moviment el vídeo es quedi “clavat”. Això és degut a dos factors:

  • quan hi ha molt moviment, o molt detall a l’escena, el codificador necessita utilitzar més ample de banda per codificar les imatges, o sigui, més bytes,
  • la configuració de xarxa no és precisament òptima, i per tant no es pot transmetre el màxim d’informació esperat.

Al combinar-los tenim que quan hi ha molt moviment augmenta l’ample de banda a transmetre, i com la xarxa no rendeix prou be es col·lapsa, deixant al reproductor sense informació que reproduir. Això es podria solucionar de tres formes:

  • fent que el reproductor fos conscient que està fent servir la xarxa per passar les dades, o sigui, fent streaming,
  • reduint el tamany de les dades (idealment recodificant al vol, possiblement a bitrate constant),
  • o be, senzillament millorant l’eficiència de la xarxa, cosa que vaig trobar com fer-ho a l’Apple TV al següent enllaç: Optimize network throughput on your Apple TV.

Bàsicament, el que veiem a l’últim punt és que hem de crear un fitxer sysctl.conf amb el següent contingut:

kern.ipc.somaxconn=512
net.inet.tcp.mssdflt=1460
net.inet.tcp.sendspace=98304
net.inet.tcp.recvspace=98304
kern.ipc.maxsockbuf=1048576
net.inet.udp.maxdgram=57344
net.inet.udp.recvspace=42080
net.local.stream.sendspace=98304
net.local.stream.recvspace=98304
net.inet.tcp.delayed_ack=0
net.inet.tcp.rfc1323=1
net.inet.tcp.rfc1644=1
net.inet.tcp.newreno=1

i aleshores el pujem amb scp a l’Apple TV (lògicament hem d’haver habilitat SSH a l’Apple TV!). L’hem de posar a /etc/sysctl.conf. Per finalitzar, reiniciem l’Apple TV, o be apagant-lo o be des de la pròpia consola amb SSH amb sudo reboot.

Respondre