DVR.
Curriculum Ensayos Recursos
Principal Arriba |
Convirtiendo un beige mac en un DVR.
Como programa de captura estaba pensando en HackTV Carbon, un programa de ejemplo de Apple, este programa sin embargo tenia dos deficiencias:
Probando diferentes formatos de compresión al final decidí usar MPEG-4 para vídeo y AAC para audio, el codec 3ivx dio los mejores resultados, con un tamaño de 320x240 se crea vídeo comparable a VHS y se usa cerca de 700MB/hora. Como alternativa al uso de la videocámara, compre un adaptador XLR8 Interview 3.0, el cual es un dispositivo USB-1, el cual captura vídeo, pero no audio, en este caso se debe usar la entrada de audio-in para capturar el sonido. Este dispositivo captura a 320x240 que es el tamaño que quería. El XLR8 viene con un programa llamado USBVision, este programa parece ser una versión extendida de HackTV, de hecho comparte las preferencias, y soluciona los dos problemas anteriormente nombrados de HackTV, es posible controlar la grabación con Applescript y tiene la opción de renombrar automáticamente los archivos de captura. A pesar del nombre, USBVision también puede capturar desde la videocámara usando Firewire, otra razón para pensar que esta basado en HackTV. Como codec de captura el programa trae un codec llamado también USBVision, usando este codec se usa 4GB/hora. Como ahora el mac va a ser usado con una TV, añadí una caja AVerKey100 Pro, la cual convierte la salida VGA en Composite Video o S-Video. Encontré el programa cscreen que permite cambiar la resolución a 640x480, la cual se ve bien en TV. Revisando información en el internet acerca de similares sistemas encontré a MythTV, el cual es un sistema mucho mas ambicioso que lo que yo quería, sin embargo había un link acerca de como controlar una caja de DirecTV usando una conexión serial, ya que soy subscriptor de DirecTV, decidí probar el programa llamado Sony.pl, prefiriendo Python a Perl, convertí al programa en uno llamado setDTV.py. Una vez armado todos los dispositivos se tiene:
Para la videocámara, solo se conecta al Firewire en lugar del USB y no se necesita la entrada Audio-In. Mi caja DirecTV usa un conector estandart DB-9 para la entrada serial, por lo que use un adaptador mini DIN a DB-9:
Al comienzo usé unos pocos applets para controlar la grabación, era necesario poner al applet como un Programa de Arranque y luego ajustar la hora a la cual se prendería el mac, era obviamente una gran cantidad de trabajo manual, por lo que decidí crear un programa para controlar usando Applescript a los demas programas. Decidí crear el programa con Applescript Studio, siendo también una oportunidad para aprenderlo, ya que era la primera vez que usaba este ambiente, aunque claro ya tenia experiencia con simples applets creados con Script Editor. Una extra objetivo era tratar de prender y apagar los equipos (mac y DirecTV) automáticamente, ya que el mac usa cerca de 40W, y el DirecTV como 24W, es claro que no necesito mantenerlos siempre activos, ninguno de los dos equipos tiene una modalidad de sleep que podría haber sido la alternativa. Para esto conecte un cable a la salida de poder del monitor del mac, y a esta conecte el adaptador de poder de la caja AverKey y un enchufe extra para conectar la caja DirecTV, por tanto ahora cada vez que se prende el mac, prende ademas a los dos cajas. Revisando la documentación de Apple, cree un programa llamado powerOn para encolar la prendida automática del mac y las dos cajas. El programa TV Cron, pues maneja a:
Los otros programas, cscreen, powerOn y setDTV.py también deben copiarse al directorio /usr/local/bin, el programa espera encontrarlos en ese directorio. Al final el programa TV Cron efectúa:
Pero adicionalmente se debe poder editar los archivos capturados, ademas encontré un problema al comprimir los archivos, el sonido se desincronizaba cerca de un segundo cada hora, esto dio lugar a un grupo de applescripts, para ser usados desde el Script Menu con QuickTime Player Pro, los que mas uso son:
N.B.: Los gráficos de esta pagina fueron creados usando SqueakLand.org, el cual es un paquete pre-cargado de Squeak para uso de escuelas, se usa como una aplicación normal, publicando proyectos (archivos con extensión .pr) localmente o en la red, ademas de herramientas de dibujo y presentación viene con una forma de programar gráfica llamada EToys, útil para enseñar programación a niños. |