- Python3
- PortAudio (Solo se requiere para la instalación con soporte de audio)
- FFmpeg (Solo se requiere para la instalación con soporte de audio)
Instalación estándar
$ pip3 install video-to-ascii
Instalación con soporte de audio
$ pip3 install video-to-ascii --install-option="--with-audio"
Simplemente ejecute video-to-ascii
en su terminal
$ video-to-ascii -f myvideo.mp4
--strategy
Permite elegir una estrategia para renderizar la salida.
-o --output
Exporte la salida de renderizado a un archivo bash para compartir con alguien.
-a --with-audio
Si se realizó una instalación con soporte de audio, puede usar esta opción para reproducir la pista de audio mientras renderiza los caracteres ascii del video.
Cada video está compuesto por un conjunto de fotogramas que se reproducen a una determinada velocidad de fotogramas.
Dado que un terminal tiene un número específico de filas y columnas, tenemos que cambiar el tamaño de nuestro video para ajustarlo a las limitaciones de tamaño del terminal.
Para alcanzar una visualización correcta de un marco completo, necesitamos ajustar la frame height para que coincida con las terminal rows, evitando usar más caracteres que el número de terminal columns.
Al elegir un carácter para representar un píxel, necesitamos medir la relevancia del color de ese píxel en el marco, en base a eso podemos seleccionar el carácter más apropiado en función de la luminancia relativa en los espacios colorimétricos, usando una versión simplificada de la función de luminosidad .
La luz verde es la que más contribuye a la intensidad percibida por los humanos y la luz azul, la que menos.
Esta función devuelve un número entero en el rango de 0 a 255, asignamos un carácter según la densidad para mostrar la superficie más coloreada para las áreas con color más intenso (valores más altos).
CHARS_LIGHT = [' ', ' ', '.', ':', '!', '+', '*', 'e', '$', '@', '8']
CHARS_COLOR = ['.', '*', 'e', 's', '@']
CHARS_FILLED = ['░', '▒', '▓', '█']
La reducida gama de colores que admite el terminal es un problema que debemos tener en cuenta. Los terminales modernos admiten hasta 256 colores, por lo que necesitamos encontrar el color de 8 bits más cercano que coincida con el píxel original en color de 16 o 24 bits, a este conjunto de colores ANSI de 256 colores lo llamamos.
Finalmente, al ponerlo todo junto, tendremos un carácter apropiado para cada píxel y un nuevo color.
Este proyecto existe gracias a todas las personas que contribuyen. [Contribute].
Conviértete en un contribuyente financiero y ayúdanos a sostener nuestra comunidad.. [Contribute].
O tal vez sólo me compre un café.
Apoye este proyecto con su organización. Su logotipo se mostrará aquí con un enlace a su sitio web. [Contribute]