2017-09-08 1 views
-1

J'ai essayé de faire un fichier batch comme celui-ci:Comment utiliser ffmpeg pour convertir un ensemble de fichiers .mp4 en .mp3s?

cd (the folder I want to use) 
set counter = 1 
for /r %%file in (*) (
ffmpeg %%file -i "Track %counter%.mp3" 
set counter = counter + 1 
) 

Mais cela n'a pas fonctionné. Je suis encore un peu nouveau pour les fichiers batch et CMD en général, alors s'il vous plaît dites-moi tout ce que j'ai mal fait.

Aussi, un peu lié, serait convertir les fichiers .mp4 à .flac être mieux que .mp3 en termes de qualité audio? Ou puisque les fichiers .mp4 sont déjà compressés, cela ne ferait-il pas une différence?

+0

'ffmpeg %% fichier -i" Piste% compteur% .mp3 "' -> 'ffmpeg -i %% fichier" Piste% compteur% .mp3 "' – Mulvya

Répondre

0
  1. les espaces sont significatifs dans assigment variables, sauf en arithmétique /a expressions

    :: plus correct set/compteur = 1 :: fonctionne aussi à cause de /a set/compteur = 1

  2. le nom de variable pour se limite à un caractère alphabétique AZ AZ

    pour/r% f

  3. l'expansion dans le bloc (..) se fait avant la pour la commande commence, pour éviter ce setlocal enabledelayedexpansions ou d'appeler une fonction, également à l'aide d'écho avant la commande peut aider à déboguer

Tous ensemble

:: cd (the folder I want to use) 

set /a counter=1 

for /r %%f in (*.*) do (
    call :proc %%f 
    set /a counter=counter+1 
) 
:: to avoid to execute following functions 
@goto :eof 

:: functions 

:proc 
@echo ffmpeg -i %1 "Track %counter%.mp3" 
@goto :eof