145 votes

Comment obtenir la durée d'une vidéo en secondes ?

Comment puis-je obtenir la durée de la vidéo en secondes ?

Ce que j'ai essayé :

ffmpeg -i file.flv 2>&1 | grep "Duration"
  Duration: 00:39:43.08, start: 0.040000, bitrate: 386 kb/s

mediainfo file.flv | grep Duration
Duration : 39mn 43s

Ce qui est proche, mais ce n'est pas si précis, 2383 est 39,71 minutes.

ffmpeg -i file.flv 2>&1 | grep "Duration"| cut -d ' ' -f 4 | sed s/,// | sed 's@\..*@@g' | awk '{ split($1, A, ":"); split(A[3], B, "."); print 3600*A[1] + 60*A[2] + B[1] }'
2383

-8voto

codechimp Points 91

Si vous voulez une durée précise, oubliez FFmpeg. Il ne donne qu'une estimation basée sur la taille des fichiers et le bitrate moyen. J'ai constaté, dans certains cas, que la durée estimée était 2 fois plus élevée !

Sous Linux, si le fichier est créé et modifié uniquement pendant l'enregistrement vidéo en question, une autre solution consisterait à utiliser l'heure de création et de dernière modification pour calculer la durée, comme dans le cas suivant :

stat -c "%X %Y" video.mpg | awk '{print $2 - $1}'

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X