2010-01-07 12 views
2

Je suis en train de développer un logiciel qui enregistre des vidéos d'une source en direct dans des fichiers WMV (en utilisant la compression WMV1).Estimation du temps d'enregistrement vidéo restant

Je tente de fournir une estimation approximative du temps d'enregistrement restant, en fonction de l'espace restant sur le disque dur de stockage. Je ne peux pas simplement baser la taille du fichier de sortie sur le débit du codec, malheureusement, puisque la compression vidéo signifie que la taille de sortie varie énormément en fonction de la complexité de l'image.

Des pensées?

FYI J'utilise C# et DirectShow.

Répondre

1

Ceci est une très bonne question. Malheureusement, il n'y a pas moyen infaillible de le faire, mais vous avez deux options de base:

  1. Calculer l'avance l'espace moyen utilisé par unité de temps donnée à un débit donné, basé sur l'expérimentation ou les données du codec fournisseur. Commencez par utiliser la technique n ° 1, mais créez également un mécanisme pour déterminer l'espace moyen utilisé pendant un enregistrement donné, en divisant l'espace actuellement utilisé par le fichier de la durée totale d'enregistrement. Ensuite, utilisez cette métrique pour déterminer la durée restante.

L'option 1 est un moyen rapide et facile de commencer. L'option 2 nécessite un peu plus de programmation, mais votre estimation sera sensiblement plus précise. Après tout, la compression dans ces cas est basée sur ce que vous enregistrez. L'enregistrement d'un écran vert solide pendant 1 heure nécessite sensiblement moins de disque que l'enregistrement d'un arrière-plan en mouvement avec un premier plan continuellement changeant, ou peut-être une séquence fractale. Il n'y a aucun moyen de faire une bonne estimation à l'avance.

0

Vous pouvez uniquement estimer la taille de compression future en utilisant les taux de compression reçus au cours des x dernières secondes. N'ayez pas une valeur trop grande, ou trop petite. Une période de temps trop courte signifie que le temps peut changer énormément [en fonction de la quantité de mouvement dans la vidéo] et une durée trop longue signifie que le temps sera très imprécis.

Je suppose qu'un temps de 30 secondes pourrait fournir un degré de précision raisonnable

Questions connexes