2009-05-06 10 views
0

J'ai un programme winform qui permet aux utilisateurs de télécharger des films Shockwave Flash sur un serveur. Pour obtenir la videoDuration, je crée une instance de "ShockwaveFlashObjects" - activeX, charge le film, puis lis le videoDuration jusqu'à ce qu'il passe de "0.0" à autre chose. Je comprends cela en lisant le GetVariable ("videoDuration").Comment lire la vidéoDuration d'un fichier .flv depuis * .Net sans utiliser le flash-activeX?

Souvent cela fonctionne, mais parfois il verrouille ou affiche des informations de l'animation Flash précédente qui a été chargée.

J'ai également eu du mal à distribuer le ShockWaveFlashObject-activeX. Je voudrais vraiment sauter cela et juste lire le fichier flash et trouver la durée de lecture du film.

Tous les films téléchargés sont des vidéos et ont donc une durée de lecture spécifique.

This question didnt help avec les réponses eather.

J'ai vérifié le swf-format à et de ce que je peux voir, il devrait être possible de lire le framerate et framecount et par cela calculer la durée, mais je ne pouvais pas trouver quelque chose sur les fichiers FLV. Peut-être que quelqu'un l'a déjà fait et peut me diriger vers un code sympa qui me fait gagner beaucoup de temps à essayer de comprendre la spécification?

Répondre

0

L'une des possibilités est d'utiliser ffmpeg pour lire les débits vidéo/audio. Une fois que vous avez ces détails, vous pouvez diviser la taille totale du fichier par la somme des débits vidéo/audio. Cela vous donne un nombre estimé de secondes (+/- quelques socnds).

Questions connexes