automatic translation maschinelle Übersetzung

Add to Technorati Favorites
urzhiata | index



      ajouter un titre et un générique à une video

Ce tutoriel décrit comment ajouter un titre sur les premières images d'une vidéo ainsi qu'un générique à la fin sans passer par un logiciel de montage, en utilisant les logiciels libres ffmpeg et avisynth. Il faut les installer au préalable (pour l'installation, voir les 2 billets : installation de ffmpeg et utiliser ffmpeg avec avisynth).


étape 1 : ajouter un titre sur les premières images de la vidéo

fichier avisynth (à enregistrer sous le nom "titres.avs")
# attention! en cas de copier-coller, il ne doit pas y avoir de retour à la ligne
# après "last_frame=45," dans les lignes suivantes

video_originale = AviSource("video.avi")
v1 = Subtitle(video_originale, "ffmpeg", x=160, y=75, first_frame=0, last_frame=45, 
   font="verdana", size=36, text_color=$000000, halo_color=$ffffff, align=2)
v2 = Subtitle(v1, "&", x=160, y=125, first_frame=0, last_frame=45, 
   font="verdana", size=36, text_color=$000000, halo_color=$ffffff, align=2)
v3 = Subtitle(v2, "avisynth", x=160, y=175, first_frame=0, last_frame=45, 
   font="verdana", size=36, text_color=$000000, halo_color=$ffffff, align=2)
v3

La vidéo utilisée pour l'exemple est à 15 images par seconde, et fait 320 x 240 pixels. En 3 étapes on ajoute les 3 lignes du titre, pour chacune la commande subtitle est accompagnée des paramètres suivants : le nom du clip sur lequel inscrire le texte, le texte à écrire, les coordonnées où « accrocher » le texte et l'alignement par rapport à ce point (align=2, pour du texte centré), les caractéristiques de la police (font, size, text_color et halo_color) ainsi que l'intervalle pendant lequel le texte sera affiché (première image : first_frame, et dernière : last_frame). Le texte restera affiché pendant 45 images ce qui correspond à 3 secondes à 15 images/secondes. La toute dernière ligne renvoie la vidéo résultant de ces opérations. La durée globale restant identique, il n'y a pas à se préoccuper du son.

étape 2 : ajouter un générique à la fin

Le générique est composé de 2 images qui restent chacune affichées pendant 2 secondes.
fichier avisynth (à enregistrer sous le nom "titres.avs")
# attention! en cas de copier-coller, il ne doit pas y avoir de retour à la ligne
# après "last_frame=45," dans les lignes suivantes

video_originale = AviSource("video.avi")
v1 = Subtitle(video_originale, "ffmpeg", x=160, y=75, first_frame=0, last_frame=45, 
   font="verdana", size=36, text_color=$000000, halo_color=$ffffff, align=2)
v2 = Subtitle(v1, "&", x=160, y=125, first_frame=0, last_frame=45, 
   font="verdana", size=36, text_color=$000000, halo_color=$ffffff, align=2)
v3 = Subtitle(v2, "avisynth", x=160, y=175, first_frame=0, last_frame=45, 
   font="verdana", size=36, text_color=$000000, halo_color=$ffffff, align=2)
v4 = blankclip(video_originale, length=30, color=$ff8800)
v5 = Subtitle(v4, "2007", font="verdana", size=48, text_color=$ffffff, 
   halo_color=$bb3300, align=5)
v6 = Subtitle(v4, "http://urzhiata.emoc.org", font="verdana", size=24, 
   text_color=$ffffff, halo_color=$bb3300, align=5)
video_resultat = v3 + v5 + v6
video_resultat

En supplément de l'étape précédente, un nouveau clip est créé par blankclip, avec les mêmes caractéristiques que la vidéo originale (premier paramètre), pour une durée de 30 images (2 secondes à 15 images/secondes) et avec une couleur de fond orangée ($ff8800). Il est utilisé 2 fois comme fond pour placer les textes du générique, puis la vidéo est construite à partir des 3 éléments. Si la vidéo est sonore, les parties ajoutées ne comporteront pas de son.

étape 3 : créer la vidéo avec ffmpeg

Cette commande ffmpeg va créer un fichier flash vidéo avec les caractéristiques par défaut, le fichier avisynth joue le rôle de vidéo de départ :
ffmpeg -i titres.avs -f flv titres.flv


variante : utiliser des images de la vidéo en images de fond

On peut utiliser une image de la vidéo en image fixe de fond pour le générique, dans le fichier avisynth ci-dessus il faudrait remplacer la ligne v4 par la suivante, ce qui aura pour effet de répéter 45 fois l'image 160 de la vidéo, en ramenant le son à 0.
v4 = Trim(video_originale,160,160).Loop(45,160,160).Normalize(0)



      ajouter un logo sur une vidéo

Ce tutoriel permet d'ajouter un logo sur une vidéo, sans passer par un logiciel de montage, en utilisant les logiciels libres ffmpeg et avisynth. Il faut donc les avoir installé au préalable (pour l'installation, voir les 2 billets : installation de ffmpeg et utiliser ffmpeg avec avisynth). Cette méthode est particulièrement adaptée au traitement par lot de fichiers, par un fichier batch, afin d'ajouter un logo à toutes les vidéos d'un répertoire.

étape 1 : créer le script avisynth

fichier avisynth (copier-coller dans le bloc-notes et enregistrer sous le nom "video.avs")
logo = ImageSource("logo.png")
video_originale = AviSource("video.avi")
video_resultat = overlay(video_originale,logo,250,170,logo,1)
video_resultat

L'image et la vidéo originale sont définies ligne 1 et 2 (la vidéo fait 320x240 pixels) puis elles sont mélangées pour créer la vidéo finale (ligne 3), le résultat est renvoyé ligne 4. C'est la commande overlay qui définit les paramètres pour la superposition du logo, dans l'ordre on trouve : le clip de base (vidéo_originale), l'image superposée (logo), le placement en X à partir du coin en haut à gauche, le placement en Y, l'image utilisée comme masque (ici il s'agit de la même image), puis l'opacité (de 0 à 1, 100% opaque dans ce cas)

urzhiata L'image d'origine du logo est au format png (60x60 pixels), elle sert également de masque, les pixels noirs sont alors interprétés comme totalement transparents, les blancs comme opaque et les gris seront à moitié transparents.




étape 2 : créer la vidéo avec ffmpeg

La ligne de commande suivante va créer une vidéo au format flash video à partir de la pseudo-vidéo avisynth, sans qu'une vidéo intermédiaire n'ait été nécessaire.
ffmpeg -i video.avs -f flv video.flv





variante : inscrire une ligne de texte sur la vidéo

La commande subtitle d'avisynth permet d'inscrire du texte sur une vidéo en utilisant les polices de caractères installées.
video_originale = AviSource("video.avi")
video_resultat = Subtitle(video_originale, "http://urzhiata.emoc.org", 
    font="verdana", size=18, text_color=$000000, halo_color=$ffffff, align=8)
video_resultat


Parmi les paramètres de subtitle, on trouve les caractéristiques de la police (taille, couleur, etc.) et align qui définit le placement du texte sur la vidéo, ici la valeur 8 indique que la vidéo est centrée en haut.



ajouter un logo sur un lot de vidéo

L'utilisation de ffmpeg + avisynth permet de traiter des vidéos par lot, on peut adapter ces scripts pour ajouter un logo sur tous les fichiers vidéo d'un répertoire en créant un fichier batch. Le batch ci-dessous ajoutera le logo sur toutes les vidéos d'un répertoire, pourvu qu'elles aient les mêmes dimensions, il pourrait être adapté en utilisant les fonctions d'avisynth qui détectent la résolution du fichier vidéo, et en adaptant la taille de l'image du logo.

fichier batch (à copier-coller dans le bloc-notes et enregistrer avec l'extension ".bat")
@ECHO OFF
FOR /F "usebackq delims==" %%y IN (`dir /b *.avi`) DO CALL :creer_fichier_avs %%~ny
FOR /F "usebackq delims==" %%y IN (`dir /b *.avs`) DO CALL :conversion_ffmpeg %%~ny
GOTO :fin

:creer_fichier_avs
ECHO creation du fichier avisynth pour %1.avi
ECHO logo = ImageSource("logo.png") > %1.avs
ECHO video_originale = AviSource("%1.avi") >> %1.avs
ECHO video_resultat = overlay(video_originale,logo,250,170,logo,1) >> %1.avs
ECHO video_resultat >> %1.avs
GOTO :eof

:conversion_ffmpeg
ECHO conversion de %1
ffmpeg -i %1.avs -f flv %1.flv
GOTO :eof

:fin
ECHO tous les fichiers ont ete traites...
Ce fichier batch procède en deux étapes : création d'un fichier avisynth pour chaque vidéo avi du répertoire, puis traitement de chaque fichier avisynth avec ffmpeg pour le transformer en flash video (flv). Chacune de ces étapes est réalisée par une sous-routine. Il faut placer ce fichier dans le répertoire avec les fichiers vidéos avi et le logo (logo.png) puis double cliquer, toutes les vidéos seront transformées en flv avec le logo incrusté!


      utiliser ffmpeg avec avisynth

Avisynth est un logiciel d'édition vidéo sous forme de scripts, il offre de nombreuses possibilités que ce soit pour l'amélioration des images, l'assemblage audio + vidéo, la superposition (sous-titres, logos), la composition, etc.
Les fichiers avisynth sont des scripts au format texte (avec l'extension ".avs"), des « pseudo-vidéos » qui peuvent être ouvertes avec un lecteur traditionnel (media player classic, VLC, Virtual Dub) mais également utilisés en entrée de ffmpeg, la version windows de ce dernier étant compilée avec le support avisynth.

En utilisant ffmpeg et avisynth, on peut donc simplement faire des montages dans un fichier texte et produire un fichier vidéo dans un des nombreux formats de sortie de ffmpeg. Ces deux outils fonctionnant en ligne de commande on peut également les utiliser pour des traitements par lot automatiques (ex : ajouter un logo à toutes les vidéos d'un répertoire)

Quelques utilisations de ces outils en détail :

- ajouter un logo sur une vidéo
- ajouter un titre et un générique à une vidéo
- créer un diaporama en vidéo (prochainement)
- ajouter un sous-titre à une vidéo (prochainement)

Au préalable, il faut télécharger et installer avisynth : télécharger la version 2.5.7 d'avisynth et avoir installé ffmpeg (voir installation et utilisation de ffmpeg)

Liens :

Site officiel (en français) : avisynth
Forum avisynth en français (sur unite-video.com) : forum avisynth
Un autre forum en français (sur ripp-it.com) : forum filtres avisynth
Forum en anglais (sur doom9) : avisynth usage forum



      comment installer ffmpeg avec windows XP

ffmpeg est un utilitaire pour la transformation des fichiers audio-video utilisable en ligne de commande. Bien qu'avec windows, on soit plutôt habitué à utiliser des logiciels à travers des interfaces graphiques, ffmpeg dispose d'un éventail de possibilités très intéressantes, rapides à mettre en oeuvre, et utilisables dans des fichiers batch pour des traitements pars lot. Il est disponible en open-source (donc gratuit) et évolue régulièrement. Comment s'y prendre pour l'installer et l'utiliser?

Télécharger une version de ffmpeg
Les versions récentes de ffmpeg, précompilées pour Windows sont téléchargeables sur ce site : ffmpeg pour windows. Il faut récupérer la plus récente, c'est un fichier compressé au format 7z, format ouvert que l'on peut décompresser en utilisant 7zip, logiciel open-source qui compresse et décompresse également de nombreux autres formats.

Décompresser le fichier de ffmpeg
Une fois décompressé, 3 fichiers sont extraits, à copier dans le répertoire C:/Windows/System32/ pour qu'ils puissent être utilisables depuis n'importe quel dossier :
ffmpeg.exe est le programme principal qui permet de passer les vidéos d'un format à un autre, d'extraire du son, des images fixes, etc. (voir des exemples dans la rubrique pratique)
ffplay.exe est un lecteur simple pour afficher des vidéos
pthreadGC2.dll est une librairie de fonctions utilisées pour faire fonctionner l'ensemble (cf dll sur wikipedia)

Utiliser la ligne de commande
Pour utiliser ffmpeg, il faut d'abord ouvrir une invite de commande, ce qui peut se faire de différentes manières : soit à partir de "démarrer", puis "programme/accessoires/invite de commande"

soit "démarrer/exécuter"
ouvrir une invite de commande, phase 1

puis entrer "cmd" dans la fenêtre qui s'ouvre
ouvrir une invite de commande, phase 2

Pour un usage régulier et bien plus pratique de la ligne de commande, on peut installer l'utilitaire cmdhere.exe téléchargeable parmi les powertoys du site de microsoft. Une fois installé, l'option open command window here est ajouté au menu contextuel des dossiers, ce qui évite d'avoir à se déplacer dans les dossiers. Un autre truc bien pratique : on peut rappeler les dernières commandes tapées, en utilisant la "fléche haut", ce qui évite de retaper les mêmes lignes ou presque en faisant des essais et même faire un copier-coller avec le bouton droit de la souris (ctrl-v ne marchera pas).

Obtenir l'aide et la documentation

Les différentes commandes de ffmpeg sont décrites dans une aide intégrée. Pour l'afficher, on utilise la commande suivante : ffmpeg -h
Les différents codecs et formats de fichiers sont affichables avec : ffmpeg -formats
Il est possible de réunir les deux dans un fichier texte pour avoir une documentation imprimable, en entrant ffmpeg -h > doc.txt puis ffmpeg -formats >> doc.txt (les deux chevrons indiquant que le résultat sera mis à la suite du fichier créé précédemment)

Maintenant vous avez tous éléments pour utiliser ffmpeg!

Dans la rubrique « pratique » de ce site, quelques exemples d'utilisation de ffmpeg :
extraire le son d'un fichier vidéo
transformer une vidéo flv en avi
extraire des images d'une vidéo toutes les X secondes
etc.




Si cet article vous a été utile, aidez à le faire connaître en deux clics : en lui ajoutant une "mark" sur tutmarks (en cliquant sur le chiffre dans le rond bleu!)


      créer une vidéo à partir d'images

Comment réunir une série d'images sous forme de vidéo? ffmpeg permet simplement, à partir d'une suite de fichiers images numérotés, de créer une séquence vidéo dans de nombreux formats. Voila la ligne de commande à utiliser :

pour fabriquer une vidéo au format flash FLV :

ffmpeg -r 25 -an -b 360k -i image-%04d.png -s 360x288 -f flv video.flv

-r 25 : définir le taux à 25 images/secondes
-an : desactiver l'audio
-b 360k : débit pour le flux vidéo, ici 360 kbits/secondes, à définir selon la taille du fichier que l'on souhaite
-i image-%04d.png : "modèle" pour les noms des fichiers image
-s 360x288 : définir les dimensions de la vidéo à obtenir
-f flv : fixer le format de sortie, ici flash vidéo FLV video.flv : nom du fichier vidéo à créer

Avec cette commande, les fichiers images doivent respecter un format bien précis et s'appeler image-0001.png, image-0002.png, etc. C'est ce qui est signifié par "%04d", bien sur on peut l'adapter (par exemple : %02d pour des fichiers de la forme image-02.png). La numérotation des fichiers image doit commencer à un et il ne peut pas y avoir de "trous". Parmi les formats d'image pris en charge par ffmpeg : jpg, tif, bmp, png, etc.

L'inverse est également possible : transformer une vidéo en série d'images



variante : modifier la durée d'affichage des images

Avec la commande précédente, chaque image est affichée pendant 1/25e de secondes. Pour modifier cette durée, il faut changer le nombre d'images par seconde de la vidéo source. Pour que chaque image reste visible une seconde, tout en conservant un taux de 25 images/seconde dans la vidéo finale on peut utiliser la commande suivante :

ffmpeg -r 1 -i image-%04d.png -an -b 360k -s 360x288 -r 25 -f flv video.flv

Pour qu'une image reste affichée 4 secondes, on utiliserait "-r 0.25", à l'inverse pour qu'une image reste un quart de seconde, il faudrait utiliser "-r 4". Cette modification concerne toutes les images de la vidéo, pour fixer séparément la durée d'affichage de chaque image, il faut utiliser ffmpeg avec avisynth


      encodage mp3 par lot

Comment encoder des centaines de fichiers audio de la manière la plus rapide et simple possible : en préparant un script de traitement par lot! Une fois le script prêt il suffit de le placer dans le répertoire contenant les fichiers sons et de double-cliquer! (Le modèle de script, pour windows, est téléchargeable ci-dessous).

Le logiciel nécessaire est Lame, un encodeur audio capable de transformer un fichier wav en mp3, décoder un mp3 en wav, mais également réencoder de mp3 vers mp3.

Lire la suite


      lire une vidéo à l'envers

Pour faire défiler une vidéo ".avi" (son + image) à l'envers, c'est avisynth qui offre la solution la plus simple : en créant un fichier texte de deux lignes. Le son et l'image sont inversés sans créer de nouveau fichier. Avisynth s'intercale entre la vidéo originale et le lecteur, et "filtre" le fichier original. Pour voir la vidéo, on ouvre le fichier ainsi créé dans son player habituel, pour moi cela a très bien fonctionné avec Media Player Classic, mais pas avec VLC. Pour créer un fichier ".avi" réel de la vidéo inversé, on peut utiliser la vidéo virtuelle d'avisynth dans virtualdub et sauver en ".avi".

Voila ce que doit contenir le fichier texte (video_a_l_envers.avs)

AVISource("C:\VIDEO\fichier_video.avi")
Reverse


Avisynth est capable de beaucoup plus (filtrage des images, redimensionnement, ajout de sous-titres, conversion de formats, nettoyage de l'image, etc.)
Télécharger les logiciels : avisynth, media player classic, virtualdub (les 3 sont des logiciels libres)

      enregistrer les videos de YouTube (et autres)

Vous voulez constituer l'intégrale des gags-avec-animaux, ou une compil des pubs de dentifrice les plus sensuelles? Maintenant ce rève est possible, grace aux 70 000 nouvelles vidéos qui viennent enfler youtube chaque jour, et aux sites de diffusion vidéo à la demande qui pullulent désormais. Mais comment les récupérer pour asphyxier un peu plus votre disque dur (qu'il va falloir penser à changer).

Voila une petite compilation :

YouTube Grabber est un logiciel autonome, très léger, très simple (une case + un bouton) qui n'a qu'une fonction : récupérer les vidéos de YouTube!

Autre solution qui ne se limite pas à YouTube : avec Firefox, il suffit d'utiliser la très efficace extension downloadhelper. Une fois installée, un icone permet d'accéder aux liens directs vers les fichiers vidéos permettant de les enregistrer très facilement. Parfois il faut ajouter l'extension de fichier ".flv" quand ce n'est pas fait automatiquement.

Avec n'importe quel navigateur et sans rien installer on peut aussi utiliser le site keepvid.com, qui moyennant l'adresse de la page contenant la vidéo, affiche le lien vers le fichier direct, mais ça n'est pas efficace à chaque fois... Qui a cloné l'autre? En tout cas Video Downloader propose la même chose, avec en plus une extension pour firefox.

Parmi les solutions que je n'ai pas testé, on trouve en logiciels open-source, deux projets : Google Video Downloader, qui comme son nom ne l'indique pas permet de récupérer des vidéos depuis différents sites. Pour le faire fonctionner, il faut tout d'abord installer l'environnement de développement .NET (.NET). Un second projet : DownUTUBE s'attache à télécharger les vidéos depuis Google Video, YouTube, IMDB, ou Apple.com Movie Trailers.

La plupart de ces vidéos sont au format "flash video" (.flv) et peuvent ensuite être transformées dans d'autres formats numériques si nécessaires, on peut en extraire le son, modifier la taille des images, etc. Il y a aussi d'autres formats comme le real video, le quicktime ou le windows media video, diffusés en streaming qui vont nécessiter des manipulations différentes.




Si cet article vous a été utile, aidez à le faire connaître en deux clics : en lui ajoutant une "mark" sur tutmarks (en cliquant sur le chiffre dans le rond bleu!)