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

VirtualDub, Watermark - Insérer en masse un logo sur vos vidéos

VirtualDub, Watermark - Insérer en masse un logo sur vos vidéos

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.

VirtualDub, Watermark - Insérer en masse un logo sur vos vidéos

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.

VirtualDub, Watermark - Insérer en masse un logo sur vos vidéos

VirtualDub, Watermark - Insérer en masse un logo sur vos vidéos

Une fois le fichier all_resize_divX_audio_video_320x240_bug.djt chargé, il faut cliquer sur le bouton Run Jobs File
VirtualDub, Watermark - Insérer en masse un logo sur vos vidéos

Pour aller plus loin