Bienvenue, Invité
28 avril 2024, 15:27:04
Nouvelles: Nous espérons que la nouvelle version du forum de Trad-Fr vous ravira.

Auteur Sujet: [Résolu]Comment ne pas donner de nom de fichier pour les .job  (Lu 3987 fois)

Billybob

  • Visiteur Ponctuel
  • **
  • Hors ligne Hors ligne
  • Messages: 17

Bonjour à tous,

J'ai fait appel à vous récemment pour savoir comment automatiser un traitement de VirtualDub avec un simple clic. Sur les conseils de Room |312|, j'ai réussi mais pas tout à fait. Je m'explique:

Je veux faire plusieures tâches de traitement vidéo sur une vidéo au format brut découpée en tronçons de 1Go. Les segments sont de la forme:
XXX_laDate_leNuméroDuFilm_0000
XXX_laDate_leNuméroDuFilm_0001
XXX_laDate_leNuméroDuFilm_0002.....

VirtualDub, avec le script, arrive à me mettre les segments les uns derrière les autres, donc ça c'est bon. Le problème est que le script que je veux créer  doit pouvoir traiter d'autres fichiers que les premiers. Si j'enregistre un truc demain, la date sera différente, donc le nom du fichier aussi, et le script ne le reconnaîtra pas. :mur:

L'idéal serait donc de lui faire comprendre qu'il y a des fichiers de la forme
XXXXXXXXXXXXXXXXXXX_0000, XXXXXXXXXXXXXXXXXX_0001... et que la seule chose à prendre en compte est les quatre derniers chiffres.

Pour faire ça, il faut aller modifier le script en Sylia et dans sa syntaxe, régler le problème. Et j'y arrive pas :oops: ...

Quelqu'un peut m'aider? Un conseil? J'ai trouvé la page de référence du langage (>http://www.virtualdub.org/docs/vdscript.txt) mais il est basé sur du C et je ne pratique pas ce langage (aucun en fait :maisbiensur: ) donc c'est pas gagné...

Siouplaît.. :lol:
IP archivée

Room |312|

  • Référent
  • *****
  • Hors ligne Hors ligne
  • Messages: 4179
[Résolu]Comment ne pas donner de nom de fichier pour les .job
« Réponse #1 le: 17 février 2007, 14:22:02 »

Bonjour Billybob :D

Je ne saurais pas te dire ce qu’il est possible de tirer à partir de Sylia. En revanche, on peut envisager de modifier les noms de tes fichiers en ajoutant quelques lignes au fichier batch, ce qui donnera :

Citer
@echo off
set compteur=1
for /f %%a in ('dir G:\VD\*.avi /b') do (call :renommer %%a)
set compteur=
goto :vd
:renommer
set fichier=%~d1
set chemin=%~p1
set nom=%~n1
set extension=%~x1
ren %fichier%%chemin%%nom%%extension% segment%compteur%%extension%
set /a compteur+=1
goto :eof

:vd
start /D "D:\Program Files\VirtualDub" VirtualDub.exe /s"G:\VD\process.jobs" /r /x

Le script en plus de lancer une liste de tâches avec VD modifiera le nom des fichiers de façon incrémentielle en segment1, segment2, etc. La contrainte, c’est que les fichiers doivent rester dans le même ordre, sinon le résultat sera dans tous les sens ^^ !

Nota : il est tout à fait possible de renommer les fichiers de la manière dont tu l’envisages, mais n’étant pas une pro de MS-Dos, il faudra que tu modifies le script en te faisant aider par de plus spécialistes.

Alors pourquoi faire ça ? En fait, l’idée c’est de créer un jobs qui travaillera toujours à partir de la même base de nom et d’utiliser la capacité de VD à détecter les suites logiques.

Pour être claire, je résume : il s’agit dans un premier temps de renommer manuellement tes fichiers en segment1, segment2, etc. (ou ce que tu voudras, du moment que c’est une suite logique). Sur cette base tu crées ton jobs mais en ajoutant seulement le segment2 (les autres, quel que soit leur nombre seront automatiquement ajoutés). Tu adaptes le script à tes besoins (concerne essentiellement le nom que tu veux donner à tes fichiers, les chemins d’accès et le type de fichiers, cf. ce qui est en rouge). @+++ Room |312| :wink:
IP archivée


Billybob

  • Visiteur Ponctuel
  • **
  • Hors ligne Hors ligne
  • Messages: 17
[Résolu]Comment ne pas donner de nom de fichier pour les .job
« Réponse #2 le: 19 février 2007, 17:10:33 »

Room |312|, je voudrais pas avoir l'air de me répéter, mais merci!
 :praise:  :praise:  :praise:  :praise:  :praise:  :praise:  :praise:  :praise:  :praise:  :praise:  :praise:  :praise:  :praise:

Ton bout de code était ce qu'il me fallait. J'avais essayé de le faire seul, sans résultat probant.

Sur la base de ce que tu m'as donné, et que j'ai remanié pour adapter à mon système, j'ai réussi à parvenir à mon but.

Voilà le code qui marche:

@echo off
set compteur=1
cd E:\Enregistrements\Copie_de_Nouveau_dossier
for /f %%a in ('dir *.avi /b') do (call :renommer %%a)
set compteur=
goto :vd
:renommer
set fichier=%~d1
set chemin=%~p1
set nom=%~n1
set extension=%~x1
ren %fichier%%chemin%%nom%%extension% segment%compteur%%extension%
echo %fichier%%chemin%%nom%%extension% segment%compteur%%extension%
set /a compteur+=1
goto :eof
:vd
start /D "c:\Program Files\VirtualDub" VirtualDub.exe /s"E:\DonneesSZ\test.jobs" /r /x


Il ne faut pas oublier non plus d'éditer le fichier .job avec le bloc-notes et de spécifier, à la place du fichier utilisé pour faire la liste des tâches, le nom choisi dans le script. Ici, segment1 et segment2 pour le segment suivant. Sans surprises... :lol:

Deux sujets que je lance, deux réponses de Room |312| et hop, deux problèmes résolus! C'est ce qui s'appelle un sans faute :D .

En tout cas, Room |312|, chapeau bas. :super:
IP archivée

Room |312|

  • Référent
  • *****
  • Hors ligne Hors ligne
  • Messages: 4179
[Résolu]Comment ne pas donner de nom de fichier pour les .job
« Réponse #3 le: 19 février 2007, 21:19:45 »

Bonsoir Billybob :D

C’est vraiment très gentil à toi ^^. Je suis ravie d’avoir pu t’aider. Tu te débrouilles comme un chef  :bravo: ! Bravo et merci pour le [Résolu]. Amicalement. @+++ Room |312| :wink:
IP archivée


cjacquel

  • Nouveau Membre
  • *
  • Hors ligne Hors ligne
  • Messages: 4
[Résolu]Comment ne pas donner de nom de fichier pour les .job
« Réponse #4 le: 28 mars 2007, 14:38:10 »

Bonjour,

Serais il possible d'avoir le contenu du fichier .job ?

Merci,
Christophe
IP archivée

Room |312|

  • Référent
  • *****
  • Hors ligne Hors ligne
  • Messages: 4179
[Résolu]Comment ne pas donner de nom de fichier pour les .job
« Réponse #5 le: 28 mars 2007, 21:38:53 »

Re- :D

Euh… Je ne vois pas très bien où tu veux en venir (d’autant plus que tu multiplies les posts qui semblent être dans la continuité de ton premier message) mais le mieux, c’est que tu le crées toi-même avec VD. Pour accéder à son contenu, édite-le ensuite au Bloc-notes. @+++ Room |312| :wink:
IP archivée


GravuTrad

  • Administrateur
  • *****
  • Hors ligne Hors ligne
  • Messages: 4604
[Résolu]Comment ne pas donner de nom de fichier pour les .job
« Réponse #6 le: 28 mars 2007, 22:23:51 »

room, toujours aussi parfaite. :wink:
IP archivée
On a toujours besoin d'un plus petit que soi! (Petit!Petit!)