Durée d'une vidéo en Flash
Le
Rémi Moyen
Bonsoir,
C'est peut-être pas le meilleur endroit pour ma question, mais y'a
peut-être des gens qui savent ici
Je suis en train de me bricoler une petite appli pour surveiller des
téléchargements d'émissions télé (pour ceux qui veulent tout savoir,
c'est la BBC via get_iplayer), et j'aimerais pouvoir voir rapidement
quel est l'état d'avancement.
Depuis internet, je récupère des fichiers vidéo en Flash (.flv -- je
peux donner plus d'infos si nécessaire, mais je n'y connais rien en
vidéo donc je ne sais même pas qu'est-ce qui serait utile !), et je
récupère aussi la durée totale de l'émission. Mais ce que je voudrais,
c'est savoir à un instant donné, quelle durée j'ai déjà téléchargé. Si
j'ouvre le fichier, avec vlc par exemple, il indique la durée totale (et
s'arrête brusquement dans sa lecture quand il arrive à la vraie fin du
fichier). Je n'ai rien vu qui permette de trouver la durée réelle. Une
recherche rapide sur le web ne m'a rien donné.
Je peux bricoler un truc en fonction de la taille du fichier (je crois
que je peux récupérer la taille totale du fichier depuis internet), mais
à moins que le .flv ne soit encodé à bitrate constant (c'est peut-être
le cas, je n'en ai pas la moindre idée), ça ne sera pas exact. Notez
qu'à vrai dire, pour ce que je veux en faire (i.e. afficher un truc du
genre "x % done"), ça serait une approximation bien suffisante. Mais par
curiosité, envie de faire les choses bien, etc., j'aimerais bien trouver
une autre manière de faire. Je peux aussi parser la sortie de l'appli
qui télécharge pour trouver l'avancement (elle affiche ce pourcentage
sur la sortie standard), mais j'aime pas trop non plus.
Donc, est-ce que quelqu'un connaîtrait un outil (Linux, bien évidemment)
qui me permettrait facilement et rapidement de trouver la durée réelle
d'un fichier .flv partiellement téléchargé ?
Merci d'avance !
--
Rémi Moyen
C'est peut-être pas le meilleur endroit pour ma question, mais y'a
peut-être des gens qui savent ici
Je suis en train de me bricoler une petite appli pour surveiller des
téléchargements d'émissions télé (pour ceux qui veulent tout savoir,
c'est la BBC via get_iplayer), et j'aimerais pouvoir voir rapidement
quel est l'état d'avancement.
Depuis internet, je récupère des fichiers vidéo en Flash (.flv -- je
peux donner plus d'infos si nécessaire, mais je n'y connais rien en
vidéo donc je ne sais même pas qu'est-ce qui serait utile !), et je
récupère aussi la durée totale de l'émission. Mais ce que je voudrais,
c'est savoir à un instant donné, quelle durée j'ai déjà téléchargé. Si
j'ouvre le fichier, avec vlc par exemple, il indique la durée totale (et
s'arrête brusquement dans sa lecture quand il arrive à la vraie fin du
fichier). Je n'ai rien vu qui permette de trouver la durée réelle. Une
recherche rapide sur le web ne m'a rien donné.
Je peux bricoler un truc en fonction de la taille du fichier (je crois
que je peux récupérer la taille totale du fichier depuis internet), mais
à moins que le .flv ne soit encodé à bitrate constant (c'est peut-être
le cas, je n'en ai pas la moindre idée), ça ne sera pas exact. Notez
qu'à vrai dire, pour ce que je veux en faire (i.e. afficher un truc du
genre "x % done"), ça serait une approximation bien suffisante. Mais par
curiosité, envie de faire les choses bien, etc., j'aimerais bien trouver
une autre manière de faire. Je peux aussi parser la sortie de l'appli
qui télécharge pour trouver l'avancement (elle affiche ce pourcentage
sur la sortie standard), mais j'aime pas trop non plus.
Donc, est-ce que quelqu'un connaîtrait un outil (Linux, bien évidemment)
qui me permettrait facilement et rapidement de trouver la durée réelle
d'un fichier .flv partiellement téléchargé ?
Merci d'avance !
--
Rémi Moyen

Poser une question


mplayer -ao null -vo null -endpos 0 video.flv 2> /dev/null |
grep duration
donne la durée en secondes.
Sauf que si la durée est indiquée dans les entêtes, ce qui est le cas en
FLV, alors ce sera celle-là qui sera affichée, pas la durée réelle des
données disponibles.
Soit dit en passant, tu aurais pu vérifier avant de poster : ce n'est pas
bien difficile de récupérer un FLV n'importe où, de le tronquer au milieu et
de regarder ce que ça affiche.
Ahum, ta logique est bien curieuse...
Une chose est sûre : si un flv est tronqué où si son en-tête est fausse,
alors il n'y a AUCUN moyen de connaître sa longueur avant de l'avoir
reçu en entier...
Or Rémi demande s'il peut connaître la longueur (probable en
l'occurrence) AVANT la fin du téléchargement.
J'ai fourni une réponse, point.
Non, c'est juste que tu as tout compris de travers.
Ben si, en consultant l'entête. Manifestement tu n'as pas du tout compris le
message de Remi.
Remi a un fichier FLV qui est en train d'être téléchargé, donc qui est,
provisoirement, tronqué.
Il est possible de connaître sa durée totale, celle qu'il aura quand il sera
terminée : il suffit de consulter l'entête du fichier. C'est ce que donne la
commande que tu as postée, mais Remi savait déjà l'obtenir.
Rémi voudrait la durée de la partie déjà téléchargée.
avidemux trouve la bonne taille quand on lui donne un fichier tronqué.
Quand je lance la version avec interface graphique j'ai sur la sortie
standard :
[Editor] Duration in seconds: 723, in samples: 31910738
Je te laisse chercher un moyen de scripter ça (avidemux existe avec une
CLI)...
--
LL