Skip to content

Latest commit

 

History

History
145 lines (89 loc) · 7.17 KB

README_es.md

File metadata and controls

145 lines (89 loc) · 7.17 KB

Logo

Es un paquete de Python simple para reproducir videos en una terminal usando caracteres ASCII.

Financial Contributors on Open Collective PyPI version Maintainability contributions welcome HitCount

screenshot

Translations

Requisitos

  • 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

Instalación estándar

$ pip3 install video-to-ascii

Instalación con soporte de audio

$ pip3 install video-to-ascii --install-option="--with-audio"

Cómo usarlo

Simplemente ejecute video-to-ascii en su terminal

$ video-to-ascii -f myvideo.mp4

Opciones

--strategy Permite elegir una estrategia para renderizar la salida.

Render Strategies

-o --output Exporte la salida de renderizado a un archivo bash para compartir con alguien.

Exporting

-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.

Cómo funciona

Cada video está compuesto por un conjunto de fotogramas que se reproducen a una determinada velocidad de fotogramas.

Video Frames

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.

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.

Resizing

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.

The Mapping of RGB and ANSI Colors

8 Bits Color Table

Finalmente, al ponerlo todo junto, tendremos un carácter apropiado para cada píxel y un nuevo color.

Frame Image by Characters

Contribuyentes

Contribuyentes de Código

Este proyecto existe gracias a todas las personas que contribuyen. [Contribute].

Contribuyentes Financieros

Conviértete en un contribuyente financiero y ayúdanos a sostener nuestra comunidad.. [Contribute].

O tal vez sólo me compre un café.

Individuos

Organizaciones

Apoye este proyecto con su organización. Su logotipo se mostrará aquí con un enlace a su sitio web. [Contribute]