Convertissez des vidéos en art ASCII avec notre générateur de vidéos ASCII (Tutoriel)

Find AI Tools
No difficulty
No complicated process
Find ai tools

Convertissez des vidéos en art ASCII avec notre générateur de vidéos ASCII (Tutoriel)

Table des matières

  • Introduction
  • Convertir une vidéo en ASCII
  • Limiter la taille de la vidéo au terminal
  • Choisir le caractère représentatif de chaque pixel
  • Convertir la couleur du pixel en caractère ASCII
  • Adapter la gamme de couleurs au terminal
  • Lire une vidéo à partir d'un fichier
  • Jouer ou exporter une vidéo à partir d'un fichier
  • Manipulation de stratégies de pixel
  • Génération de caractères ASCII colorés

Introduction

Dans cette vidéo, nous allons voir comment créer un Package Python qui nous permettra de convertir des vidéos en ASCII en utilisant une seule commande dans le terminal. Nous allons également parler de la façon dont nous pouvons adapter la taille de la vidéo aux limitations du terminal, choisir le caractère qui représentera chaque pixel, convertir la couleur du pixel en caractère ASCII et gérer la gamme de couleurs prise en charge par le terminal.

Convertir une vidéo en ASCII

Chaque vidéo est composée d'une série d'images qui sont affichées à un certain taux de rafraîchissement. Dans le terminal, qui a un nombre spécifique de lignes et de colonnes, nous devons redimensionner notre vidéo pour s'adapter aux limites de taille du terminal. Pour obtenir une visualisation correcte de chaque image dans le terminal, nous devons ajuster la hauteur de l'image pour correspondre au nombre de lignes du terminal, en évitant d'utiliser plus de caractères que le nombre de colonnes du terminal.

Limiter la taille de la vidéo au terminal

Lorsque nous choisissons un caractère pour représenter un pixel, nous devons mesurer la pertinence de la couleur de ce pixel dans l'image. Sur cette base, nous pouvons sélectionner le caractère le plus approprié en fonction de la luminance relative et des espaces colorimétriques. Nous utilisons une version simplifiée de la fonction de Luminosité pour cela. Cette fonction retourne un entier dans la plage de 0 à 255. Nous attribuons un caractère en fonction de la densité pour montrer une surface plus colorée pour les zones avec une couleur plus intense (valeurs élevées). La plage réduite de couleurs prise en charge par le terminal est un problème auquel nous devons faire face. Les terminaux modernes prennent en charge jusqu'à 256 couleurs, nous devons donc trouver la couleur 8 bits la plus proche qui correspond au pixel d'origine en couleur 16 ou 24 bits. Nous appelons cet ensemble de 256 couleurs les couleurs ANSI.

Lire une vidéo à partir d'un fichier

Le code que nous développons ici est une interface en ligne de commande (CLI) à un module de lecture de vidéos dans le terminal en utilisant des caractères ASCII colorés comme pixels ou d'autres sorties utiles. Il importe le module player qui contient les fonctions nécessaires pour lire des vidéos. La fonction principale est définie, elle configure les arguments de ligne de commande en utilisant le module argar, ce module fournit des options pour le fichier vidéo d'entrée, la stratégie de rendu de la sortie, le fichier de sortie à exporter et la lecture ou non de la piste audio. Les arguments sont ensuite analysés et stockés dans la variable args. Enfin, la fonction player.pl est appelée avec les arguments fournis et la vidéo est lue en fonction de la stratégie et des options spécifiées. Si une interruption du clavier se produit, l'interruption de l'utilisateur du programme est capturée et ignorée.

Jouer ou exporter une vidéo à partir d'un fichier

Ce code définit une fonction appelée play qui est utilisée pour lire ou exporter une vidéo à partir d'un fichier. La fonction prend plusieurs paramètres facultatifs, notamment un nom de fichier, une stratégie, un fichier de sortie, un format de sortie et un indicateur indiquant si l'audio doit être lu ou non. À l'intérieur de la fonction, un objet vidéo est créé et la vidéo est chargée à partir du fichier spécifié. Si le drapeau playcore audio est true, le code utilise la bibliothèque FEG pour extraire l'audio du fichier vidéo et le sauvegarder dans un fichier Wave temporaire. L'objet vidéo est ensuite configuré pour inclure l'audio. Si une stratégie est spécifiée, la stratégie de la vidéo est définie en conséquence. Enfin, la méthode play de la vidéo est appelée pour afficher la vidéo en utilisant des caractères ASCII dans le terminal. Le fichier de sortie optionnel et le format de sortie peuvent être utilisés pour exporter la vidéo dans un fichier au lieu de l'afficher dans le terminal.

Manipulation de stratégies de pixel

Ce code définit un module appelé video_core_engine.py qui définit une classe appelée VideoEngine pour le traitement vidéo. La classe encapsule diverses méthodes de traitement vidéo et stocke des variables tout au long du processus. La classe dispose d'une méthode d'initialisation qui prend un argument optionnel appelé strategy. Elle initialise la variable render_core_strategy en accédant au dictionnaire de stratégies du module render_core_strategy et en attribuant l'objet de stratégie correspondant en fonction de l'argument donné. Elle initialise également la variable read_core_buffer à none et la variable with_core_audio à false.

Génération de caractères ASCII colorés

Ce code définit une classe appelée ASIColorStrategy qui est une sous-classe de ASIStrategy. Elle contient une méthode appelée apply_pixel_core_to_ascii_strategy qui prend une seule image vidéo en entrée et la traite en utilisant une stratégie d'analyse des pixels. La fonction pixel_core_to_ascii du module image_core_processor est appelée avec le pixel et un paramètre de densité de deux, ce qui convertit le pixel en un ensemble de caractères colorés en tant que chaîne unique. Cette méthode renvoie la chaîne résultante.

Partie restante du texte

Le reste du texte semble faire partie d'un programme plus important ou d'une classe qui applique certaines stratégies pour modifier les valeurs de pixel et les messages. Il utilise des fonctions d'autres modules ou classes pour effectuer ces modifications.

Are you spending too much time looking for ai tools?
App rating
4.9
AI Tools
100k+
Trusted Users
5000+
WHY YOU SHOULD CHOOSE TOOLIFY

TOOLIFY is the best ai tool source.