Lister et récupérer la durée de médias
Pour faciliter la facturation de transcodages j’ai besoin d’extraire la liste des fichiers traités ainsi que la durée des fichiers.
Le tout doit être inscrit dans un fichier compatible .csv pour la comptabilité.
Après avoir trouvé un .bat sur StackOverflow.com qui affiche la durée en seconde, je l’ai adapté pour l’afficher en minutes et ajouter les marqueurs « ; » nécessaires au CSV :
@echo off >liste.csv ( for %%F in (*.mpg *.mp4 *.mkv *.avi *.m4a *.mxf *.mov *.ts) do ( for /f "tokens=2-5 delims=:., " %%a in ( 'ffmpeg -i "%%F" 2^>^&1 ^| find "Duration:"' ) do ( set /p =%%~nxF^;<nul setlocal enableDelayedExpansion set /a "duration=1%%a*60 + 1%%b - 6100" echo !duration!:%%c endlocal ) ) ) pause
Le fichier .bat est à executer dans le repertoire où ce situe les médias à lister.