ffmpeg écrit ces informations dans stderr
, pas stdout
. Essayez ceci :
ffmpeg -i file.mp4 2>&1 | grep Duration | sed 's/Duration: \(.*\), start/\1/g'
Remarquez la redirection de stderr
à stdout
:2>&1
MODIF :
Votre sed
déclaration ne fonctionne pas non plus. Essayez ceci :
ffmpeg -i file.mp4 2>&1 | grep Duration | awk '{print $2}' | tr -d ,
Vous pouvez utiliser ffprobe
:
ffprobe -i <file> -show_entries format=duration -v quiet -of csv="p=0"
Il affichera la durée en secondes, telle que :
154.12
Ajout du -sexagesimal
l'option affichera la durée sous la forme hours:minutes:seconds.microseconds :
00:02:34.12