VideoVerify : validez le format de vos médias

Un autre développement personnel, en Java et libre, qui vous permet de valider le format technique d’un fichier audio et vidéo automatiquement.

Publié le

« Valider » consiste à récupérer les informations technique du fichier (débit, résolution, nombre de pistes, standard…) et de les comparer avec une liste pré établie de formats autorisés. Si le fichier ne correspond pas dans la liste, un mail est envoyé.

Il n’y a pas d’analyse faite dans les flux eux même, c’est à dire que l’application ne vérifie pas si les flux sont corrects tout au long du média, mais juste les entêtes. Le principal avantage est que la vérification est rapide (plusieurs fichiers par seconde). Vous paramétrez plusieurs dossiers et l’application les scanneras. Si vous ajoutez/modifiez un fichier, il sera analysé automatiquement.

VideoVerify utilise l’exécutable ffprobe issu de la suite ffmpeg. Il le lance et il récupère le texte de retour qu’il analyse. On peut dire par extension que VideoVerify analyse le retour de ffpobe.

La configuration se fait avec un fichier XML unique.

Pour certains formats broadcast/récent ffprobe ne retourne pas certaines valeurs correctement. VideoVerify filtre ces valeurs en essayant au mieux de les réparer. Et parfois n’y arrive pas.

VideoVerify peut être comparé au Tektronix Cerify, avec beaucoup moins de fonctions, mais en étant totalement libre !

Pour utiliser l’engin, il vous faut :

  • Le jar de VideoVerify
  • Le jar JavaMail (dans la page de download de VideoVerify)
  • Le jar de Log2
  • Le jar de Mime-utils
  • Une installation propre de Java, à partir de la 1.6.
  • Un fichier XML de configuration correct. Un exemple ici.
  • ffmpeg, récent, installé avec ffprobe. Je conseille de poser ffmpeg et ffprobe dans le PATH; si vous l’installez depuis un paquet sous Linux ça sera fait.
  • d’avoir des fichiers vidéos à analyser qui soient accessibles par le système de fichier de la machine qui héberge VideoVerify, autrement en local, ou via un lecteur/montage réseau. Pensez à vérifier les droits d’accès si vous avez des problèmes !
  • D’avoir de bonnes connaissances en fichier audio/vidéo : savoir ce que c’est qu’un codec, container, débit, résolution, ratio… Je suis parti du principe que l’application sert à ceux qui ont un besoin de contrôle précis des médias qu’ils stockent ou qu’ils manipulent.
Voici un exemple de ligne de commande (unix) pour lancer l’ensemble :
 java -Dfile.encoding=UTF-8 -classpath videoverify-1.0.jar:log2-1.0.jar:javamail-1.4.2.jar:mime-util.jar hd3gtv.videoverify.MainClass config.xml

 

Voilà, il y a de quoi faire. J’ai parfaitement conscience qu’il n’y a pas beaucoup de documentation. N’hésitez pas à jeter un coup d’oeil au code, j’ai essayé de faire quelque chose de pas trop crade. Il y peut y avoir des informations sur les limitations de la chose, notamment à cause de ffprobe (même si je ne me plains pas, ffmpeg & Co sont des outils fantastiques).

VideoVerify contient un moteur de mails/analyse/rapports qui n’a rien d’extraordinaire ainsi qu’une API pour ffprobe qui peut vous permettre de récupérer les infos de médias via Java, très simplement et très proprement.

Les sources contiennent aussi un petit système de service assez sympa : le service reboot proprement en cas de changement de la configuration (ça ma fait gagner beaucoup de temps pour mes tests de validation).

Vous trouverez aussi un module de scan de dossier que j’ai refait moi même, en effet les principales lib qui existent pour ça ne prennent pas en charge le temps de copie d’un fichier : si vous l’analysez avant qu’il soit terminé d’être copié, catastrophe ! Mon code le gère (et ça fonctionne très bien).

Il y a aussi dans le code des petites fonctions sympa : calcul de timecodes, manipulation d’XML rapide, exécution de processus bien contrôlée et de la manipulation de temps.

Pour plus d’information, allez sur la page GitHub de VideoVerify