Re-encodage en masse simple ! - Traitement Vidéo - Video & Son
Marsh Posté le 28-08-2005 à 23:50:56
Le plus simple c'est d'utiliser mencoder. Voici le script VBS que j'utilise et qui réencode tout en qualité constante avec quant=4. Tu peux facilement le modifier pour encoder en bitrate constant, il suffit de changer la ligne de commande de mencoder.
Une fois le script créé et copié dans le répertoire de mencoder il suffit de faire un raccourci sur le bureau et de lâcher tes fichiers à réencoder dessus.
Recode.vbs :
(EDIT : retiré le script buggé, version corrigée plus bas)
Marsh Posté le 29-08-2005 à 09:06:30
Ok alors j'ai installé Mencoder que je pense etre MEDIA ENCODER ...
Par defaut dans "C:\Program Files\Windows Media Components\Encoder\" et j'ai collé le script "Recode.vbs" dans ce dossier ... Raccourci du VBS fait sur le bureau !!!
Quand je glisse un fichier AVI dessus il me demande par une fenetre : "Now encoding : xxxx.avi" et il me propose OK ou ANNULER ...
Si je fait OK ou si j'attends j'ai le message d'erreur :
Citation : WINDOWS SCRIPT HOST |
Et ca quelque soit le fichier video que je glisse dessus !!! Merci a vous !!!
Marsh Posté le 29-08-2005 à 10:49:40
Mencoder est bel et bien Mencoder et fait partie du package Mplayer : http://www.mplayerhq.hu/
il suffit de télécharger la version Win32 de Mplayer et dézipper quelque part.
Marsh Posté le 29-08-2005 à 12:28:40
C'est bon j'ai trouvé MPLAYER et MENCODER ... J'ai dezippé la version win32 j'ai mis le script dedant et j'aienvoyé un fichier AVI sur le script ...
Même erreur !!!
PS : Es ce normal le QUOTE dans ton script juste avant le premier CMD ??? => 'cmd
Marsh Posté le 29-08-2005 à 13:55:28
Il faut que le vbs soit dans le même répertoire que Mencoder. Si c'est le cas et que tu as créé un raccourci, assure-toi que dans le raccourci "Démarrer dans:" pointe bien sur le répertoire où se trouve Mencoder.
Le quote est un commentaire. Si tu veux encoder du Real il faut utiliser mettre le quote sur le deuxième cmd mais pour le reste il vaut mieux laisser l'autre ligne de commande.
Marsh Posté le 29-08-2005 à 13:58:59
Bizarre car tout ca que tu me dis est ok !!! Mais ca me met l'erreur ...
Tu peux me faire parvenir ton archive de Mencoder ? par ftp si tu as ou par mail ...
Merci a toi !!! Comme ca on sera sur que ca mercheras !!!
Marsh Posté le 29-08-2005 à 16:32:30
C'est pas une question d'archive, le message indique simplement que mencoder.exe n'est pas trouvé. Essaie el lachant ton fichier directement sur le VBS plutot que sur le raccourci ?
Au fait, mencoder.exe est bien dans le même répertoire que le vbs ?
Marsh Posté le 29-08-2005 à 16:56:48
J'ai essayé et ca fait le MEME message !!!
Oui mencoder.exe est a coté de Recode.vbs
Ca pourrait etre car j'ai rien rajouté a mplayer et mencoder ? je veux dire aucun codec ou plugin rajouté !!!
Marsh Posté le 29-08-2005 à 17:57:01
Bon alors rien à voir. Essaie de rajouter à la fin du script :
MsgBox cmd
pour voir quelle est la ligne de commande appelée ?
Marsh Posté le 29-08-2005 à 18:04:38
ce logiciel a l'air bien sympa!
Savez-vous si on peut encoder une certaine partie du fichier source plutot que tout le fichier? Merci...
edit: le manuel online est inaccessible on dirait
Marsh Posté le 29-08-2005 à 22:10:38
Oh oh... désolé !
L'erreur est due à l'espace dans le chemin d'accès qui n'était pas pris en compte.
Voici le script corrigé Recode.vbs. Cette version encode à 800 kb/s :
Dim FSO
Dim filename
Dim cmd
Dim i
Dim res
Set FSO = CreateObject("Scripting.FileSystemObject" )
If WScript.arguments.length = 0 Then
WScript.Echo "Please drop at least one file"
WScript.Quit
End If
For i=0 to WScript.arguments.length - 1
filename = WScript.arguments.item(i)
'cmd = """" & FSO.GetParentFolderName(WScript.ScriptFullName) + "\mencoder.exe"" -ovc xvid -xvidencopts quant_type=mpeg:fixed_quant=4:me_quality=6:vhq=4:trellis -vf harddup -oac mp3lame -lameopts mode=1:cbr:br=128 -af volnorm -af-adv force=0 """ + filename + """ -o """ + FSO.GetParentFolderName(filename) + "\recoded." + FSO.GetBaseName(filename) + ".avi"""
cmd = """" & FSO.GetParentFolderName(WScript.ScriptFullName) + "\mencoder.exe"" -ovc xvid -xvidencopts quant_type=mpeg:bitrate=800:me_quality=6:vhq=4:trellis -oac mp3lame -lameopts mode=1:cbr:br=128 -af volnorm -af-adv force=0 """ + filename + """ -o """ + FSO.GetParentFolderName(filename) + "\recoded." + FSO.GetBaseName(filename) + ".avi"""
Dim WshShell
Set WshShell = CreateObject("Wscript.Shell" )
Set WshSysEnv = WshShell.Environment("SYSTEM" )
res = WshShell.Popup("Now encoding: " + FSO.GetFileName(filename), 10, "Recode", 1 + 64) ' OK / Cancel
If res = 2 Then
WScript.Quit
End if
' Settings for intWindowStyle.
'
' 0 Hide the window and activate another window.
' 1 Activate and display the window. (restore size and position) Specify this flag when displaying a window for the first time.
' 2 Activate & minimize.
' 3 Activate & maximize.
' 4 Restore. The active window remains active.
' 5 Activate & Restore.
' 6 Minimize & activate the next top-level window in the Z order.
' 7 Minimize. The active window remains active.
' 8 Display the window in its current state. The active window remains active.
' 9 Restore & Activate. Specify this flag when restoring a minimized window.
' 10 Sets the show-state based on the state of the program that started the application. Example
WshShell.Run cmd, 8, True
Next
Marsh Posté le 29-08-2005 à 23:55:16
La ca marche nickel ...
Merci a toi beaucoup !!!
Si je glisse 10 fichiers d'un coup sur le script il les fera les 10 ???
De plus le script garde il le bitrate ? la resolution ? le format ? de la video d'origine ????
Encore merci !!!
Marsh Posté le 30-08-2005 à 01:04:41
Si tu glisses 10 fichiers il fera les 10, sauf si tu cliques sur cancel lorsqu'il demande la confirmation. Si tu ne cliques pas, l'encodage démarre au bout de 10 secondes.
Le script met le bitrate à 800, crée un XviD+MP3, et ne change pas la taille de l'image.
Marsh Posté le 30-08-2005 à 10:18:30
Ok ben merci pour tout a toi ...
Je vais encoder comme un fou alors !!!
Bonne continuation a toi et encore merci !!!
Marsh Posté le 15-06-2006 à 18:38:32
Bonjour, j'ai un petit souci, j'ai modifié le code afin d'incruster les sous-titres. Je souhaite encoder en Xvid en 2 passes, or avec le code que j'utilise, l'encodage commence directement par la seconde passe, pourriez-vous me donner un coup de main ?
Dim FSO
Dim filename
Dim cmd
Dim i
Dim res
Set FSO = CreateObject("Scripting.FileSystemObject" )
If WScript.arguments.length = 0 Then
WScript.Echo "Please drop at least one file"
WScript.Quit
End If
For i=0 to WScript.arguments.length - 1
filename = WScript.arguments.item(i)
cmd = """" & FSO.GetParentFolderName(WScript.ScriptFullName) + "\mencoder.exe"" -subpos 95 -subalign 2 -subfont-text-scale 3.3 -subfont-blur 1 -sub-bg-alpha 0 -sub-bg-color 0 -subfont-outline 1 -ffactor 10 -unicode -subcp latin1 -autosub -ovc xvid -xvidencopts pass=1:turbo:max_bframes=0:chroma_me -nosound """ + filename + """ -o """ + FSO.GetParentFolderName(filename) + "\" + FSO.GetBaseName(filename) + ".VOST.avi"""
cmd = """" & FSO.GetParentFolderName(WScript.ScriptFullName) + "\mencoder.exe"" -subpos 95 -subalign 2 -subfont-text-scale 3.3 -subfont-blur 1 -sub-bg-alpha 0 -sub-bg-color 0 -subfont-outline 1 -ffactor 10 -unicode -subcp latin1 -font tahomabd.ttf -autosub -oac mp3lame -lameopts mode=0:cbr:br=128 -srate 44100 -ovc xvid -xvidencopts pass=2:bitrate=1000:max_bframes=0:chroma_me """ + filename + """ -o """ + FSO.GetParentFolderName(filename) + "\" + FSO.GetBaseName(filename) + ".VOST.avi"""
Dim WshShell
Set WshShell = CreateObject("Wscript.Shell" )
Set WshSysEnv = WshShell.Environment("SYSTEM" )
res = WshShell.Popup("Now encoding: " + FSO.GetFileName(filename), 10, "Recode", 1 + 64) ' OK / Cancel
If res = 2 Then
WScript.Quit
End if
' Settings for intWindowStyle.
'
' 0 Hide the window and activate another window.
' 1 Activate and display the window. (restore size and position) Specify this flag when displaying a window for the first time.
' 2 Activate & minimize.
' 3 Activate & maximize.
' 4 Restore. The active window remains active.
' 5 Activate & Restore.
' 6 Minimize & activate the next top-level window in the Z order.
' 7 Minimize. The active window remains active.
' 8 Display the window in its current state. The active window remains active.
' 9 Restore & Activate. Specify this flag when restoring a minimized window.
' 10 Sets the show-state based on the state of the program that started the application. Example
WshShell.Run cmd, 8, True
Next
Marsh Posté le 28-08-2005 à 19:44:00
Bonjour,
Je souhaiterais savoir comment faire un re-encodage en lot de video !!! Je m'explique :
Je souhaite re-encoder un dossier contenant de nombreuses videos afin de reduire la taille du dossier complet ...
Les videos sont de même extentions mais peut etre de codecs (audio ou video) differents !
Je souhaiterais les re-encoder avec un codec XVID en 800kbps ...
Je sais que je peux les ajouter un par un dans virtualdub et apres lui demander de tout traiter ...
Auriez vous un systeme plus simple afin de me simplifier grandement la tache (tache que je repete assez souvent !) ??
Merci de vos reponses !!!