2010-07-07 4 views
2

Bonne journée!Comment obtenir combien de vidéo (en secondes) est tamponnée à partir du fichier MP4 (Flash, AS3)

Je peux obtenir quelle partie du fichier en octets est chargé en utilisant netstream.bytesLoaded, netstream.bytesTotal, je peux obtenir la position de lecture en cours en utilisant netstream.time. Mais je veux savoir combien de secondes de vidéo sont déjà chargées (pas la longueur du buffer, qui reste constante).

La taille en octets chargée n'est pas directement proportionnelle à la durée de la vidéo.

Toute aide est vraiment appréciée!

+0

Avez-vous déjà trouvé cette photo? – supersan

+1

Oui, c'était il y a très longtemps, mais autant que je me souvienne, nous avons utilisé des informations d'images clés à partir de métadonnées de fichiers. Là, vous aurez le temps de déposer des mappages de position. En utilisant this et 'bytesLoaded' vous pouvez estimer quelle heure est chargée assez précise. – artvolk

Répondre

1

Cela dépend de la stratégie de compression/codec vidéo utilisée. Je ferais quelque chose naïve et estimer basée sur:

var secondsOfBuffer:Number = duration * (bytesLoaded/bytesTotal) - playPosition; 

cela vous donne une estimation approximative en supposant que la vidéo a été encodé dans un format de diffusion en continu.

+0

Pour mes fichiers mp4, la taille n'est pas proportionnelle à la longueur en secondes, je suppose que c'est parce que mp4 est adaptatif. Donc, pour l'instant, j'utilise des points de recherche pour estimer la quantité de vidéo chargée (en secondes). – artvolk

+1

droite, c'est pourquoi j'ai dit que cela dépend de la stratégie de codec/compression. – Jotham

Questions connexes