Creación de vídeos MVZ

Moderador: antoniovillena

kounch
PLA
Mensajes: 21
Registrado: 18 Jul 2020, 09:02

Creación de vídeos MVZ

Mensaje por kounch » 15 Sep 2020, 17:52

Hola

fascinado por la demo de Bad Apple para ZX-Uno y la forma en que estaba creado el vídeo, he estado mirando para poder los míos propios.

Este sistema está probado en Linux y Mac OS X, pero debería ser similar en Windows.

Necesitamos dos programas:
- Por un lado ffmpeg para extraer del vídeo que tengamos (en otro formato como MP4, MKV, AVI, etc.) los fotogramas y el audio.
- Por otro lado, el programa frame_converter del repositorio de ZX-Uno. Como no hay versión ejecutable, hay que compilarlo

Código: Seleccionar todo

gcc frame_converter.c -o frame_converter
Adjunto a este mensaje una versión modificada del código fuente, que permite añadirle como parámetros el patrón de imágenes a usar y el nombre archivo de audio. Si se prefiere utilizar el original, habrá que generar las imágenes con el patrón "ba%04d.bmp", y el archivo de audio llamarlo "audio_badapple_12820.wav"

Con todo esto preparado, los pasos a seguir son:

1. Extraer del vídeo el audio y los fotogramas como imágenes en el formato adecuado. Por ejemplo, si el vídeo se llamase "input.mp4":

Código: Seleccionar todo

ffmpeg -i input.mp4 -ar 12820 -ac 1 -acodec pcm_u8 output.wav
ffmpeg -i input.mp4 -pix_fmt monob -vf "vflip, scale=256:192" -sws_flags lanczos -sws_dither ed -start_number 0 output%04d.bmp
2. Generar el nuevo fichero .mvz

Código: Seleccionar todo

./frame_converter img/output output.wav
mv img/output.mvz ../mivideo.mvz
rm -rf img
3. Ahora, basta con copiar juntos el fichero ba.tap y nuestro nuevo vídeo (renombrado como "ba.mvz") a donde queramos y ejecutarlo en nuestro ZXDOS, ZX-Uno o similar para ver el resultado.

Notas:
El vídeo final mantiene muy bien sincronizado el audio si se utiliza un vídeo original que sea a 25 imágenes por segundo constantes (25 fps constant framerate).
También es interesante recortar o ajustar el vídeo para que sea con proporciones 4:3 (por ejemplo: 640x480).
Para mi caso de uso, he preparado un script en bash que hace todos los pasos seguidos. Si alguien está interesado, también podría subirlo.
Adjuntos
frame_converter.c
(8.92 KiB) Descargado 272 veces
(ZX Spectrum+ - ZXDOS+ - ZX Spectrum Next)

Responder

Volver a “ZX Spectrum”