Tríptico de video y pis de frambuesa

Fernando Román
Fernando Román

Cineasta amigo de [Thomas] mencionó que le gustaría mostrar un tríptico en el Venice Art Walk 2015. Este no es un tríptico ordinario con un marco para tres imágenes, es un tríptico de video, con tres pantallas cada una mostrando un video diferente, y todo en sincronía. Suena como un desafío de ingeniería genial, ¿verdad?

Los componentes electrónicos utilizados en la construcción fueron tres Raspberry Pi 2 y un trío de pantallas HDMI. La energía es proporcionada por un interruptor de 12V, 10A con convertidores de paso de 5V para el Pis. El chasis es un conjunto de barras de aluminio y un canal en U encerrado en un marco de estilo artístico y artesanal extremadamente bien hecho. Hasta ahora nada extraordinario.

Poner tres monitores y tres Pis en un marco no es la parte difícil de esta construcción; obtén tres pantallas diferentes que muestran diferentes videos. Para esto, [Thomas] interconectó el Pis a través de un concentrador Ethernet, consiguió que los videos se reprodujeran de forma independiente en un disco RAM con un omxplayer. Uno de los Raspberry Pis actúa como maestro, ordenando a los esclavos que inicien, detengan y rebobine el video. De acuerdo a [Thomas], es una solución algo difícil con muchas declaraciones de suspensión al principio del script para permitir que finalicen los procesos de inicio. Sin embargo, es una buena construcción, y si alguna vez necesitas controlar varios monitores para mostrar lo mismo, así es como lo haces.

  • Deqing dice:

    Porque los comandos son tan simples.
    ¿Por qué no usar GPIO para comunicarse? ¡Salva el centro!

    • Shannon dice:

      ¿Quizás solo en caso de que desee cambiar el video, por lo que solo necesita cambiarlo en un lugar?

      • Thomas Hollier dice:

        Sí, lo consideré, pero como necesitaba el concentrador para interconectar las máquinas de todos modos, decidí usar el concentrador también para OSC, ya que parecía más simple tanto desde el punto de vista del cableado como del scripting. De hecho, en teoría, NO tuve que interconectar las máquinas para el producto final, pero mientras lo ensamblaba, necesitaba la capacidad de iniciar sesión constantemente en las tres máquinas para ajustar el sistema operativo y el script principal. Además, un centro económico cuesta menos de $ 10, por lo que no parece que haya arruinado el banco.

  • Consejos de Fedora dice:

    ¿Un desafío de ingeniería? Podría hacer esto con un script bash y ntp.

    Solo digo

  • domgdavis dice:

    ¿Podría hacerse esto con una pantalla y tal vez pueda cambiar a diferentes videos que se reproducen al mismo tiempo?

  • Que no dice:

    Estoy asombrado e impresionado por la falta de comentarios provocada por el título de esta publicación.
    HaD es una presencia completamente única en Internet, al parecer.

    • Millas dice:

      ¿Debería ser “Raspberry Piss” tal vez?

      • Que no dice:

        No importaba en la mayoría de los otros sitios cuánto tenía. ¿Pero tal vez soy demasiado negativo?

  • plomo ácido44 dice:

    Lástima que no parece ser un video. No sé el efecto que están tratando de lograr. Supongo que no entiendo la necesidad de la “sincronización perfecta”. Probablemente tenga más sentido si lo veo en acción. Bellamente hecho en ambos sentidos. El marco conecta todo perfectamente.

  • ardilla radiactiva dice:

    Estoy realmente decepcionado de mí mismo porque tuve que averiguar qué era incluso eso: /

    De todos modos, ¿tal vez no soy el único?

    • En pie dice:

      No eres el único, gracias.

  • Chris C. dice:

    “Para evitar leer continuamente desde la tarjeta SD, creé un disco RAM para que mi guión pudiera copiar el archivo de la película y permitir que omxplayer se reprodujera desde allí”.

    Curioso por qué se hizo esto. La lectura de la tarjeta SD provoca un desgaste mínimo, o nulo, si desactiva una actualización de la marca de tiempo “último archivo accedido”. Quizás el acceso a SD causó problemas de tiempo.

    • Thomas Hollier dice:

      De hecho, no sabía que leer la tarjeta SD causaba un desgaste mínimo. Creo que es un reflejo del uso de discos duros. Quería hacer todo lo posible para asegurarme de que esto siguiera funcionando sin problemas. Además, como supones, una vez tuve algunos problemas de tiempo y quería eliminar el acceso a SD de la ecuación.

      • Chris C. dice:

        Puedo entender la eliminación de todas las posibles fuentes de un problema. Habiendo hecho algo similar, sé que su proyecto parece más fácil de lo que era. Comandos caídos con experiencia en otro jugador / plataforma de respaldo, variaciones en el tiempo que el jugador necesita para jugar, retrasos en el envío de comandos a través de TCP / IP debido al algoritmo de Nagle, etc.

        • Thomas Hollier dice:

          Ciertamente no lo llamaría “perfecto”. Sin duda, es más que “encenderlo lo suficientemente bien como para lograr su objetivo en un corto período de tiempo”. Diría que la mayor debilidad de mi conocimiento es que controlo omxplayer a través de pexpect para imitar los comandos del teclado. Ojalá hubiera una forma API más directa de controlarlo. Además, aunque omxplayer reproduce las películas de manera muy eficiente, la búsqueda, el rebobinado y otros movimientos del “cabezal de reproducción” alrededor del archivo son un poco difíciles. Miré otras opciones y parece que algunas personas han compilado VLC acelerado por hardware en cero, pero eso fue demasiado para mí en el poco tiempo que tuve para lograrlo.
          También exploraré formas de reducir los retrasos de TCP / IP, gracias por el consejo al respecto.

          • Chris C. dice:

            Estaba trabajando en una interfaz de reproductor que podría conectarse entre muchas computadoras para que los distintos MPC de mi casa pudieran reproducir lo mismo en varias habitaciones. Para evitar un sonido “eoon” entre las cámaras, la sincronización debe ser mejor que los límites del Efecto Haas (también conocido como Efecto de precedencia), que generalmente se considera entre 25 y 35 ms. Aunque descubrí que todavía escuchaba eo hasta que reduje esos límites a la mitad, lo cual fue difícil de lograr, considerando tanto los diferentes retrasos de las conexiones inalámbricas como los límites de un juguete trasero.

            Noté que dijiste que estabas mirando, y podrías evitarlo. Todos los fondos de juego que he probado buscarán solo un fotograma clave, que dependiendo del formato y las opciones de codificación pueden tener varios segundos de diferencia. Aunque en su caso, usted es el creador del video, por lo que, en teoría, podría codificar todos los videos para que sean 100% fotogramas clave.

            VLC tiene una API nativa, al menos en Windows (mi sistema operativo de destino), probablemente también en Linux. Aunque solo informa una posición cada 0.1s, lo cual fue difícil de interpolar con la precisión requerida, y pasé una semana tratando de recompilarlo sin siquiera acercarme al éxito. Actualmente estoy usando MPlayer, que puedo modificar para obtener la precisión requerida cambiando un solo byte en el ejecutable con un editor de cursor. Está controlado por secuencias estándar, como la entrada de teclado simulada; lo cual no es ideal, pero con un poco de experimentación descubrí cómo dominarlo adecuadamente sin perder comandos.

            Estaré encantado de ayudarte con cualquier pregunta o problema, ya sea aquí o si puedo hacerme amigo de ti en Facebook.

  • svofski dice:

    Lo habría expuesto con Chelsea Girls, solo para hacer enojar a la gente.

  • Greger Stolt Nilsen (@gregersn) dice:

    Muy linda construcción. Solo quería compartir que mplayer puede sincronizar el juego a través de una red.
    http://www.mplayerhq.hu/DOCS/HTML/en/networksync.html

    • Thomas Hollier dice:

      Muchas gracias por el consejo. Investigaré eso con seguridad.

  • thomashollier dice:

    Para su información, volví a implementar el programa de control de reproducción de C ++ con openframeworks. Es mucho más duradero y sencillo de sintonizar.
    https://github.com/thomashollier/triptych

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *