FFMpeg2Theora, guide par l’exemple

Date: 30/03/2010 | Catégories: Open-source,Video,Web | Tags: ,,

Une des évolution les plus discutée de la 5em version du langage HTML est le support des balises <video> et <audio>. Ces dernières permettent d'insérer et de jouer une vidéo et/ou une musique directement dans une page du navigateur, sans nécessité d'installer de logiciel ni de codec externes. Devant la non décision du W3C de ne pas imposer les codecs dans la norme HTML5, les éditeurs de navigateur internet on fait des choix stratégiques/techniques (OGG/Theora/Vorbis pour les codecs libres ou MP4/H.264/AAC pour les codecs propriétaires).

Nous allons dans ce billet nous focalisé sur l'utilisation du logiciel ffmpeg2thera pour générer des vidéos au format libre OGG/Theora/Vorbis.

Installation des outils OGG/Theora* sous Ubuntu

Afin de disposer de la dernière version des logiciels et codecs Theroa/Vorbis, il faut ajouter le dépôt PPA suivant à votre installation GNU/Linux Ubuntu:

On installe ensuite les logiciels:

Conversion avec les paramètres standards

Nous allons convertir une vidéo dont le format/codec video/codec audio est lisibles par FFMpeg. Pour illustrer mon exemple, j'ai récupéré sur le site HD-Trailer des bandes annonces HD 1080p au format MOV/H.264/AAC.

On se retrouve avec un fichier OGG (.ogv) dont la taille est inférieure à la source...

  • Taille du fichier MP4 (H.264): 75.4 Mo
  • Taille du fichier OGG (Theora): 38.8 Mo

... mais la qualité aussi (perte de grains et de couleurs):


H.264 / Scène en mouvement / Theora


H.264 / Scène en mouvement (zoom) / Theora


H.264 / Scène statique / Theora


H.264 / Scène statique (zoom) / Theora

Conversion avec les paramètres hautes qualités

On se retrouve avec un fichier OGG (robinhood_trlr_01_1080p_dl-best.ogv) dont la taille se rapproche de la version H.264.:

  • Taille du fichier MP4 (H.264): 75.4 Mo
  • Taille du fichier OGG (Theora) standard: 38.8 Mo
  • Taille du fichier OGG (Theora) haute qualité: 64.2 Mo

L'amélioration est flagrante sur les scènes statiques:


Theora standard / Scène statique (zoom) / Theora haute qualité

par contre les scènes dynamiques sont moins bien traitées en terme de qualité:


Theora standard / Scène en mouvement (zoom) / Theora haute qualité

Utilisation des paramètres pré-définis

FFMpeg2Theora propose une série de paramètres pré-définis pour un encodage rapide (jusqu'à la qualité DVD). La liste de ces paramètres est la suivante (pour la version 0.25):

Ainsi pour encoder une vidéo dans une qualité "preview", il faut saisir la commande suivante:

On a le résultat suivant (si votre navigateur est compatible avec le tag HTML et Theora, sinon...):

Ajout des metadatas (metatags)

Ces tags permettent d'ajouter des informations complémentaires à la vidéo ou au fichier audio:

  • --artist : Nom de l'artiste / Réalisateur
  • --title : Titre
  • --date : Date
  • --location : Lieu
  • --organization : Nom du studio
  • --copyright : Copyright
  • --license : Licence
  • --contact : Lien URL

Extraction de la piste audio

Pour encoder seulement la piste audio (au format OGA/VORBIS), on utilisera la commande suivante:

Extraction des informations d'un fichier OGG

Pour ceux qui veulent faire un portail de présentation des vidéos/audios ainsi généré, l'option --info peut apporter des informations intéressantes à mettre en avant. De plus, le format utilisé est JSON:

Autres outils

D'autres outils pour manipuler les fichiers OGG sont disponibles:

  • oggSplit: permet de séparer l'audio et la vidéo d'un fichier en deux fichiers distincts (un fichier par flux).
  • oggJoin: Prend en entré une liste de fichiers OGG (audio au format vorbis et/ou vidéo au format Theroa) et donne en sortie un seul fichier.
  • oggCut: permet de couper un fichier OGG.
  • oggCat: permet de coller les uns à la suite des autres des fichiers OGG.
  • oggDump: Affiche un fichier OGG sous la forme de paquets.
  • oggLength: Affiche la durée d'une vidéo ou d'un fichier audio (en ms).
  • oggResize: permet de changer les caractéristiques des flux audio/video d'un fichier OGG (résolution, fréquence, débit, logo en sur-impression).
  • oggSilence: Permet de créer un fichier audio vide (silence) au format Vorbis d'une taille donnée.
  • oggThumb: Génère un vignette (.JPG) à partir d'un fichier vidéo (.OGG)
  • oggSlideshow: Génère une vidéo de type slide-show (avec des effets de transitions) à par d'une liste d'images.

Pour ce dernier logiciel, voici la ligne de commande qui m'a permis de créer simplement un slide-show video de mes fonds d'écrans (avec un effet Ken Burns - kb):

et le résultat final:

Conclusion

Nous avons dans ce billet présenté quelques exemples de manipulation de vidéo au format libre (OGG/Theora). En espérant que ce format s'impose rapidement...

  • Pingback: Tweets that mention FFMpeg2Theora, guide par l'exemple -- Topsy.com()

  • http://libre-ouvert.toile-libre.org/ antistress

    Je me demande si on peut rajouter des métédonnées dans un Ogg Theora existant ?
    Si elles sont stockées dans le conteneur Ogg j’imagine que oui, si c’est inclus dans le codec j’imagine que non sans recompresser..?

    edit : trouvé http://lists.xiph.org/pipermail/theora/2009-July/002553.html

  • http://bydorian.com Dd

    Pas mal le coup de oggSlideshow, je garde ca en réserve ;)

    PS : (troll) Les fond d’écrans Apple sont pas mal aussi ;)

  • vinc

    Je ne pense pas que la comparaison sur la qualité d’une vidéo encodé en H264 et en Therora soit valable comme tu l’as effectuée.

    Lorsque l’on encode une vidéo le résultat est toujours moins bon que sa source.

    Ce serait été mieux de comparer la qualité de deux vidéos encodés par H264 et par Therora à partir de la même source vidéo.

  • http://blog.nicolargo.com NicoLargo

    @Vinc: le but de ce billet n’est pas de comparer H.264 et Theora (j’ai d’ailleur un autre article en préparationsur le sujet) mais d’étudier l’outil ffmpeg2theora. La comparaison des deux profils Theora est par contre représentative.

  • 2pa sage

    Il ne lui manque plus que les cheveux sur le zoom et on pourrait croire que c’est le président.
    Tu aurais pu choisir une autre photo parceque si maintenant on le voit en plus dans les films…