2009-09-30 8 views
2

J'ai une application multimédia qui convertit entre autres la vidéo en utilisant FFMpeg. La conversion vidéo étant la douleur qu'elle est, j'ai dans mon test des tests qui vérifient notre capacité à convertir divers formats vidéo, en mettant l'accent sur des exemples de vidéos connus pour ne pas fonctionner.Comment tester la synchronisation audio par programme

Un problème commun que nous avons remarqué des utilisateurs est que certaines vidéos se retrouvent avec leur audio désynchronisé après avoir été traitées, et je cherche un moyen de vérifier cela dans mes tests.

L'extraction de la partie audio des vidéos résultantes n'est pas un problème.

Ma meilleure idée jusqu'ici serait de vérifier le décalage du premier non-silence au début et à la fin et de comparer les deux vidéos, mais j'espère que quelqu'un d'intelligent a une meilleure idée. Le langage et l'environnement d'application sont Java, mais puisque c'est pour les tests, je suis libre d'utiliser n'importe quel jeu d'outils.

Merci!

+0

Si l'audio est désynchronisé, que se passe-t-il en fin de synchronisation? Est-ce qu'il est coupé au même point que la vidéo, ou continue-t-il avec la vidéo en noir? Qu'arrive-t-il au début? Le silence numérique? Identifiez d'abord l'une de ces vidéos problématiques à la main, puis vous pourrez déterminer ce qu'il faut tester par programme. – endolith

Répondre

3

Le problème de base est probablement que la vidéo et l'audio ont des longueurs différentes. Extrayez l'audio et testez sa longueur par rapport à la longueur de la vidéo. Si elles sont significativement différentes (plus que peut-être 0,05 sec, je ne suis pas vraiment sûr de ce qui est détectable comme "off"), alors il y a un problème. Pour le réparer, réencodez l'audio pour qu'il corresponde à la longueur de la vidéo, puis replacez l'audio et la vidéo dans un format de conteneur.

+0

Vous monsieur, êtes un génie. – obesechicken13

+0

Bien que si vous ne pouviez pas extraire la longueur audio ce problème serait plus difficile. Je continuerai à y penser. – obesechicken13

+0

vous m'avez perdu quelque part. Comment puis-je connaître la longueur de l'audio et/ou de la vidéo? Je reçois l'audio à partir du code ci-dessous pour '(film m: inMovies) { \t \t \t \t pour (Track T: m.getTracks()). { \t \t \t \t \t si (t.getHandler() égal à égal ("soun")) { \t \t \t \t \t \t \t audioTracks.add (t); \t \t \t \t \t} \t \t \t \t \t if (t.getHandler() égal à égal ("vide").) { \t \t \t \t \t \t videoTracks.add (t); \t \t \t \t \t} \t \t \t \t} \t \t \t} ' Et puis-je inclure les deux pistes audio et vidéo dans un résultat, puis le construire. –

Questions connexes