Il suffit d'utiliser ffprobe
directement. Pas besoin de sed
, grep
etc. Il existe plusieurs "durées" que vous pouvez acquérir (en fonction de vos entrées).
Format (conteneur) durée
ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 input.mp4
Résultat :
30.024000
Ajout de la -sexagesimal
utilisera le format d'unité de temps HOURS:MM:SS.MICROSECONDS :
0:00:30.024000
Durée du flux vidéo
Si vous souhaitez connaître la durée d'un flux vidéo ou audio particulier :
ffprobe -v error -select_streams v:0 -show_entries stream=duration -of default=noprint_wrappers=1:nokey=1 input.mp4
Résultat :
30.000000
Les commandes ci-dessus sont issues de FFmpeg Wiki : Conseils pour FFprobe .
Avec ffmpeg
Vous pouvez utiliser ffmpeg
pour obtenir la durée en décodant l'entrée :
ffmpeg -i input.mp4 -f null -
…
frame= 1587 fps=0.0 q=0.0 Lsize=N/A time=00:01:03.48 bitrate=N/A
Dans cet exemple time=00:01:03.48
est la durée.
Cela peut prendre beaucoup de temps en fonction de votre fichier d'entrée.