< Return to Video

Tutorial: Cómo convertir un sketch de Processing en un video

  • 0:01 - 0:02
    ¡Hola! y Bienvenidos
  • 0:02 - 0:04
    en este video te enseñaré
  • 0:04 - 0:05
    como coger un sketch de Processing
  • 0:05 - 0:07
    y hacerlo una película.
  • 0:07 - 0:10
    Esto sale mucho así que quizá hay
    varias formas que puedes hacerlo
  • 0:10 - 0:13
    te voy a enseñar una técnica particular
    que espero te sea útil
  • 0:13 - 0:16
    así que voy a tomar esto arbitrariamente
  • 0:16 - 0:19
    es uno de mis ejemplos de mi material
    "Nature of code".
  • 0:20 - 0:23
    Es un código de simulación llamado
    "El juego de la vida"
  • 0:23 - 0:28
    Un sistema celular autómata.
    (chiste sobre Tom Atta).
  • 0:28 - 0:31
    Y es solo una animación arbitraria
  • 0:31 - 0:35
    pero cualquier cosa, cualquier cosa que
    dibujes en la pantalla en Processing
  • 0:35 - 0:38
    puedes hacerlo un archivo de video
  • 0:38 - 0:39
    ¿Por qué hacer esto?
  • 0:39 - 0:40
    Hay muchas razones:
  • 0:40 - 0:44
    Una es que quizá quieras subir algo a
    Vimeo o Youtube o algún otro
  • 0:44 - 0:47
    sitio para hospedar un video
  • 0:47 - 0:50
    quizás quieras llevar esto a otro proyecto
  • 0:50 - 0:53
    estás trabajando en animación y en
    algo como After Effects
  • 0:53 - 0:56
    y quieres tener algunos elementos
    que has programado ahí.
  • 0:56 - 1:00
    Voy a intentar incluir algunos ejemplos de
    personas que han hecho esto
  • 1:00 - 1:02
    abajo en el cuadro de Youtube
  • 1:02 - 1:06
    Quizá quieras tomar lo que estás haciendo
    e incorporarlo en otro proyecto en video.
  • 1:06 - 1:09
    Otra cosa que puede ser de hecho,
    es que lo que hiciste es hermoso
  • 1:09 - 1:12
    pero corre increíblemente lento
  • 1:12 - 1:14
    y tú quieres que corra en tiempo real
  • 1:14 - 1:17
    para que puedes hacerlo video para que
    pueda verse a 30 fps
  • 1:17 - 1:21
    y se reproduzca como una instalación
    o lo que sea que estés haciendo.
  • 1:21 - 1:24
    Así que veamos como puedes hacer esto.
  • 1:24 - 1:28
    Hay un montón de pasos
    y voy a intentar pasar por ellos
  • 1:28 - 1:29
    (Risa)
  • 1:29 - 1:31
    La primera cosa que voy a mostrarte
  • 1:31 - 1:34
    y sabes que esta letra es
    notoriamente pequeña
  • 1:34 - 1:37
    déjame mostrarte en Processing 3
    puedo ir a las preferencias
  • 1:37 - 1:39
    voy a cambiar la letra del editor a 36
  • 1:40 - 1:41
    y creo que va a ser un poco mejor.
  • 1:41 - 1:43
    Ojalá puedes verla
  • 1:43 - 1:46
    De acuerdo. Esto es la primer cosa que
    quiero que hagas:
  • 1:46 - 1:50
    ...lo que voy a hacer es voy a guardar...
  • 1:51 - 1:54
    puede que haya algunas otras
    librerías de Processing
  • 1:54 - 1:57
    que puedes usar para obtener
    directamente un video
  • 1:57 - 2:00
    pero lo que te voy a enseñar a hacer en
    lugar de esto
  • 2:00 - 2:04
    siempre puedes guardar lo que está
    en la pantalla como imagen.
  • 2:04 - 2:10
    Por ejemplo si yo pongo la función “save”
  • 2:11 - 2:17
    y digo "gol.PNG" voy a poner eso
    en el dibujo
  • 2:18 - 2:19
    y voy a ejecutarlo
  • 2:19 - 2:22
    Primero... puedes
    decirme si está corriendo lento o no
  • 2:22 - 2:24
    quizá lo hace quizá no
  • 2:24 - 2:27
    Voy a cerrar esto y voy a ir a la carpeta
    de “sketch”
  • 2:27 - 2:32
    pueden ver justo ahí ahora hay un archivo
    llamado "gol.PNG"
  • 2:32 - 2:34
    una imagen de lo
    que había en la pantalla
  • 2:34 - 2:35
    estaba rescribiendo
  • 2:35 - 2:38
    como lo estaba haciendo una y otra vez
  • 2:38 - 2:42
    y lo que estamos viendo ahora es
    el último cuadro que dibujó
  • 2:42 - 2:43
    la función “save” está fuera
  • 2:43 - 2:46
    puedes poner eso en “mousePressed”
    o "attach" ¿sabes?
  • 2:46 - 2:48
    puedes en algún punto querer usar “save”
  • 2:48 - 2:49
    para guardar una instantánea
    de la pantalla
  • 2:49 - 2:53
    pero si usas la función "saveFrame()"
  • 2:53 - 2:55
    lo que la función "saveFrame()"
    te permite hacer
  • 2:55 - 2:58
    es incluir
  • 2:59 - 3:02
    el símbolo gato (#)
  • 3:02 - 3:05
    y lo que hará ahora es un número
    automático de archivos
  • 3:05 - 3:07
    así que cada vez que llames a
    "saveFrame()"
  • 3:07 - 3:12
    va a guardar "gol_1.png", "gol_2.png"...
  • 3:12 - 3:18
    si ejecuto este dibujo cada vez que dibuje
    voy a obtener un nuevo archivo de imagen
  • 3:18 - 3:20
    y voy a correr esto
  • 3:20 - 3:22
    y voy a intentar no correrlo por mucho...
    ¡ups!
  • 3:22 - 3:26
    lo dejo correr porque ahora voy a entrar
    y eso va estar como "ah caray"
  • 3:26 - 3:28
    y puedes ver, aquí está
  • 3:29 - 3:34
    tengo un archivo de imagen por cada
    cosa que fue grabada, cada cuadro.
  • 3:34 - 3:36
    No me gusta esto
    Es una especie de desastre
  • 3:36 - 3:40
    porque tengo un trillón de archivos y está
    contaminado mi sistema.
  • 3:40 - 3:44
    Voy a borrar estos y voy a enseñarte
    lo que pienso puede ser más útil hacer
  • 3:44 - 3:50
    Voy a hacer un directorio lo voy a llamar
    "Output/gol_####.png"
  • 3:50 - 3:51
    y voy a correr esto
  • 3:52 - 3:53
    y lo voy a dejar corriendo
  • 3:53 - 3:58
    (tarareo feliz y risa)
  • 3:58 - 3:59
    De acuerdo. Suficiente tiempo.
  • 3:59 - 4:03
    Ahora puedes ver que tengo todo
    esto aquí
  • 4:03 - 4:07
    y que puedo solo recorrerlo y aquí
    está cada cuadro
  • 4:07 - 4:10
    y por cierto estoy usando el formato
    de archivo .PNG
  • 4:11 - 4:16
    que lo guarda sin compresión así que toda
    la calidad está en cada uno de los cuadros
  • 4:16 - 4:20
    de esta forma más tarde puedes escoger
    comprimirlo en un diferente codec
  • 4:20 - 4:23
    lo que quieras hacer con tu video
    allá afuera
  • 4:23 - 4:26
    ahora la cuestión es qué hacer
    con estos archivos
  • 4:26 - 4:29
    para que puedas meterlos a Final Cut Pro
    o iMovie
  • 4:29 - 4:36
    o MPEG Studio 15 9 z y Plutón
    arcoíris cosa mágica.
  • 4:36 - 4:39
    No sé si lo haya un arcoíris ahí.
    Puedes encontrar software.
  • 4:39 - 4:41
    Muchos usan una secuencia
    de imágenes
  • 4:41 - 4:44
    After Effects hará eso y lo hará película.
    Pasa eso.
  • 4:44 - 4:46
    Si quieres esta forma rápida de hacerlo.
  • 4:47 - 4:50
    Processing aquí arriba en el menú de
    "Herramientas"
  • 4:50 - 4:53
    debajo de "Herramientas" está "Creador
    de Películas"
  • 4:53 - 4:56
    si presiono aquí en "Creador de
    películas" y lo selecciono
  • 4:56 - 5:00
    Abre una interface que dice "esta
    herramienta" no sé si puedas leer esto
  • 5:00 - 5:03
    "Esta herramienta crea una película de
    QuickTime de una secuencia de imágenes"
  • 5:03 - 5:05
    bla bla bla, un montón de información
  • 5:05 - 5:07
    Cosas que puedes hacer.
  • 5:07 - 5:11
    Voy a ir al Buscador ,
  • 5:11 - 5:13
    voy a encontrar la carpeta de "Output"
  • 5:13 - 5:16
    y voy a arrastrar esta carpeta de "Output"
    justo aquí
  • 5:16 - 5:21
    y ahora voy a... miren aquí dice, de
    acuerdo.... mmm...
  • 5:21 - 5:24
    puede que... está...
  • 5:24 - 5:28
    Está dando la altura por defecto de
    640 por 480, pero quiero cambiar esto
  • 5:28 - 5:32
    porque mi ventana de processing es de
    640 por 360
  • 5:32 - 5:34
    ¿cuál es la tasa fps que quiero?
  • 5:34 - 5:37
    ¡Oh! creo puedo presionar el mismo tamaño
    que el original
  • 5:37 - 5:39
    en cuyo caso usaría el tamaño del archivo
  • 5:40 - 5:43
    y después puedo escoger si quiero tener
    algún tipo de compresión
  • 5:43 - 5:46
    Voy a escoger animación que
    significa sin compresión
  • 5:46 - 5:48
    así que voy a tener un archivo muy grande
  • 5:48 - 5:52
    pero lo podré usar en otro software
    y si estoy usándolo en After Effects
  • 5:52 - 5:54
    va a tener que re comprimirse después
  • 5:54 - 5:57
    así que no quiero comprimirlo varias veces
  • 5:57 - 5:59
    También puedo poner un archivo de sonido
  • 5:59 - 6:01
    si quiero incluir algún sonido,
    equis
  • 6:01 - 6:05
    voy a presionar "Crear película"
  • 6:05 - 6:06
    quiere que lo guarde
  • 6:07 - 6:10
    Voy a ponerlo en el Escritorio como
    "testmovie.mov"
  • 6:10 - 6:12
    Presionar "guardar"
  • 6:13 - 6:15
    y... ¿eso ya pasó?
  • 6:15 - 6:17
    Lo hizo tan rápido.
  • 6:18 - 6:20
    Normalmente hay una pequeña ventana
    de progreso
  • 6:20 - 6:22
    pero quizá tenía solo muy poco
  • 6:23 - 6:25
    "testmovie.mov"
  • 6:25 - 6:26
    Abriré esto.
  • 6:27 - 6:28
    ¡Vamos QuickTime!
  • 6:29 - 6:32
    Y sip... sucede muy rápido,
    pueden verlo ahí está.
  • 6:32 - 6:35
    Ahora tengo un archivo ".mov"
    que puedo guardar
  • 6:35 - 6:40
    ¡Guau! Impresionante. Si fuera más largo
    quizá hubieras visto una barra progresiva.
  • 6:40 - 6:43
    Puedes ver que es solo un video de
    QuickTime que estoy reproduciendo.
  • 6:43 - 6:44
    ¡Fantástico!
  • 6:44 - 6:48
    Así que la esencia básica de esto, en 6
    minutos. Te acabo de mostrar lo principal
  • 6:48 - 6:51
    Pero creo que podemos hacer más aquí
  • 6:51 - 6:56
    porque puedes querer comenzar y parar
    la realización del archivo
  • 6:57 - 7:01
    puedes querer ver algún tipo de
    información en la pantalla
  • 7:01 - 7:02
    si se está realizando o no
  • 7:02 - 7:05
    así que voy a agregar solo unas cuantas
    piezas a este programa
  • 7:05 - 7:07
    solo para hacerlo más sofisticado.
  • 7:08 - 7:10
    De acuerdo, así que...
  • 7:10 - 7:14
    lo que voy a hacer es crear una variable
    booleana llamada "recording"
  • 7:14 - 7:18
    asumiré que no estamos grabando
    cuando el programa corre por primera vez
  • 7:18 - 7:22
    así que la boleada “recording”
    es igual “false”
  • 7:22 - 7:24
    y luego voy a decir que si está grabando
  • 7:24 - 7:28
    aquí es donde debería poder grabar
    esos cuadros
  • 7:28 - 7:32
    Otra cosa que quiero hacer, ahora
    que terminé de hacer esa película
  • 7:32 - 7:34
    quizá necesites respaldos
    solo voy a ir y borrar esa carpeta
  • 7:34 - 7:36
    porque no quiero guardar lo previo
  • 7:36 - 7:39
    no necesito guardar esos archivos previos
  • 7:39 - 7:41
    tengo todo lo que necesito ahora justo
    aquí en QuickTime
  • 7:42 - 7:46
    voy a guardar el archivo de video de nuevo
  • 7:46 - 7:50
    así que ahora solo si
  • 7:50 - 7:56
    solo si la variable booleana “recording”
    está en "true" guardará esos cuadros.
  • 7:57 - 7:58
    Eso es algo útil.
  • 7:59 - 8:01
    Ahora lo que voy a hacer
  • 8:01 - 8:03
    digamos que lo que quiero hacer es
  • 8:03 - 8:05
    tener un camino... de acuerdo
  • 8:05 - 8:08
    así que si digo... esto no es
    tan interesante
  • 8:08 - 8:09
    vamos a usar “keyPressed”
  • 8:11 - 8:20
    para que pueda decir si la tecla es igual
    a "r" o igual a "R" mayúscula,
  • 8:20 - 8:23
    grabar es igual a no grabar
  • 8:23 - 8:26
    así que lo que esto va a hacer
  • 8:26 - 8:29
    soy un aterrizador de JavaScript
    escribiré función “void
  • 8:29 - 8:34
    lo que esto va a hacer es que cada vez que
    presione "r" en el teclado
  • 8:34 - 8:36
    va a grabar o a parar de grabrar
  • 8:36 - 8:38
    Va a alternar el estado booleano
    de grabar
  • 8:38 - 8:42
    si no es “true” es “false”
    si no es “false” es "true"
  • 8:42 - 8:45
    así que grabar es igual no así mismo
  • 8:45 - 8:48
    si es “false” se vuelve “true” y
    si es “true” se vuelve "false"
  • 8:48 - 8:52
    así que eso va a suceder cada vez
    que lo alterne
  • 8:52 - 8:53
    y puedes ver que si corro este programa
  • 8:53 - 8:57
    y si voy a los archivos
  • 8:58 - 9:00
    podemos ver que no está grabando
  • 9:00 - 9:02
    si voy aquí y presiono aquí "r"
  • 9:02 - 9:05
    puedes ver de repente que
    nuevos archivos aparecen
  • 9:05 - 9:08
    y si presiono "R" de nuevo
    esos nuevos archivos pararán.
  • 9:08 - 9:14
    Agregando algo sencillo y rápido
    puedo prender y apagar la grabación.
  • 9:14 - 9:20
    También estaría mejor para mí, ver alguna
    indicación visual en la pantalla
  • 9:20 - 9:21
    si está grabando o no.
  • 9:22 - 9:26
    Así que tal sí justo aquí digo, de acuerdo
  • 9:27 - 9:34
    "fill" rojo, o "fill" verde
  • 9:36 - 9:37
    y dibujan un círculo
  • 9:37 - 9:40
    no lo sé, a la mitad de la pantalla
  • 9:40 - 9:42
    hacia la parte baja
  • 9:42 - 9:44
    eso es como un círculo
  • 9:44 - 9:46
    así que si corremos esto
  • 9:46 - 9:48
    puedes ver hay un pequeño verde
  • 9:48 - 9:50
    esto es como que un diseño visual terrible
  • 9:50 - 9:54
    pero hay un pequeño círculo verde ahí
    cuando no está grabando
  • 9:54 - 9:56
    y cuando presiono grabar
    ese círculo se vuelve rojo
  • 9:56 - 9:58
    cuando presiono otra vez
    se vuelve verde
  • 9:58 - 10:01
    No sé si son los colores correctos
    de los indicadores
  • 10:01 - 10:02
    pero tienes la idea.
  • 10:02 - 10:04
    Puedo alternar el color de ese círculo
  • 10:04 - 10:06
    y sé si está grabando o no.
  • 10:06 - 10:10
    Muy útil. Pero estás pensando "Aquí
    hay un enorme problema:
  • 10:10 - 10:13
    No quiero un gran y horrible círculo verde
    o rojo en mi video
  • 10:14 - 10:17
    Pero algo que es increíble acerca de
    la función "saveFrame()"
  • 10:18 - 10:23
    es que va a guardar la vista actual de la
    ventana de Processing
  • 10:23 - 10:27
    ¿Y adivina qué? este círculo es dibujado después
    de que llame a la función "saveFrame()"
  • 10:27 - 10:30
    "saveFrame()" va a guardar lo que está en
    la ventana
  • 10:30 - 10:34
    y luego dibujará el círculo encima de eso.
    El círculo no aparecerá en el archivo.
  • 10:34 - 10:35
    así que deberíamos poder ver
  • 10:35 - 10:38
    si regreso aquí
  • 10:39 - 10:41
    y borro eso
  • 10:41 - 10:42
    y voy a correr esto
  • 10:43 - 10:45
    y quiero comenzar a grabar por un pequeño
    lapso
  • 10:45 - 10:47
    está grabando, está grabando,
    está grabando, está grabando,
  • 10:47 - 10:48
    ahora paro grabar
  • 10:48 - 10:50
    y voy a cerrar aquí
  • 10:50 - 10:51
    voy a ir y ver
  • 10:51 - 10:53
    Veamos estos archivos.
  • 10:53 - 10:55
    No círculo verde o rojo.
  • 10:55 - 10:56
    Así que lo hicimos.
  • 10:56 - 10:59
    Somos capaces de agregar un indicador
    visual
  • 10:59 - 11:02
    en nuestra ventana que nos dice
    si está grabando o no.
  • 11:03 - 11:06
    Pienso que esa es la esencia de esto...
    Ah...
  • 11:06 - 11:09
    Mostremos algo agradable que podemos
    hacer aquí.
  • 11:10 - 11:15
    Si corro esto a 1920 por 1080
    como súper alta resolución.
  • 11:17 - 11:21
    Voy a poner una línea de impresión sobre
    la tasa de cuadros por segundo aquí.
  • 11:21 - 11:23
    Voy a correr esto.
  • 11:23 - 11:24
    Puedes ver que
  • 11:24 - 11:27
    Processing no es capaz de realizar
    el Juego de la Vida.
  • 11:27 - 11:31
    Puede serte difícil ver esto en esta
    especie de video tutorial pero
  • 11:31 - 11:35
    no es capaz de correr esto
    súper rápido en tan alta resolución
  • 11:35 - 11:40
    y de hecho es bastante rápido puedes ver
    la tasa es de 14 fps
  • 11:40 - 11:43
    pero quiero hacer esta gloriosa simulación del
    Juego de la vida
  • 11:43 - 11:45
    que corra a 30 fps
  • 11:45 - 11:46
    así que ahora si hago esto
  • 11:46 - 11:48
    y presiono grabar
  • 11:48 - 11:51
    puedes ver que la grabación también
    lo está ralentizando
  • 11:51 - 11:56
    porque hay algo de energía compitiendo
    y toma tiempo convertirlo en un archivo
  • 11:56 - 12:01
    Si corro esto ahora, lo hago un archivo
  • 12:01 - 12:03
    y paro la grabación
  • 12:03 - 12:07
    y salgo del programa y regreso
    a "Herramientas"
  • 12:07 - 12:08
    "Creación de película"
  • 12:08 - 12:10
    y yo...
  • 12:10 - 12:15
    ¡ups! Aquí arriba tomo la carpeta "Output"
  • 12:15 - 12:18
    y la arrastro aquí. Es la misma carpeta.
  • 12:18 - 12:21
    ahora esto es 1920 por 1080
  • 12:21 - 12:24
    y por supuesto puedo solo seleccionar "la
    misma medida que el original"
  • 12:24 - 12:26
    Tasa de cuadros, crear película
  • 12:26 - 12:31
    y quiero ahora "testmovie1080.mov"
    y presiono guardar
  • 12:31 - 12:34
    y ahora puedes ver esa pequeña ventana de
    progresión
  • 12:34 - 12:35
    no lo está haciendo tan rápido esta vez
  • 12:35 - 12:36
    está creando la película
  • 12:37 - 12:39
    (tarareo feliz)
  • 12:40 - 12:42
    y ahora está terminado.
  • 12:42 - 12:44
    Ahora voy al Escritorio
  • 12:44 - 12:47
    para ver lo que hice
  • 12:48 - 12:49
    y "testmovie1080.mov"
  • 12:49 - 12:50
    voy a abrir esto
  • 12:51 - 12:52
    Convirtiendo.
  • 12:52 - 12:55
    Para que QuickTime pueda reproducirla
  • 12:55 - 12:58
    ¡Vamos Quicktime!
  • 12:58 - 13:00
    (Sonidos mágicos)
  • 13:00 - 13:03
    De acuerdo. Aquí vamos.
    Pantalla completa. Reproducimos.
  • 13:03 - 13:06
    Puedes ver, tengo mis 30 fps de mi
    simulación del Juego de la vida
  • 13:06 - 13:08
    todo realizado en Processing.
  • 13:08 - 13:11
    No sé que acaba de...
    (sonidos raros)
  • 13:11 - 13:16
    Dejé algunos archivos viejos ahí al final
    así que los entretejió
  • 13:16 - 13:21
    entretejió lo de alta resolución con
    lo de baja, es interesante.
  • 13:21 - 13:24
    Como sea, puedes ver todo tipo
    de posibilidades
  • 13:24 - 13:28
    espero que esto te ayude con cosas que
    estés haciendo en Processing
  • 13:28 - 13:30
    puedes hacer esto con 3d,
  • 13:30 - 13:32
    puedes hacer esto con casi cualquier cosa
  • 13:32 - 13:34
    y dime cómo te resulta
  • 13:34 - 13:36
    así que gracias por ver este video
  • 13:36 - 13:38
    y volveré pronto con más videos.
Title:
Tutorial: Cómo convertir un sketch de Processing en un video
Description:

Este video muestra el uso de la función saveFrame() para hacer un video desde un sketch de Processing.

Ejemplo del código: https://github.com/shiffman/Video-Les...

Más acerca del Juego de la Vida: http://natureofcode.com/book/chapter-...

Contacto: https://twitter.com/shiffman

¡Ayúdanos a transcribir y traducir este video!

http://amara.org/v/Qbt6/

more » « less
Video Language:
English
Duration:
13:41

Spanish subtitles

Revisions