Catégories
Édition vidéo

Insérer un bumper avec fondu d’ouverture

Dans ce tutoriel, nous allons voir comment insérer une image (avec fondu d’ouverture) en tant qu’introduction d’une vidéo.
Bien sûr, il existe de nombreux outils d’édition vidéo qui offrent cette fonctionnalité. Mais on pourrait  :

  • vouloir automatiser la production de vidéos contenant cet effet à l’aide d’un script.
  • ne pas être satisfait par les résolutions ou les formats gérés par l’outil.
  • Vouloir enchaîner et cumuler des traitements vidéos trop complexes pour le logiciel d’édition vidéo que vous possédez.

Dans ces cas-là, AviSynth est ce qu’il vous faut.

Présentation d’AviSynth

Avisynth agit comme un intermédiaire entre une source vidéo (fichier .avi ou .mpg) et une application vidéo (lecteur multimédia ou un encodeur). Voici comment ça marche :

  1. Vous créez un script (fichier texte) contenant des commandes faisant référence à une ou plusieurs vidéos et aux filtres que vous souhaitez utiliser sur elles.
  2. Vous lancez une application vidéo (VirtualDub, Windows Media Player, …) et vous ouvrez ce fichier script (.avs). C’est alors qu’AviSynth rentre en action : Il ouvre les vidéos que vous avez référencées dans votre script, applique les filtres spécifiés, et fourni un fichier vidéo de sortie pour l’application vidéo.

L’application vidéo ne sait pas qu’AviSynth joue ce rôle d’intermédiaire. tout se passe comme si elle ouvrait directement un fichier AVI.

Présentation de mon besoin

Le rendu final que je souhaitais

Voici la vidéo que nous obtiendrons en appliquant ce tutoriel :

Image d’introduction

L’idée est d’insérer une image fixe pendant les 5 premières secondes d’un autre film. Cette image apparaîtra avec un effet de fondu d’ouverture. Vous pouvez fabriquer cette image avec Powerpoint ou Impress, puis la sauvegarder au format jpg. Elle doit être dimensionnée aux mêmes dimensions que la vidéo. Pour ma vidéo :

Bumper
Exemple d'image d'introduction

 

Scripts AviSynth

Dans le cas d’une vidéo sans bande-son

Dans mon cas, ma vidéo est une capture d’actions d’un utilisateur sur un logiciel. Cette vidéo a été capturée avec CAMStudio et elle ne contenait pas de son. Voici le script AviSynth permettant d’insérer le bumper :

#Création d'un bumper en introduction d'une vidéo

#Import de la vidéo de départ
video = DirectShowSource("Blog.wmv", fps=25.0)
#Création d'une piste vidéo (25 images/s) avec le logo d'introduction
#De 5 secondes (soit 25*5=125 frames)
logo = ImageSource("Bumper.jpg", 0, 125, 25.0).converttoyv12().assumefps(video)
#Le logo sera affiché avec un fade-in de 2 secondes, soit 50 frames (2*25 images/s)
bumper = FadeIn(logo, 50, $0000FF, 25.0)
#Insertion logo en fade-in puis vidéo de départ
bumper ++ video

Si votre vidéo contient une bande-son, vous obtiendrez l’erreur « Splice: one clip has audio and the other doesn’t (not allowed) ». Ce qui signifie que la fonction splice (qui permet de concaténer deux vidéos) ne peut pas mettre une vidéo sans piste sonore à la suite d’une vidéo contenant image et son. Dans le paragraphe suivant, nous allons voir comment corriger cette erreur.

blog_splice_error_avisynth

 

Dans le cas d’une vidéo avec une bande-son

Dans le cas où la vidéo contient du son, il faut que la séquence d’introduction contienne aussi une piste audio, quitte à ce que cela soit un son blanc (une piste sonore silencieuse). On utilisera la fonction Tone avec l’option « Silence » :

#Création d'un bumper en introduction de vidéo

#Import de la vidéo de départ
video = DirectShowSource("Blog.wmv", fps=25.0)
#Création d'une piste vidéo (25 images/s) avec le logo d'introduction
#De 5 secondes (soit 25*5=125 frames)
logo = ImageSource("Bumper.jpg", 0, 125, 25.0).converttoyv12().assumefps(video)
#La piste audio du logo d'introduction est blanche
audio =  Tone(10.0, 440, 44100, 2, "Silence", 0)
#Création d'un film (25 images/s) avec le logo d'introduction et la piste audio blanche
bumper = audiodub(logo, audio)
#Le logo sera affiché avec un fade-in de 2 secondes (soit sur 50 frames, puisque 25 i/s)
bumper = FadeIn(bumper, 50, $0000FF, 25.0)
#Insertion logo en fade-in puis vidéo de départ
bumper ++ video

Pour lire et enregistrer la vidéo

Comme les scripts AviSynth sont considérés par le système ou d’autres logiciels comme une vidéo AVI, on peut utiliser le logiciel VirtualDub pour enregistrer la vidéo produite ou la lire directement. Dans mon cas, comme j’ai prévu de la diffuser sur mon site en streaming, voici les opérations supplémentaires que j’ai réalisées :

Conversion en vidéo Flash :

ffmpeg.exe -i merge_blog_nosound.avi merge_no_sound.flv

Insertion des index pour faciliter le streaming :

flvtool2.exe -U merge_no_sound.flv

2 réponses sur « Insérer un bumper avec fondu d’ouverture »

Bonjour,

je suis tombé sur votre tuto très clair correspondant à ce que je recherchais depuis un moment. J’ai testé et cela fonctionne bien. Je vous en remercie.
Je souhaiterai faire une légère modification.
J’ai généré via FitCD un script avisynth afin de redimensionner les vidéos que je compresse ensuite avec x264vfw dans Virtualdub. Il fonctionne correctement. Le voici :

# -= AviSynth v2.6.0.2 script by FitCD v1.2.8 =-
DirectShowSource(« video.wmv »,fps=25)
Crop(70,40,500,280)
AddBorders(70,40,70,40)
AssumeFPS(23.976, true)
Trim(0,1350).FadeOut(150)

Y a-t-l un moyen simple de le combiner dans votre script ?

video = DirectShowSource(« video.wmv », fps=25.0)
logo = ImageSource(« Bumper.jpg », 0, 125,
25.0).converttoyv12().assumefps(video)
audio = Tone(10.0, 440, 44100, 2, « Silence », 0)
bumper = audiodub(logo, audio)
bumper = FadeIn(bumper, 50, $a1915e, 25.0)
bumper ++ video

Vous l’aurez compris je fais mes premiers pas avec avisynth et il est assez difficile de trouver des forums francophones spécialisés.

Merci de m’avoir lu et bravo pour votre site

Bonjour,

J’étais un peu occupé ces temps-çi, mais un week-end pluvieux m’a donné un peu de temps pour répondre à votre question dans un autre article : http://benjamin-balet.info/multimedia/edition-video/avisynth-fadein-bumper-et-fadeout/.
Un conseil, pour obtenir des réponses sur Internet et dans les forums, ne vous contentez pas de copier-coller un bout de code sans expliquer le résultat que vous souhaitez obtenir. Le code en question n’est pas très clair et il me semble que sa syntaxe soit incorrecte.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.