Mes dernières publications libres

J’avais présenté ici il y a quelques temps maintenant mon gros projet libre, MyDMAM, mais j’ai dû, ces derniers mois, me concentrer sur d’autres points. Et je me suis dit que ça pourrait peut-être intéresser quelqu’un ici un jour.

Publié le

Nouveaux outils libres

AS5K-Parallel-Control est une application (en JavaFX 8) qui correspond à un besoin très spécifique, celui de piloter, via l’API socket, l’enregistrement simultané de plusieurs canaux vidéo sur un serveur Avid AirSpeed 5000. On utilise normalement des systèmes plus complexes comme une automation en VDCP, ou des outils comme Avid iNews Command.
Mais quand on ne dispose pas de ces outils-là, et que l’on a besoin de lancer sur 1, 2, ou 3 canaux un REC ou un STOP, simplement, et bien cette toute petite appli le fait. Elle gère notamment la gestion des noms de fichiers et des Id.
Bref, une appli très spécifique pour un besoin et un matériel très spécifique.

On Road Media Sender est une appli testée et fonctionnelle sur OSX et Windows, toujours en JavaFX 8, qui permet à un journaliste ou à un JRI (journaliste reporter d’images), d’envoyer des images tournées et montées, depuis le terrain, sur un serveur FTP (en toute logique, celui de la rédaction qui attend les images). L’appli permet un envoi simple, à partir de l’export vidéo d’un logiciel de montage quelconque, de gérer la création automatique d’un bas-débit vidéo et de l’envoyer. On peut choisir le format et la destination. Tout est fait pour qu’il y ai le moins de questions à se poser, et pour aller le plus vite possible. Le transcodage est fait via ffmpeg, en prenant en compte automatiquement l’entrelacement, le groupement des pistes audio, le temps restant et la reprise en cas d’erreur d’envoi.
Il existe bien sur des solutions propriétaires à ce genre de besoin, plus ou moins sur mesure, comme il existe aussi des logiciels de transcodage et des clients FTP. Mais quand on n’a pas les moyens et/ou le temps, et/ou le niveau de compétence à mettre dans cela, c’est un outil qui peut être très pratique.

Ces deux applications sont parfaitement fonctionnelles, et utilisés régulièrement par des humains qui en ont besoin !

JAXB

Maintenant coté R&D pur, j’ai fait la découverte de JAXB.
C’est une technologie Java qui permet de lire et d’écrire des fichiers XML et de parler avec des web services (SOAP/WDSL) avec des vrais objets Java comme si le fichier ou le service était un élément Java, permettant une grande simplicité dans l’écriture du code autour, notamment avec un IDE qui va faire de l’autocomplétion. JAXB se base sur WSDL et sur XSD pour travailler. C’est vraiment très puissant.

Je me suis permis de jouer avec, et j’ai publié quelques méthodes pour communiquer avec des systèmes pro vidéo.

ffprobe-jaxb est l’utilisation de JAXB pour comprendre le retour XML de ffprobe, l’outil de ffmpeg pour analyser un fichier audio/vidéo. Le README du projet GitHub décrit son utilisation. Grace à cela, il devient très simple de savoir si un fichier vidéo à des pistes audio, ou de connaître sa durée, ses codecs, etc… en quelques lignes de Java.

Quelques Gist

import-telestream-vantage-ws.sh est un petit script qui permet de créer automatiquement la structure de classes Java, via JAXB, de l’API SOAP d’un serveur Vantage de chez Telestream (un puissant serveur de transcodage vidéo propriétaire). Vu que je pense que je n’ai pas le droit de redistribuer quoi que ce soit venant de cette techno, j’ai donc laissé la méthode pour le faire. Après tout, si vous n’avez pas le serveur, l’API ne va pas vous servir à grand-chose.

telestream-vantage-ws.java est la méthode pour se servir des éléments fraichement crées avec le script précédent. J’y met pas mal d’exemples, notamment de quoi lancer un transcodage avec des variables, de quoi lister les workflows installés et de remonter les infos liés.

import-avid-interplay-ws.sh et avid-interplay-ws.java Mêmes principes qu’avec Vantage, mais là cette fois, c’est pour utiliser les API Avid Interplay (Assets, Archive,
Infrastructure, Jobs, Transfer et User Management). C’est très complet et très puissant. Je donne un exemple d’utilisation : lister des éléments dans la base et afficher leurs infos.

Je compte exploiter dans MyDMAM ces trouvailles. Bien que Vantage et Interplay soient des techno couteuses et propriétaire, elles sont extrêmement puissantes dans un environnement pro comme celui que je dois gérer. Les API permettent vraiment de multiplier encore plus les possibilités (je donne j’impression de débarquer, mais ce genre d’API était encore très rare il y a 10 ans dans les outils que l’on avait, et souvent les API étaient lourdes et payantes ; les temps ont bien changé).

BMX Tools

Enfin, le soutient aux BMX XML Tools.
Ce sont des outils libres, développés par la BBC, pour manipuler des fichiers MXF, notamment leurs flux et leurs métadonnées. Ils ont fait un super travail, et c’est très puissant. Ils ont publié le code sur Sourceforge en 2015 du kit complet, et je me suis permis de le publier sur Github, autrement plus pratique quand on a besoin de scripter des compilations.
Voilà, c’est « juste » ça. J’ai bien fait attention à tout prendre et à bien garder le code tel qu’il est (je n’ai pas le niveau pour y apporter le moindre changement constructif).

Et parce que vous l’avez vu venir, j’ai aussi fait travailler JAXB sur les XSD de BMX. Je n’ai pas fait grand-chose, mais juste de quoi, en Java, récupérer simplement les métadonnées d’un fichier MXF, via BMX et leur outil mxf2raw.
Le code sur GitHub comprend pour le coup tout : l’export JAXB, dans un projet Eclipse, et un Howto dans le Readme.

A la prochaine pour d’autres aventures de « code audiovisuel ».