¿Cómo grabar una secuencia de juego en GIF animado?

Avatar de Usuario
Jinks
Mensajes: 2373
Registrado: 09 Oct 2013 16:47
Agradecido : 247 veces
Agradecimiento recibido: 356 veces
Contactar:

¿Cómo grabar una secuencia de juego en GIF animado?

Mensajepor Jinks » 03 Ago 2022 08:59

Quería grabar un par de secuencias del Monkey Island VGA.

Al ser un juego en 320x200 y 256 colores, una grabación 100% fiel al original "encaja" perfectamente en las características del formato GIF animado, pero no sé cómo hacerlo.

Había pensado hacerlo con el ScummVM, pero creo que no graba vídeos.

El que sí graba vídeos es DOSBox, pero graba en formato AVI, siempre con algo de pérdida de información, aunque sea mínima y no se note.

La tercera opción sería ejecutar el juego en ScummVM, DOSBox, o cualquier emulador o máquina virtual, y utilizar tercer programa que realice la "captura", pero como en una ventana Windows pueden aparecer millones de colores, no creo que el programa capturador lo grabe como GIF (el máximo de colores en GIF es 256).

Incluso podría ejecutarlo en DOS puro y utilizar un programa residente para la captura, pero el más avanzado que recuerdo para DOS es el ScreenThief y que yo sepa sólo capturaba imágenes sueltas, nada de secuencias.

¿Alguno lo habés hecho antes?

Avatar de Usuario
frankrodiii
Mensajes: 557
Registrado: 26 May 2019 14:46
Ubicación: ??!!!#=?¿****!!! ©
Agradecido : 411 veces
Agradecimiento recibido: 231 veces
Contactar:

Re: ¿Cómo grabar una secuencia de juego en GIF animado?

Mensajepor frankrodiii » 03 Ago 2022 11:25

Puedes grabarlo con el DOSBox y convertirlo después con el ffmpeg a GIF.
https://superuser.com/questions/556029/ ... le-quality
No será la manera más adecuada pero mira, sirve... -drinks
frankrodriguez.net - -m4c SE/30 - SiDi - Apple IIc

Avatar de Usuario
Jinks
Mensajes: 2373
Registrado: 09 Oct 2013 16:47
Agradecido : 247 veces
Agradecimiento recibido: 356 veces
Contactar:

Re: ¿Cómo grabar una secuencia de juego en GIF animado?

Mensajepor Jinks » 03 Ago 2022 21:11

Haciéndolo así, como dije, al pasar por AVI ya va con un poco de pérdida de información, y luego al convertir a GIF tiene que pasar de los miles de colores (que salen por los "artefactos" del formato AVI) a los 256 del GIF y con eso ya la hemos liao.

He intentado otra cosa, pero el resultado es nefasto: Captura del ScummVM a MP4 con una herramienta que viene con Windows (que ni sabía que existía) que se llama Xbox Game Bar, y luego convertido a GIF en la página https://mp4gif.com/ Pero creo que usa la misma paleta para todos los frames de todos los GIF, así que lo que hace son unas tramas que se ven desde lejos. Tengo que probar con otro conversor, pero en principio el formato MP4 tendría las mismas pegas que el AVI (para lo que yo pretendo).

Avatar de Usuario
cpcbegin
Mensajes: 376
Registrado: 27 Ago 2014 22:02
Agradecido : 222 veces
Agradecimiento recibido: 153 veces
Contactar:

Re: ¿Cómo grabar una secuencia de juego en GIF animado?

Mensajepor cpcbegin » 03 Ago 2022 22:13

¿Has probado una aplicación que curiosamente se llama Peek?
https://atareao.es/software/video/graba ... derivados/

Avatar de Usuario
Jinks
Mensajes: 2373
Registrado: 09 Oct 2013 16:47
Agradecido : 247 veces
Agradecimiento recibido: 356 veces
Contactar:

Re: ¿Cómo grabar una secuencia de juego en GIF animado?

Mensajepor Jinks » 04 Ago 2022 09:21

cpcbegin escribió:¿Has probado una aplicación que curiosamente se llama Peek?
https://atareao.es/software/video/graba ... derivados/

Pues es que el único Linux que tengo es en una Orange Pi que hace 3 años que no enciendo y además la usaba en plan servidor y no tenía instalado ni el interfaz gráfico. Pero si pasa el tiempo y no encuentro otra forma de hacerlo lo probaré de alguna manera.

Avatar de Usuario
Jinks
Mensajes: 2373
Registrado: 09 Oct 2013 16:47
Agradecido : 247 veces
Agradecimiento recibido: 356 veces
Contactar:

Re: ¿Cómo grabar una secuencia de juego en GIF animado?

Mensajepor Jinks » 04 Ago 2022 09:31

Bueno, acabo de encontrar un artículo donde dicen (o eso quiero entender) que se puede hacer una captura de vídeo de la ventana del juego, en un formato sin pérdida de información, con una aplicación gratuita y además multiplataforma (Windows/Linux/Mac).

https://www.reddit.com/r/gamedev/commen ... framerate/

Si de verdad funciona, ya "sólo" quedaría encontrar un conversor a GIF que lo haga bien (no como el que encontré ayer).

ackerman
Mensajes: 326
Registrado: 05 Feb 2019 21:32
Ubicación: Asturias
Agradecido : 136 veces
Agradecimiento recibido: 269 veces

Re: ¿Cómo grabar una secuencia de juego en GIF animado?

Mensajepor ackerman » 04 Ago 2022 17:45

Igual lo que comento no te sirve, pero cuando he querido capturar video, he tirado de VirtualDub en modo screen capture.
Le quito el overlay para no entrar en bucle, y le meto cropping exacto de la ventana a capturar. Le meto captura de video con un codec en modo RAW sin compresión ni pérdida. Y luego para gif para meterlo en web, al menos para blanco y negro y 16 colores, he tirado del propio virtualdub con la opción de exportar (Animated gif). Comento lo del virtualdub, porque no hace falta instalar nada (portable), y siempre ha consumido muy pocos recursos. Dependiendo del equipo y de lo que se quiera capturar, igual hay que jugar con opciones y demás, igual tirando de disco de RAM, pero siempre me ha tirado rápido.

Avatar de Usuario
Jinks
Mensajes: 2373
Registrado: 09 Oct 2013 16:47
Agradecido : 247 veces
Agradecimiento recibido: 356 veces
Contactar:

Re: ¿Cómo grabar una secuencia de juego en GIF animado?

Mensajepor Jinks » 04 Ago 2022 21:16

Acabas de decir la palabra clave: RAW

Genial el VirtualDub, la primera prueba y ya ha salido casi perfecto.

Como la resolución original del juego son 320x200, que cualquier pantalla de hoy tendría el tamaño de un sello de Correos, lo he ejecutado con el ScummVM y así puedo triplicar el tamaño de cada pixel.

Luego con el VirtualDub, que tiene todas las cosas que valoro (no necesita instalación, es gratuito, y la descarga es pequeñísima, ni 2 megas ocupa) le digo lo del RAW, que capture la ventana activa, y ya sólo es decirle las dimensiones del vídeo. Le he puesto 960x600 (el triple de 320x200) y luego he exportado a GIF. Y la única pega que tiene es que ha capturado el borde inferior de la ventana.

Supongo que en lugar de capturar la ventana activa (que el ScummVM mete un borde y esas esquinas redondas) será cuestión de localizar las coordenadas exactas donde empieza el juego. No sé si es lo mismo que dices del cropping, que ahora no lo veo. ¿Te refieres antes de la captura o después?

Pero vamos, para la primera prueba, demasiado bien ha quedado.

mi1prueba1.gif
mi1prueba1.gif (2.81 MiB) Visto 314 veces

Avatar de Usuario
frankrodiii
Mensajes: 557
Registrado: 26 May 2019 14:46
Ubicación: ??!!!#=?¿****!!! ©
Agradecido : 411 veces
Agradecimiento recibido: 231 veces
Contactar:

Re: ¿Cómo grabar una secuencia de juego en GIF animado?

Mensajepor frankrodiii » 04 Ago 2022 23:46

Queda genial. -drinks
frankrodriguez.net - -m4c SE/30 - SiDi - Apple IIc

BlackHole
Mensajes: 1388
Registrado: 03 Ago 2011 23:07
Ubicación: Aluche, Madrid
Agradecido : 15 veces
Agradecimiento recibido: 378 veces

Re: ¿Cómo grabar una secuencia de juego en GIF animado?

Mensajepor BlackHole » 05 Ago 2022 20:09

¿Me permites preguntar por qué precisas generar un GIF animado? Aparte de tener una compresión sin pérdidas, el algoritmo de compresión Lempel-Ziv-Welsh (LZW) presente en el formato GIF, dista mucho de algoritmos de compresión posteriores como PNG que usa el DEFLATE (LZ77+Huffman) de la librería ZLib del Gzip, y del que existen múltiples programas que mantienen la compatibilidad realizando optimizaciones previas a la compresión. La versión animada APNG es soportada en los navegadores desde hace años, y soporta 24 bits (16 millones colores) en vez de 8 bits (256 colores) en el caso que fuese necesario.

Luego está el formato WebP desarrollado por Google en 2010, que soporta 24 bits, compresión sin pérdidas y compresión con pérdidas. Mucho más recientemente en 2019, tenemos el formato AVIF (soportado por Chrome y Opera) que almacena imágenes o secuencias de imágenes comprimidas con el compresor libre de patentes AV1 en el formato de imagen HEIF. La web EZGIF.COM puede generar online archivos APNG, WebP y AVIF. Luego hay otro formato llamado JPEG XL que está en pleno desarrollo en estos momentos, pero no sé si soporta animaciones ni qué software maneja esos archivos.

Tu prueba del GIF animado de Guybrush Threepwood de 2.81 MB se queda en 1.28 MB en formato APNG, y en 300 KB en formato AVIF (aunque Firefox no me lo muestra, en Linux tengo que verlo en Chomium).

Avatar de Usuario
Jinks
Mensajes: 2373
Registrado: 09 Oct 2013 16:47
Agradecido : 247 veces
Agradecimiento recibido: 356 veces
Contactar:

Re: ¿Cómo grabar una secuencia de juego en GIF animado?

Mensajepor Jinks » 05 Ago 2022 20:49

BlackHole escribió:¿Me permites preguntar por qué precisas generar un GIF animado? Aparte de tener una compresión sin pérdidas, el algoritmo de compresión Lempel-Ziv-Welsh (LZW) presente en el formato GIF, dista mucho de algoritmos de compresión posteriores como PNG que usa el DEFLATE (LZ77+Huffman) de la librería ZLib del Gzip, y del que existen múltiples programas que mantienen la compatibilidad realizando optimizaciones previas a la compresión. La versión animada APNG es soportada en los navegadores desde hace años, y soporta 24 bits (16 millones colores) en vez de 8 bits (256 colores) en el caso que fuese necesario.

Luego está el formato WebP desarrollado por Google en 2010, que soporta 24 bits, compresión sin pérdidas y compresión con pérdidas. Mucho más recientemente en 2019, tenemos el formato AVIF (soportado por Chrome y Opera) que almacena imágenes o secuencias de imágenes comprimidas con el compresor libre de patentes AV1 en el formato de imagen HEIF. La web EZGIF.COM puede generar online archivos APNG, WebP y AVIF. Luego hay otro formato llamado JPEG XL que está en pleno desarrollo en estos momentos, pero no sé si soporta animaciones ni qué software maneja esos archivos.

Tu prueba del GIF animado de Guybrush Threepwood de 2.81 MB se queda en 1.28 MB en formato APNG, y en 300 KB en formato AVIF (aunque Firefox no me lo muestra, en Linux tengo que verlo en Chomium).

Muchas gracias por la información. Hace tiempo que convertí todo lo que tengo en GIF (en realidad, todo lo que tengo con paleta de colores) a PNG, incluso hice un script que llama a 3 "optimizadores" lossless de PNG, y ese es el formato que uso para el almacenamiento "definitivo" de imágenes con paleta de colores.

Pero no conocía el APNG. Al webp todavía le falta soporte, pero creo recordar que una vez miré las tripas de una imagen en ese formato, y por dentro era un PNG, así que tampoco miré mucho más.

La razón por la que quería el GIF animado en este caso era (aparte de no conocer el formato APNG) que quiero publicar varios con la opción "GIF" que tienen algunas redes sociales y aplicaciones como Facebook y WhatsApp. Sobre todo Facebook. Como del almacenamiento se encargan ellos, tampoco me he molestado mucho más.

Pero gracias a tu mensaje, miraré hoy mismo esa web y seguramente a partir de ahora convierta los GIF animados (incluida esta prueba del Monkey) a formato APNG u otro de los que mencionas, y el que más me convenza pase a ser mi nuevo formato de almacenamiento definitivo para las "animaciones con paleta".

En cualquier caso, necesitaría la posibilidad de volver a convertir de APNG a GIF animado hasta que ese formato se popularice bastante más (incluyendo tanto software como redes sociales). Supongo que se podrá hacer en la misma web, y que será lossless.

En cuanto a la bestial reducción que comentas de mi fichero, supongo que además de comprimir más, también ignorarán los frames repetidos que seguro que hay, dejándolos en un único frame y dejándolo más tiempo en la pantalla.

BlackHole
Mensajes: 1388
Registrado: 03 Ago 2011 23:07
Ubicación: Aluche, Madrid
Agradecido : 15 veces
Agradecimiento recibido: 378 veces

Re: ¿Cómo grabar una secuencia de juego en GIF animado?

Mensajepor BlackHole » 05 Ago 2022 20:57

A mí lo que me ha dejado con el culo torcido es la versión en AVIF de 300 KB. No me deja adjuntarla en el foro con esa extensión.

guybrush.avif.gz
(292.04 KiB) Descargado 2 veces

Avatar de Usuario
Jinks
Mensajes: 2373
Registrado: 09 Oct 2013 16:47
Agradecido : 247 veces
Agradecimiento recibido: 356 veces
Contactar:

Re: ¿Cómo grabar una secuencia de juego en GIF animado?

Mensajepor Jinks » 05 Ago 2022 21:02

Quizás el esquema de compresión se "de cuenta" de que todos los píxeles están triplicados en altura y anchura, y por cada 9 píxeles sólo tendría que guardar 1.

Lo otro que se me ocurrió fue generar la animación en 320x200 y luego darle el triple de tamaño en el navegador, pero eso no vale para el botón "GIF" de Facebook o WhatsApp.

Avatar de Usuario
Jinks
Mensajes: 2373
Registrado: 09 Oct 2013 16:47
Agradecido : 247 veces
Agradecimiento recibido: 356 veces
Contactar:

Re: ¿Cómo grabar una secuencia de juego en GIF animado?

Mensajepor Jinks » 06 Ago 2022 22:33

BlackHole escribió:A mí lo que me ha dejado con el culo torcido es la versión en AVIF de 300 KB. No me deja adjuntarla en el foro con esa extensión.

guybrush.avif.gz

Ya he hecho otra prueba, con zoom x2 en lugar de x3, y todo en una pantalla sin scroll pero bastante más largo, y quitando la parte inferior con los verbos. En GIF 846 Kb, en APNG 373 Kb y en AVIF 222 Kb.

Me llama la atención que en la prueba que puse con zoom x3 la reducción del GIF al AVIF haya sido de 9 a 1 y en ésta con zoom x2 ha sido de 4 a 1, justo el tamaño del pixel "zoomificado".


Volver a “VideoJuegos”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado