Creación de vídeos MVZ
Publicado: 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 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":
2. Generar el nuevo fichero .mvz
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.
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
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
Código: Seleccionar todo
./frame_converter img/output output.wav
mv img/output.mvz ../mivideo.mvz
rm -rf img
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.