Outils pour utilisateurs

Outils du site


tutoriels:conversion_par_lot_avec_vlc

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
tutoriels:conversion_par_lot_avec_vlc [2015/05/06 17:22]
luc
tutoriels:conversion_par_lot_avec_vlc [2015/05/06 20:19] (Version actuelle)
luc
Ligne 33: Ligne 33:
  CALL SET _newnm=%%_firstbit:%_qt%=%%  CALL SET _newnm=%%_firstbit:%_qt%=%%
  SET _commanm=%_newnm:,=_COMMA_%  SET _commanm=%_newnm:,=_COMMA_%
- REM ECHO %_commanm% + CALL "C:\Program Files (x86)\VideoLAN\VLC\vlc.exe" --intf dummy %1 --sout=#transcode{acodec="s16l",ab="128",channels="2",samplerate="44100"}:standard{access="file",mux="wav",dst="%_commanm%.wav"} vlc://quit
- CALL "C:\Program Files (x86)\VideoLAN\VLC\vlc.exe" --intf dummy -vvv %1 --sout=#transcode{acodec="s16l",ab="128",channels="2",samplerate"44100"}:standard{access="file",mux="wav",dst="%_commanm%.wav"} vlc://quit+
  ECHO fichier %_num%/%_count% converti  ECHO fichier %_num%/%_count% converti
  SET /A _num+=1  SET /A _num+=1
Ligne 52: Ligne 51:
 :eof :eof
 </code> </code>
-=== Explications du code ===+==== Explications du code ====
 Un minimum de connaissance en batch est nécessaire pour appréhender la suite.\\ Un minimum de connaissance en batch est nécessaire pour appréhender la suite.\\
 Par convention, les noms de variables commencent par le caractère _ (tiret bas, //underscore//) pour les différencier des variables du système. Par convention, les noms de variables commencent par le caractère _ (tiret bas, //underscore//) pour les différencier des variables du système.
  
-''SET /A _count=0'' initialise une variable qui va contenir le nombre de fichiers à traiter.\\ +<code>SET /A _count=0</code> initialise une variable qui va contenir le nombre de fichiers à traiter. 
-''FOR %%G IN (*.m4a) DO SET /A _count+=1'' est une boucle qui va incrémenter la variable précédemment créée pour chaque fichier trouvé. Ici seuls les fichiers avec l'extension ''.m4a'' sont pris en compte. Le modificateur ''/A'' de la commande ''SET'' permet d'utiliser des expressions arithmétiques.\\ +<code>FOR %%G IN (*.m4a) DO SET /A _count+=1</code> est une boucle qui va incrémenter la variable précédemment créée pour chaque fichier trouvé. Ici seuls les fichiers avec l'extension ''.m4a'' sont pris en compte. Le modificateur ''/A'' de la commande ''SET'' permet d'utiliser des expressions arithmétiques. 
-''SET /A _num=1'' initialise une variable qui va indiquer la position du fichier en cours de traitement.\\ +<code>SET /A _num=1</code> initialise une variable qui va indiquer la position du fichier en cours de traitement. 
-''FOR %%G IN (*.m4a) DO (CALL :SUB_VLC "%%G")'' est une boucle qui va appeler la routine de conversion ''SUB_VLC'' pour chaque fichier avec l'extension ''.m4a''. La routine reçoit un paramètre lors de son appel.\\ +<code>FOR %%G IN (*.m4a) DO (CALL :SUB_VLC "%%G")</code> est une boucle qui va appeler la routine de conversion ''SUB_VLC'' pour chaque fichier avec l'extension ''.m4a''. La routine reçoit un paramètre lors de son appel. 
-''IF NOT EXIST cdda MKDIR cdda'' crée le répertoire ''cdda'' s'il n'existe pas déjà.+<code>IF NOT EXIST cdda MKDIR cdda</code> crée le répertoire ''cdda'' s'il n'existe pas déjà
 +<code>FOR %%G IN (*.m4a.wav*) DO (CALL :SUB_RENAME "%%G")</code> est une boucle qui va appeler la routine qui va renommer les fichiers créés et les mettre dans le répertoire ''cdda''. La routine reçoit un paramètre lors de son appel. 
 +<code>GOTO :eof</code> pour sortir du fichier de commandes à la fin du traitement. 
 +=== Routine pour convertir === 
 +<code>SET _firstbit=%1 
 +SET _qt="</code> récupère le paramètre passé à la routine et le place dans une variable. La deuxième variable contient un guillemet double. 
 +<code> CALL SET _newnm=%%_firstbit:%_qt%=%%</code>L'appel à ''SET'' par l'intermédiaire de ''CALL'' autorise l'analyse de sous-chaîne dans une variable.\\ Ici, la variable ''_newnm'' va contenir le contenu de la variable ''_firstbit'' dans lequel les occurrences du contenu de la variable ''_qt'' seront remplacées par rien. La syntaxe est ''%variable:ChaineATrouver=NouvelleChaine%''
 +<code>SET _commanm=%_newnm:,=_COMMA_%</code> remplace les caractères '','' (virgule) par le texte ''_COMMA_'' afin de ne pas perturber la commande de conversion, le caractère '','' (virgule) ayant une signification particulière. 
 +<code>CALL "C:\Program Files (x86)\VideoLAN\VLC\vlc.exe" --intf dummy %1 
 + --sout=#transcode{acodec="s16l",ab="128",channels="2",samplerate="44100"
 + :standard{access="file",mux="wav",dst="%_commanm%.wav"
 + vlc://quit</code> appelle le programme externe VLC. Le chemin d'accès est à modifier en fonction du système.\\ 
 +L'option ''--intf dummy'' démarre VLC avec l'interface //dummy// c'est à dire aucune.\\ 
 +Le paramètre ''%1'' ouvre le fichier dont le chemin est contenu dans la variable ''%1'' c'est à dire celle passée en paramètre à la routine.\\ 
 +L'option ''--sout='' définit la chaîne de sortie du flux.\\ 
 +  * ''#transcode{acodec="s16l",ab="128",channels="2",samplerate="44100"}'' indique que VLC va transcoder le flux d'entrée en utilisant le codec audio **s16l** (celui utilisé pour le wav), avec un débit de **128**kbit/s, en stéréo et une fréquence d'échantillonnage de **44100**Hz. 
 +  * '':standard{access="file",mux="wav",dst="%_commanm%.wav"}'' indique à VLC d'utiliser une sortie standard en utilisant la méthode de sortie **file** (pour écrire un fichier), en utilisant le multiplexeur **wav** et la destination sera **%_commanm%.wav**. Le script remplace à la volée ''%_commanm%'' par le contenu de la variable. 
 +  * ''vlc:%%//%%quit'' indique à VLC de fermer son programme lorsque le travail est terminé. 
 + 
 +<code>ECHO fichier %_num%/%_count% converti 
 + SET /A _num+=1</code> pour afficher la progression de la conversion. Puis la variable indiquant le numéro de fichier est incrémentée. 
 + 
 +=== Routine pour renommer === 
 +<code>SET _origfnm=%1</code> récupère le paramètre passé à la routine et le place dans une variable. 
 +<code>SET _origfpath=%~dp1</code> ne conserve que le lecteur et le chemin du fichier du paramètre ((<code>%~I         - étend %I en supprimant les guillemets (") 
 +%~fI        - étend %I en nom de chemin d'accès reconnu 
 +%~dI        - étend %I en lettre de lecteur uniquement 
 +%~pI        - étend %I en chemin d'accès uniquement 
 +%~nI        - étend %I en nom de fichier uniquement 
 +%~xI        - étend %I en extension de fichier uniquement 
 +%~sI        - chemin étendu contenant uniquement des noms courts 
 +%~aI        - étend %I en attributs du fichier 
 +%~tI        - étend %I en date/heure du fichier 
 +%~zI        - étend %I en taille du fichier 
 + 
 +Vous pouvez combiner les modificateurs pour obtenir des résultats composés : 
 +%~dpI       - étend %I en lettre de lecteur et chemin d'accès uniquement 
 +%~nxI       - étend %I en nom de fichier et extension uniquement 
 +%~fsI       - étend %I en nom de chemin complet avec noms courts uniquement 
 +%~ftzaI     - étend %I en DIR comme ligne en sortie</code>)). 
 +<code>SET _endbit=%_origfnm:*.m4a=%</code> ne garde que la partie du nom de fichier après //m4a//. 
 +<code>CALL SET _newfilenm=%%_origfnm:.m4a%_endbit%=.wav"%%</code> remplace l'extension du fichier par ''.wav'' et ajoute un guillemet double. 
 +<code>CALL SET _newfilenm=%%_newfilenm:%_origfpath%=%%</code> supprime le chemin pour ne garder que le nom de fichier. 
 +<code>SET _newfilenm=%_newfilenm:_COMMA_=,%</code> remplace le texte ''_COMMA_'' par une '','' (virgule) pour obtenir le nom de fichier d'origine. 
 +<code>COPY %1 .\cdda\%_newfilenm% 
 +DEL %1</code> copie le fichier dans le sous-répertoire ''cdda'' en lui affectant un nouveau nom puis efface le fichier transcodé. 
 + 
 +==== Pour aller plus loin ==== 
 +Documentation de VLC pour l'utilisation en ligne de commande [[https://wiki.videolan.org/Documentation:Command_line/|ici]].\\ 
 +Conversion vers le format **wav** avec VLC [[https://wiki.videolan.org/WAVE|ici]].
  
tutoriels/conversion_par_lot_avec_vlc.1430925745.txt.gz · Dernière modification: 2015/05/06 17:22 de luc