VirtualDub, Watermark – Insérer en masse un logo sur vos vidéos
Il parait que l’Internet est le règne du copier-coller, du plagiat et du détournement sans souci pour le droit d’auteur, c’est sans doute la vérité mais qui se soucie encore de ce combat d’arrière-garde comme un personnage de La Cerisaie. On va donc aborder dans cet article, la capacité à l’aide de virtualdub de placer de manière automatique et en masse un bug antenne comme on dit dans le jargon. Logo qui assure au moins pour quelque temps encore l’appartenance d’une œuvre à une filiation d’auteurs et de productions. Bon assez, tergiversez, rentrons dans la vif du sujet.
Pour des raisons de popularité, on est sous windows, PC et toutes les manipulations vont se faire via ms-dos
, VirtualDub*
et DubMan - The VirtualDub Manager
* Il existe deux versions de VirtualDub
, une distribution qui lit le MPEG1 et une autre qui lit le MPEG1 et le MPEG2
Utiliser VirtualDub
Il vous faut télécharger l’application VirtualDub
. Une fois installée, pour des raisons de commodité, il faut mieux changer le chemin d’accès vers cette application. Pour cela, il suffit de se reporter à l’article suivant :
Une fois VirtualDub installé et la modification de path faite, vous êtes alors en mesure de faire tourner ce .bat
, ci-dessous, qui permettra de signer vos vidéos d’un watermark.
Quelques écrans de virtualdub
Le fichier VCF
Le code source du fichier all_cut_film_bug_320x240.vcf
. Ce fichier définit l’ensemble des proprités des futurs vidéos : taille 320×240, logo bug ou bug antenne sans alpha situé en haut à droite… etc. Ce fichier est appelé dans notre script le script code_all_cut_execute_code_320x240.bat
à la ligne set vcf_file_1="C:2_movie_sourceall_cut_film_bug_320x240.vcf"
.
Pour l’insertion de ce logo, c’est un filtre VirtualDub
qui ajoute VirtualDub.video.filters.instance[1].Config("C:2_movie_sourcewatermarksmon_logo.jpg", -30, 16, 0, 0, 2, 0, 65536);
notamment un logo nommé mon_logo.jpg
en plus de redimensionner la vidéo au format 320×240.
NB : L’adresse vers le logo qui “watermark” les vidéos est donné comme souvent sous Windows, truffé de antislash, couplé avec un antislash pour éviter le pire.
VirtualDub.audio.SetSource(1); VirtualDub.audio.SetMode(1); VirtualDub.audio.SetInterleave(1,500,1,0,0); VirtualDub.audio.SetClipMode(1,1); VirtualDub.audio.SetConversion(0,0,0,0,0); VirtualDub.audio.SetVolume(); VirtualDub.audio.SetCompressionWithHint(85,22050,1,0,4000,1,12,"AQACAAAAaAABAHEF","MPEG Layer-3 Codec "); VirtualDub.audio.EnableFilterGraph(0); VirtualDub.video.SetInputFormat(0); VirtualDub.video.SetOutputFormat(7); VirtualDub.video.SetMode(3); VirtualDub.video.SetFrameRate(0,1); VirtualDub.video.SetIVTC(0,0,-1,0); VirtualDub.video.SetRange(0,0); VirtualDub.video.SetCompression(0x31367076,0,10000,0); VirtualDub.video.SetCompData(2056,"VlA2MQEAAADABgAAAAAAAAAAAAAsAQAAOAAAAAAAAAABAAAAaAEAAAAAAAABAAAAUAAAAAQAAABoAQAAAAAAAAAAAAAAAAAAAQAAAAEAAAABAAAAAQAAAAAAAAAZ/P//BAAAAAAAAAAAAAAABAAAAAUAAAAUAAAAIwAAAC0AAAAeAAAAAAAAAAAAAAAAAAAAGfz//wQAAABaAAAAZAAAAAYAAAAZ/P//RgAAAJABAAAoAAAAGfz//wEAAAAAAAAAAAAAAAAAAABmaXJzdHBhc3MuZnBmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQzpcV0lORE9XU1xzeXN0ZW0zMlxDMk1QXFZQNiBWRlcgQ29kZWMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="); VirtualDub.video.filters.Clear(); VirtualDub.video.filters.Add("resize"); VirtualDub.video.filters.instance[0].Config(320,240,0); VirtualDub.video.filters.Add("logo"); VirtualDub.video.filters.instance[1].Config("C:2_movie_sourcewatermarksmon_logo.jpg", -30, 16, 0, 0, 2, 0, 65536); VirtualDub.audio.filters.Clear(); VirtualDub.subset.Clear(); VirtualDub.subset.AddRange(0,3910); VirtualDub.project.ClearTextInfo(); |
Le code du .bat
qui inclut le .vcf
Le code source du fichier code_all_cut_execute_code_320x240.bat
, les fichiers que l’on donne à “manger” à virtualdub
sont au format MPEG1, rien ne vous empêche si vous télécharger le virtualdub
lisant le format MPEG2 de balancer du MPEG2.
@echo off :: FUNCTIONS set dd=%date:~0,2% set mm=%date:~3,2% set yyyy=%date:~6,4% set hour=%time:~0,2% set min=%time:~3,2% set sec=%time:~6,2% set mmsec=%time:~9,2% ::::::::::::::::::::::::::::::::::::::::::::: :: code_all_cut_execute_code_320x240.bat :: :: :: :: convert and watermark with virtualdub :: :: Made by hecube.net :: :: === Use virtualdub application === :: :: (c) Hecube.net :: ::::::::::::::::::::::::::::::::::::::::::::: :: copyright echo === BUGS THE VIDEOS === echo === Made by hecube (c) %yyyy% === echo === version 1.0 : %yyyy% : hecube.net === echo. :: copyright :: FUNCTIONS title bug the videos Color 0A :: VALUES :: ------------------ HERE DEFINE THE CORRECT PATH TO THE DIRECTORY OF VIDEO OUTPUT set vcf_file_1="C:2_movie_sourceall_cut_film_bug_320x240.vcf" set my_path_input=C:2_movie_sourcesource_mpeg_1 set my_path_output=C:2_movie_sourcedestination :: PATH FOR FILES cd %my_path_input% :: FILENAME echo. echo = bug the videos = echo. :: ask for the filename :op_input echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» echo º º echo º BUG, 320X240 º echo º º echo º º echo º º echo º º echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ echo. set /P filename_extract="Do you want to BUG, 320X240 (y/n)? " :: ############################################################# // PUT YOUR CODE HERE rem VirtualDub /s "C:2_movie_sourcecut_film_03_good_vp6_advanced_profile_alpha_30_bug.vcf" /b "C:2_movie_sourcesource_mpeg_1","C:2_movie_sourcedestination" /r /x /c :: TREATMENT for files - 320x240 and bug FOR %%G IN (*.avi *.mpg *.mpeg *.mov) DO ( VirtualDub /s "%vcf_file_1%" /p "%%G","%my_path_output%%%~nG_bug_320x240.avi" /r /x /c echo %%G bugged to %%~nG_bug_320x240.avi ) goto rend :: ############################################################# // PUT YOUR CODE HERE :: LEAVE VirtualDub :rend echo. echo === CONGRATULATIONS - YOU MADE ALL === :end ECHO. ECHO = End of conversion = ECHO = Push the space bar to exit = pause>nul |
Utiliser VirtualDub DubMan
On peut au lieu d’utiliser le pauvre mais efficace .bat
situé au dessus, faire appel à un logiciel avec une vraie interface VirtualDub DubMan-0.83
. Il permet de lancer une liste de dubman:jobs
qui sont autant de traitement à effectuer par VirtualDub
. Ce logiciel a été développé en java. Pour lancer VirtualDub DubMan
, il faut cliquer DubMan.jar
qui vient avec l’installation du logiciel.
Le fichier de Jobs pour VirtualDub DubMan all_resize_divX_audio_video_320x240_bug.djt
<?xml version="1.0" encoding="ISO-8859-1"?> <dubman:template xmlns:dubman="http://dubman.sourceforge.net" name="" format="1.1" version="0.83"> <dubman:bulk /> <dubman:jobs> <!-- Les fichiers source sont au format MPEG1 --> <dubman:job> <dubman:name value="movie_01" /> <dubman:input value="C:2_movie_sourcesource_mpeg_1movie_01.mpg" /> <dubman:output value="C:2_movie_sourcedestinationmovie_01_bug.avi" /> <dubman:deleteInput value="false" /> <dubman:script> VirtualDub.audio.SetSource(1); VirtualDub.audio.SetMode(1); VirtualDub.audio.SetInterleave(1,500,1,0,0); VirtualDub.audio.SetClipMode(1,1); VirtualDub.audio.SetConversion(0,0,0,0,0); VirtualDub.audio.SetVolume(); VirtualDub.audio.SetCompression(); VirtualDub.audio.EnableFilterGraph(0); VirtualDub.video.SetInputFormat(0); VirtualDub.video.SetOutputFormat(7); VirtualDub.video.SetMode(3); VirtualDub.video.SetFrameRate(0,1); VirtualDub.video.SetIVTC(0,0,-1,0); VirtualDub.video.SetCompression(0x78766964,0,10000,0); VirtualDub.video.SetCompData(150,"LWJ2MSA2MDAwMDAgLXZidiA2MDAwMDAsNjU1MzYwLDQ5MTUyMCAtZGlyICJDOlxEb2N1bWVudHMgYW5kIFNldHRpbmdzXE5FQkZsYXZlblxBcHBsaWNhdGlvbiBEYXRhXERpdlhcRGl2WCBDb2RlYyIgLWIgMCAtbmYgLXByb2ZpbGU9MiAtdGhyZWFkX2RlbGF5PTEA"); VirtualDub.video.filters.Clear(); VirtualDub.video.filters.Add("resize"); VirtualDub.video.filters.instance[0].Config(320,240,0); VirtualDub.video.filters.Add("logo"); VirtualDub.video.filters.instance[1].Config("C:2_movie_sourcewatermarksmon_logo.jpg", -30, 16, 0, 0, 2, 0, 65536); VirtualDub.audio.filters.Clear(); </dubman:script> <dubman:runWith value="0" /> </dubman:job> <dubman:job> <dubman:name value="movie_02" /> <dubman:input value="C:2_movie_sourcesource_mpeg_1movie_02.mpg" /> <dubman:output value="C:2_movie_sourcedestinationmovie_02_bug.avi" /> <dubman:deleteInput value="false" /> <dubman:script> VirtualDub.audio.SetSource(1); VirtualDub.audio.SetMode(1); VirtualDub.audio.SetInterleave(1,500,1,0,0); VirtualDub.audio.SetClipMode(1,1); VirtualDub.audio.SetConversion(0,0,0,0,0); VirtualDub.audio.SetVolume(); VirtualDub.audio.SetCompression(); VirtualDub.audio.EnableFilterGraph(0); VirtualDub.video.SetInputFormat(0); VirtualDub.video.SetOutputFormat(7); VirtualDub.video.SetMode(3); VirtualDub.video.SetFrameRate(0,1); VirtualDub.video.SetIVTC(0,0,-1,0); VirtualDub.video.SetCompression(0x78766964,0,10000,0); VirtualDub.video.SetCompData(150,"LWJ2MSA2MDAwMDAgLXZidiA2MDAwMDAsNjU1MzYwLDQ5MTUyMCAtZGlyICJDOlxEb2N1bWVudHMgYW5kIFNldHRpbmdzXE5FQkZsYXZlblxBcHBsaWNhdGlvbiBEYXRhXERpdlhcRGl2WCBDb2RlYyIgLWIgMCAtbmYgLXByb2ZpbGU9MiAtdGhyZWFkX2RlbGF5PTEA"); VirtualDub.video.filters.Clear(); VirtualDub.video.filters.Add("resize"); VirtualDub.video.filters.instance[0].Config(320,240,0); VirtualDub.video.filters.Add("logo"); VirtualDub.video.filters.instance[1].Config("C:2_movie_sourcewatermarksmon_logo.jpg", -30, 16, 0, 0, 2, 0, 65536); VirtualDub.audio.filters.Clear(); </dubman:script> <dubman:runWith value="0" /> </dubman:job> <dubman:job> <dubman:name value="movie_03" /> <dubman:input value="C:2_movie_sourcesource_mpeg_1movie_03.mpg" /> <dubman:output value="C:2_movie_sourcedestinationmovie_03_bug.avi" /> <dubman:deleteInput value="false" /> <dubman:script> VirtualDub.audio.SetSource(1); VirtualDub.audio.SetMode(1); VirtualDub.audio.SetInterleave(1,500,1,0,0); VirtualDub.audio.SetClipMode(1,1); VirtualDub.audio.SetConversion(0,0,0,0,0); VirtualDub.audio.SetVolume(); VirtualDub.audio.SetCompression(); VirtualDub.audio.EnableFilterGraph(0); VirtualDub.video.SetInputFormat(0); VirtualDub.video.SetOutputFormat(7); VirtualDub.video.SetMode(3); VirtualDub.video.SetFrameRate(0,1); VirtualDub.video.SetIVTC(0,0,-1,0); VirtualDub.video.SetCompression(0x78766964,0,10000,0); VirtualDub.video.SetCompData(150,"LWJ2MSA2MDAwMDAgLXZidiA2MDAwMDAsNjU1MzYwLDQ5MTUyMCAtZGlyICJDOlxEb2N1bWVudHMgYW5kIFNldHRpbmdzXE5FQkZsYXZlblxBcHBsaWNhdGlvbiBEYXRhXERpdlhcRGl2WCBDb2RlYyIgLWIgMCAtbmYgLXByb2ZpbGU9MiAtdGhyZWFkX2RlbGF5PTEA"); VirtualDub.video.filters.Clear(); VirtualDub.video.filters.Add("resize"); VirtualDub.video.filters.instance[0].Config(320,240,0); VirtualDub.video.filters.Add("logo"); VirtualDub.video.filters.instance[1].Config("C:2_movie_sourcewatermarksmon_logo.jpg", -30, 16, 0, 0, 2, 0, 65536); VirtualDub.audio.filters.Clear(); </dubman:script> <dubman:runWith value="0" /> </dubman:job> <!-- to be continued --> <!-- pour dupliquer le job faire un copier-coller de <dubman:job>...</dubman:job> inclus --> </dubman:jobs> </dubman:template> |
Le fichier de Jobs pour VirtualDub DubMan
Pour insérer le fichier all_resize_divX_audio_video_320x240_bug.djt
, il suffit de le sélectionner le fichier via File > Open
.
Une fois le fichier all_resize_divX_audio_video_320x240_bug.djt
chargé, il faut cliquer sur le bouton Run Jobs File
Pour aller plus loin
- Le site officiel de virtualdub
http://www.virtualdub.org/ - Le site de virtualdub qui lit du MPEG-2
http://home.comcast.net/~fcchandler/stable/ - Le site officiel de DubMan – The VirtualDub Manager
http://dubman.sourceforge.net/