Rendu sous Cinelerra (encodage)

15 12 2010

Sous Cinelerra, une fois le montage réalisé, il faut générer la vidéo. L’idéal est de générer un master duquel on déclinera les différentes versions dont on a besoin (web, DVD, HD etc.).

Et c’est là que la galère commence…

Problèmes rencontrés

En apparence, Cinelerra permet d’enregistrer sa vidéo sous divers formats :

  • Microsoft AVI,
  • Quicktime for Linux,
  • Raw DV,
  • MPEG Video,
  • OGG Theora/Vorbis,
  • YUV4MPEG.

Malheureusement la plupart génèrent des problèmes :

  • Microsoft AVI : je n’ai jamais réussi à produire une vidéo lisible par MPlayer ou VLC dans laquelle le son reste synchronisé avec la vidéo. FAIL !
  • Quicktime for Linux : ce format ne pose pas beaucoup de problèmes, même si j’ai déjà eu (peu) des plantages de Cinelerra en cours d’encodage, probablement dûs à un grain de sable dans les vidéos sources. Le problème du format MOV est sa réutilisation après coup : certaines versions d’Avidemux ont eu un bug les empêchant de convertir ce format. Il y a aussi le problème du support des vidéos anamorphosées qui ne passe pas partout.
  • Raw DV : fonctionne parfaitement mais est réservé à des vidéos en 720×576.  Idéal il y a quelques années, c’est un handicap aujourd’hui.
  • MPEG Video : ça marche mais c’est leeeeeeeeeeent… C’est l’utilitaire mpeg2enc qui est utilisé et il prend son temps le ch’tit pépère à, notamment, vouloir faire du double passe (et bien sûr, impossible de lui dire de ne pas le faire). Et il faut avoir pensé à bidouiller un lien vers mpeg2enc car les paquetages pour les différentes distributions ne l’inclut pas. Dernier détail : il n’enregistre pas le son, le multiplexage est donc à réaliser en dehors de Cinelerra.
  • OGG Theora/Vorbis : fonctionne pas mal si ce n’est le manque flagrant de support. Avidemux n’aime pas et Dailymotion a des problèmes avec la bande son qui, bizarrement, disparaît en fonction de la version visualisée sans que l’on puisse prévoir laquelle… J’ai déjà eu des plantages de Cinelerra tout comme avec Quicktime.
  • YUV4MPEG : comme le MPEG Video, ce format n’enregistre que la vidéo et pas le son et son utilisation n’est pas des plus aisées avec même un bug de gestion de chaînes de caractères de la part de Cinelerra.

YUV4MPEG

Je vais surtout m’attarder sur YUV4MPEG pour la génération de vidéo.

YUV4MPEG est un format RAW pour les flux vidéos. Aucune compression n’étant réalisée, il n’est pas concevable d’enregistrer un fichier : à plusieurs centaines de méga-octets pour quelques secondes, on vient vite à bout des plus gros disques durs.

Le principe va être de l’utiliser dans le cadre d’un tube (ou pipe), le flux étant ainsi transmis à un autre programme qui sera chargé de réaliser l’encodage.

Voici la démarche à suivre :

Générer le flux audio

Faire un rendu uniquement de la piste son en Mpeg Audio, layer III, 256 kbits/s.

Ça devrait aller assez rapidement.

Générer le flux vidéo

Faire un rendu uniquement de la piste vidéo en format “YUV4MPEG” Stream.

Dans les options, cochez “Use Pipe” et saisissez la commande suivante :

ffmpeg -f yuv4mpegpipe -i - -y -f mpeg2video -b 12000k "%"

Explications :

  • ffmpeg : utilise l’utilitaire ffmpeg pour réaliser l’encodage. On pourrait utiliser mpeg2enc mais ffmpeg fait très bien le travail et, surtout, il est beaucoup plus rapide que mpeg2enc (on va quand même pas passer la journée juste à faire de l’encodage)
  • -f yuv4mpegpipe : indique à ffmpeg qu’il doit recevoir un flux au format YUV4MPEG
  • -i - : lit le flux YUV4MPEG depuis l’entrée standard (le tube ou pipe).
  • -y : écrase le fichier en sortie sans demander votre avis (obligatoire car de toute façon ffmpeg ne pourrait pas vous le demander étant donné qu’il sera lancé en tâche de fond).
  • -f mpeg2video : demande un encodage en MPEG2.
  • -b 12000k : indique un bitrate de 12000 kbps, ce qui devrait être okay pour enregistrer de la vidéo Full HD.
  • “%” : le % sera remplacé par Cinelerra par le nom du fichier que vous aurez indiqué.

La fenêtre des paramètres du flux ressemble à ceci :

Paramètres YUV4MPEG

Paramètres YUV4MPEG

Bug : il arrive que Cinelerra vous affiche un message d’erreur au lancement de l’encodage du flux vidéo. Retournez alors dans les paramètres et éditez les champs texte en essayant d’enlever des caractères imaginaires à la fin des champs.

Multiplexage

Pour réaliser la fusion ou multiplexage du flux audio et du flux vidéo, on utilise la commande mplex en ligne de commande Unix :

mplex -f 3 -r 20000 video.out.m2v audio.out.mp3 -o videoaudio.mpg

Explications :

  • -f 3 : encodage en MPEG2 générique,
  • -r 20000 : le multiplexage doit être prévu pour un bitrate de 20000 kbps maximum (les 12000 kbps indiqués lors de la génération du flux vidéo ne sont pas fixes et il faut prendre les 256 kbps du flux audio en compte).
  • video.out.m2v : le nom de fichier que vous avez indiqué dans Cinelerra pour le flux vidéo.
  • audio.out.mp3 : le nom de fichier que vous avez indiqué dans Cinelerra pour le flux audio.
  • -o videoaudio.mpg : le nom de fichier que vous désirez pour la vidéo finale.

Pré-requis

Pour tout cela, vous aurez besoin de mpeg2enc (pour mplex) et ffmpeg.

About these ads

Actions

Information

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s




Suivre

Recevez les nouvelles publications par mail.

%d blogueurs aiment cette page :