Affichage des articles dont le libellé est codecs. Afficher tous les articles
Affichage des articles dont le libellé est codecs. Afficher tous les articles

dimanche 4 avril 2010

Encoder avec l'encodeur x264

Nous vous avons parlé dans un autre article de la qualité des codecs h.264, et de la version 'open' de l'encodeur x264.

Peut-être aurez-vous souhaité le tester et aurez été un peu décontenancés par son installation et utilisation.

Petite revue de détails.
Le x264 n'a pas de GUI (interface graphique d'utilisation). Son mode de mise en œuvre le plus fréquent se fait via Avisynth, un logiciel en lignes de commandes plutôt puissant qui permet d'appliquer des filtres vidéos et aussi d'encoder (avec entre autres le x264).
x264 n'est pas un codec, mais une bibliothèque d'encodage. En gros, x264 ne servira pas à décoder vos vidéos. Ici comme on est cool on ne hurlera pas si vous parlez de "codec x264" (nous aussi on le fait pour simplifier et ne pas paraître trop puriste).

Le x264 ne sera donc sûrement pas intégré dans la liste de codecs de votre logiciel d'édition vidéo, et s'il l'était cet article n'aura donc pas raison d'être pour vous.

Dans un proche futur, l'arrivée de VLMC, un logiciel de montage libre réalisé par la même équipe que l'excellent VLC VideoLAN devrait changer un peu la donne, puisque VideoLAN hébergent le projet x264.
Il y a donc fort à parier que VLMC sera capable de rendus directement en x264. On ne sait pas vous, mais nous, on a hâte.

Voici donc, en attendant 4 manières de faire (1 et 2 sont proches, 1 étant peut être un peu plus simple d'utilisation et 2 plus geek oriented... encore que.)

  1.  Le logiciel SUPER est gratuit et offre la possibilité de convertir vos vidéos en x.264 et AAC compatibles Quicktime, ce qui peut être une alternative de qualité. On lui reprochera juste une petite tendance à avoir quelques petits bugs (on pense notamment à la gestion directshow et le maintien du bitrate). Un autre logiciel qui utilise le x.264 est MediaCoder, disponible aussi en 64 bits. Enfin, l'excellent Avidemux propose lui aussi cet encodage (dans vidéo, choisir "copier", puis MPEG-4 AVC).

    Cela nécessite d'avoir exporté au préalable votre montage (par exemple avec le codec lossless Huffyuv, puis de réencoder en x.264
  2. Vous exportez d'abord votre vidéo depuis votre logiciel de montage vers un codec lossless : Huffyuv. Vous obtenez ainsi un gros fichier sans perte de qualité.

    Pour réduire la taille de fichier, vous utiliserez soit directement avisynth si vous aimez vous prendre la tête avec votre clavier (lignes de commandes), soit avisynth en passant par une interface graphique telle que MeGUI dans laquelle vous réglerez les options d'export en x264 . Je vous laisse chercher un peu sur internet pour déterminer comment appliquer les options qui vous vont bien.

  3. Vous téléchargez un logiciel frameserver. Pour avisynth et les logiciels de montage vidéos les plus courants (premiere, sony vegas, ulead...) on vous recommande Debugmode . Désolé pour ceux qui tournent en 64 bits, mais Debugmode n'est pour le moment compatible que 32 bits. Le développeur de Debugmode est un peu surbooké et a mis son projet en OpenSource avec appel aux développeurs volontaires pour porter l'application en 64 bits. Avis aux volontaires.

    Le principe du frameserver, c'est de balancer des données vidéo d'un programme à un autre. En gros Debugmode se charge de transférer directement à avisynth les données vidéos, vous épargnant l'étape d'encodage lossless. Sympa.
     
  4. Il existe des versions non officielles de x264 développées par des particuliers avec une interface graphique. Vous pouvez donc rechercher sous google des x264vfw (Video For Windows), afin que votre codec apparaisse enfin dans la liste des codecs de votre logiciel de montage.
    Il faudra alors chercher dans le conteneur AVI.
    C'est d'ailleurs ce qui en fait une solution peu recommandée dans les milieux autorisés, du fait de l'ancienneté du conteneur avi.

    Si vous ne trouvez pas votre bonheur dans nos propositions, il vous reste bien entendu des codecs MP4 payants, ou ceux proposés par votre logiciel (par exemple le main concept sous Sony Vegas).



    .

vendredi 19 mars 2010

encoder ses films avec le meilleur rapport taille des fichiers/qualité

Bon, on y est, voilà une des questions que la plupart des gens se posent.

Alors allons-y ! (article un peu long alors j'ai fait une petite conclusion à la fin concernant l'exportation des montages vidéos... Mais la lecture seule de la conclusion ne donne que les outils utilisés, pas les trucs pour les apprivoiser et les comprendre...)

Déjà, que signifie encoder ? Et bien il s'agit de transposer un flux audio ou vidéo en un format numérique déterminé et lisible par les matériels compatibles.

La vidéo brute prend beaucoup de place car chaque seconde contient énormément d'informations constituant images et sons.
Commençons par ce qui parait le plus simple, à savoir la résolution de la vidéo et son débit d'images.

  • La résolution.
    Votre œil expert aura sans doute repéré que la GoPro offre plusieurs modes d'enregistrement :
    1080p
    = correspond à un rectangle de 1920 pixels (un pixel correpondant à 1 point lumineux sur votre écran) de Longueur et 1080 pixels de largeur. Il s'agit d'un format de rapport 16:9e, exactement comme sur les écrans du même nom, c'est à dire dans un format "paysage".
    960p = 1280x960 pixels (4:3) : de par son format presque carré (c'est celui des télévisions classique d'il y a 10 ans), c'est le mode qui offre la plus grande couverture verticale.
    720p = 1280x720 pixels (16:9) : c'est le petit frère du mode 1080p.
    WVGA = 848x480 pixels (16:9) : personnellement je ne vois pas trop d'intérêt à ce format si ce n'est la taille réduite des vidéos, mais la perte de résolution est bien cruelle. Ça ne servait pas à grand chose de prendre la version HD de la GoPro si c'est pour utiliser ce format. Mais c'est un avis tout personnel.

    Pour ne pas trop s'étendre, le format le plus couramment utilisé est le 720p. C'est un peu le standard actuel, et qui offre déjà une très belle qualité d'image.
    Bref un très bon compromis, pour lequel un écran "HD ready" suffira (résolution de 720p) mais qui bien entendu passera également sur un écran "Full HD" de 1080p (d'ailleurs ceux qui ont des Full HD s'en contentent bien pour la Télévision en Haute Définition qui pour le moment ne diffuse qu'en 720p).

    Si votre écran n'est "que" (manière de parler) HD Ready (largeur de 720 pixels pour ceux qui suivent), vous n'avez pas d'intérêt particulier à filmer en mode 1080p, à part de parier sur l'utilisation avec votre prochain écran.
    Si vous avez un Full HD et que la taille des fichiers ne vous fait pas peur, optez pour le 1080p. Ceci dit, gardez à l'esprit qu'il vaut mieux un film en 720p bien encodé qu'un 1080p trop compressé.

    Vous restez libre d'encoder vos vidéos dans des résolutions inférieures (et donc de perdre en qualité) si pour vous seule la taille du fichier compte.
     
  • Le framerate
    Une vidéo est en fait un défilement d'images fixes. Plus le nombre d'image diffusées dans un laps de temps donné est grand, et plus l'impression de fluidité sera grande.
    La GoPro propose du 30fps (frame per second, soit le nombre d'images enregistrées par seconde) pour les 3 principaux modes (1080p,960p et 720p), et un mode 60fps en résolution 720p qui sera lui très intéressant pour ceux voulant créer de beaux ralentis au montage.
    Pour l'encodage vous pourrez sélectionner le framerate qui vous sied le mieux. Les 3 valeurs classiques sont : 24fps (format utilisé au cinéma), 25 fps (format Pal utilisé sur les télés en Europe) et 29,97fps -plus communément appelé 30fps et utilisé aux USA et Japon-.

    Personnellement je trouve que le "30fps" natif de la GoPro est un bon compromis pour l'export de vos vidéos en terme de compatibilité. Si vous lisez votre vidéo uniquement sur un téléviseur PAL, choisissez 25. On parle ici de fluidité et non pas de taille de fichier (voir la note sur le débit de données plus bas)

    Note : J'ai volontairement occulté les modes de vidéo interlacés. Si cela vous intéresse réellement vous pouvez toujours faire une recherche google, mais j'estime que c'est une notion dont on se passera très bien dans le cas qui nous occupe.


    Passons maintenant à la COMPRESSION.
    Compresser la vidéo consiste à transformer le format numérique de sorte à ce que le fichier soit moins grand. Il existe plusieurs sortes de compression :
  • La compression sans perte
    Avantages : Conservation de la qualité de la vidéo, taille de fichier un peu réduite par rapport au fichier brut.
    Inconvénient : Le fichier reste malgré tout très lourd.
    Pour faire simple, ne retenez qu'un nom : huffyuv (bon, enfin OK vous n'êtes pas obligés de le retenir) le top du codec de cette catégorie, si elle vous intéresse.
  • La compression avec perte.
    Elle va permettre de diminuer beaucoup plus franchement la taille du fichier.La contrepartie étant que plus on va chercher à diminuer cette taille et plus la qualité sera mauvaise.
    C'est là que ça devient intéressant, car dans la jungle de codecs de compression, il y a beaucoup de différences et d'inégalités.






    • La compression Spatiale (Intra Image)

      Vous connaissez sans doute l'extension de fichier JPG. Il s'agit d'un format d'image compressé et qui par conséquent dégrade l'image à chaque enregistrement.
      Pour garder l'analogie, les codecs entrant dans la catégorie de la compression spatiale effectuent ce genre de compression sur chaque image de la vidéo (la compression est intrinsèque à chaque image).

      La compression obtenue commence à être intéressante, mais pas optimale.
      Ce sont des codecs principalement axés sur le flux de production, c'est à dire le montage.

      En effet, les films ainsi encodés ne nécessitent pas des configuration d'ordinateurs très puissantes, et les effets appliqués sont généralement lus en temps réel même sur des images en haute résolution, bref c'est très pratique dans l'application de la technique reprise dans l'astuce en fin d'article Modifier ses fichiers pour faciliter le montage vidéo
      Le codec Pixlet d'Apple, pour exemple, fait partie de cette catégorie.

    • La compression Temporelle (Inter Images)
      On touche au but !!
      La compression temporelle est une sorte de compression dynamique et intelligente.
      Imaginons une scène de western. Une rue déserte et calme, un cow-boy qui marche.
      La compression temporelle va détecter que certaines parties de l'image sont fixes et d'autres non. Sur la séquence, on va donc avoir la première image qui sera complète, et dès la deuxième image il n'y aura plus que les informations relatives aux éléments ayant changé, le reste étant repris sur la première image.

      La deuxième image de la séquence n'aura donc que des informations sur le cow-boy qui a changé de position + un ordre pour récupérer les informations de la première image.
      Et évidemment, ça permet d'économiser beaucoup de place. Y'a vraiment des mecs ingénieux.
      La contrepartie, c'est que tout ce filoutage nécessite des calculs et que les vidéos ainsi encodées sont assez gourmandes en ressources système.

      Il peut être très (TRES) difficile de réaliser un montage avec ce genre de codecs, et vous devrez donc les réserver à l'export final de votre vidéo.

      Notons que la compression temporelle applique également une compression spatiale à chaque image afin de réduire encore un peu la taille des fichiers.

      Nous y voilà donc, on touche à notre Saint-Graal de la compression !

      Ce sont des codecs de livraison,
      optimisés pour des résultats de haute qualité.
      Détaillons les principaux codecs de ce type.
      • Le MPEG-2 est le papy du groupe. Il garantit une excellente compatibilité avec de multiples supports, et une très bonne qualité pour la diffusion, mais le ratio de compression/qualité d'image ne joue pas en sa faveur dès qu'il s'agit de comparer avec les petits nouveaux.

      • Le format WMV (series 9) est un format propriétaire de windows. Il a bonne presse, excepté concernant la compatibilité (et oui, c'est un format PROPRIETAIRE). Bref un codec performant, mais avec des restrictions d'utilisation, malgré le fait que microsoft essaie de le démocratiser pour l'imposer.

      • La norme de codage vidéo H.264 est celle réputée être la plus aboutie techniquement. Le codec x.264 en est issu et en représente la forme libre. Les taux de compression sont excellents pour une qualité d'image optimale. Ceci est entre autres lié au fait que le H.264 permet d'encoder avec des débits de données très faibles tout en garantissant la fluidité de la vidéo. Ce codec est généralement repris dans un conteneur appelé MP4.
        Oui, je sais, ça vous parle et pour cause, c'est le format utilisé par la GoPro pour écrire les fichiers sur la carte SD.
        Maintenant vous savez pourquoi les montages vidéos sont difficiles avec les fichiers natifs de la GoPro !
        Reste que ce codec demeure le plus approprié pour le stockage des exportations de vos montages vidéos.
        Pour un visionnage de qualité et la lecture sur vos disques durs, le standard de la norme H.264 appelé High Profile (HiP) sera très probablement celui que vous retiendrez, il correspond à la qualité Blu-Ray ou HD-DVD. Mais rien ne vous empêche de choisir un standard inférieur pour baisser la taille des fichiers, au détriment de la qualité.

    Il existe évidemment plein d'autres codecs. Citons par exemple le Sorenson, largement utilisé par Adobe dans son format Flash, mais qui est inférieur désormais techniquement à la norme H.264.

    Parenthèse pour les curieux :



    -Mozilla/Firefox promeut le Ogg Theora pour sa balise 'video' en HTML5. C'est quoi ?
    H.264 est un format protégé par des brevets logiciels et soumis à licence. Bref, pour l'utiliser, il faut raquer. Microsoft (internet explorer) et Google (Chrome), par exemple, ont mis la main à la poche à millions pour l'utiliser et le désignent comme leur format pour la norme HTML5. Apple (Safari), impliqué dans le développement, aussi.

    Theora est "libre". Il est protégé par des brevets, mais ceux-ci sont déposés de manière à ce que chacun puisse l'utiliser gratuitement et librement. Mozilla refuse d'implémenter un format payant, et Opera, eux ont fait savoir que de toute façons la licence était trop chère.
    Le problème du format Ogg Theora, c'est que la qualité est bien moins bonne que celle du H264.
    Reste un cas de conscience : le prix du H264 est amené à changer d'année en année. Sans concurrence, il sera difficile de faire marche arrière, et le prix de la licence risque de flamber (c'est ce qu'il s'est passé avec le MP3, par exemple).
    D'un côté, le H264 est plébiscité par les utilisateurs, et en choisissant un format moins bon Mozilla risque simplement de se couper de ces derniers et se condamner. De l'autre, si le H264 devient la seule référence HTML5 il y a des risques d'abus de position dominante. Reste Google qui a un rôle à jouer. Bien que possédant la licence H264, ils sont en passe de racheter une société de production de codecs vidéos prometteurs. Propriétaires également de Youtube, Google a un certain poids pour l'avenir du Web et pourrait donc bien équilibrer la balance en choisissant de faire la promotion de ses recettes internes.

  • Le débit de données
    Puisque j'ai abordé avec la norme de codage H.264 la notion de débit de données, sachez pour compléter cet article que c'est celui-ci qui va principalement déterminer la taille de votre fichier.
    Ainsi, un fichier MPEG-2 avec un débit de données de 10 Mbits/s aura la même taille quel que soit le frame rate choisi (24, 25, 29.97). Attention à ne pas confondre donc le frame rate qui détermine la fluidité (ou les saccades !) de votre vidéo, et le débit de données qui détermine sa taille.
    A débit de données constant et égal, une vidéo en 29,97 fps sera plus fluide avec des images de qualité légèrement inférieure à une vidéo de 24 fps.
    J'espère que c'est clair, sinon envoyez des commentaires.

    Le débit de données, c'est toute la force de la norme H.264 qui autorise de belles images à un débit de données faible.
    Pour une qualité d'image semblable, un fichier encodé en Pixlet devra avoir un débit de données de 40 Mb/s, un fichier MPEG-2 de 12 à 20 Mb/s et un H.264 "seulement" de 8 Mb/s

    Puisque ce débit de données conditionne la taille de fichier, voici quelques valeurs-exemples :
    Pour un fichier encodé en H.264, le débit de données pour :







    • une vidéo sur Youtube en 720p =2,11 à 2,25 Mb/s
    • une vidéo sur Youtube en 1080p = 3,5 à 4,2 Mb/s
    • Une vidéo de qualité équivalente DVD = 5.22 Mb/s
    • Une vidéo quasiment sans perte = 7 à 8 Mb/s

  • HO !!! Et le son ???

    oulah, ne vous énervez pas, je suis fatigué après ce long article.
    C'est vrai que dans un format numérique conteneur (MP4, AVI, WMV...) il y a un flux vidéo ET un flux audio.

    On va le faire court, vous pouvez utiliser le MP3, connu de tous. Le Ogg Vorbis, un peu plus confidentiel.

    Ou bien, pour un mariage parfait avec le H.264 vous pouvez utiliser le format audio AAC.

    Voilà-voilà.
    Conclusion :
    Le format que je privilégie personnellement pour l'exportation de mes montages reste le MP4 avec un codec video x.264 et un codec audio AAC. On vous laisse lire également l'article sur l'encodage en x.264 (ben oui, ça se mérite)
    Avis aux feignasses qui sont directement arrivées à la conclusion : pour les détails, lisez tout ! ;)

lundi 15 mars 2010

Modifier ses fichiers pour faciliter le montage vidéo

Il ne s'agit pas dans cet article des questions de montage (logiciels, techniques), mais de la préparation des fichiers. D'autres articles complèteront la question du montage plus particulièrement, mais le domaine étant vaste, ça va prendre un peu de temps (si vous voulez aider : gopro.hacks@gmail.com )

Questions, compléments en postant dans les commentaires de cet article.

La caméra GoPro HD enregistre les fichiers pris en HD au format MP4.
Quésako ???
Il s'agit d'un format conteneur, c'est à dire qui comprend à la fois de l'audio et de la vidéo.

Un fichier présentant par exemple des extensions .OGM, .AVI, .WMV, .MOV, .MPG vous indique par conséquent que ces fichiers contiennent deux flux : audio + vidéo (par exemple, un .AVI peut contenir un flux audio encodé avec un codec audio MP3 et un flux vidéo encodé avec un codec Divx).

Alors que contient notre fichier MP4 ? Un logiciel gratuit comme MediaInfo nous en dit un peu plus :
le flux audio utilise l'algorithme de codage AAC, et le flux vidéo la norme de codage MPEG-4 AVC élaborée par le Joint Video Team (JVT).

Un fichier vidéo, ce sont de grandes quantités d'informations numériques. Un fichier vidéo HD ce sont de gigantesques quantités d'informations numériques. Cette norme MPEG-4 AVC, également appelée H.264, permet de réduire grandement cette quantité d'information, par le jeu de calculs savants de compression.

L'avantage est une taille réduite des fichiers pour une qualité d'image restant optimale.
Compte-tenu du choix du support de stockage (des cartes à mémoire flash SD), dont la vitesse d'enregistrement et la quantité de mémoire disponible ont une limite plutôt basse en regard du volume d'information en provenance du capteur, il était difficilement envisageable d'utiliser un format moins compressé (comme c'est le cas par exemple sur les caméscopes à disque dur).




Bien entendu, ce format n'a pas que des avantages. Nous l'avons vu, la réduction de la taille des fichiers ne vaut que par une astuce mathématique. Au moment de la lecture, pour retrouver la qualité initiale de l'image (et donc cette quantité phénoménale d'informations en vidéo Haute Définition) il va falloir refaire les calculs à l'envers.
Et ça, c'est le boulot du processeur de votre ordinateur.
Pour rappel, la puissance d'un processeur est notamment caractérisée par une fréquence (en GHz dans les configurations actuelles). Une haute fréquence indique un processeur capable de faire des calculs plus rapidement.



Si votre vieux compagnon électronique date d'il y a quelques années et que vos vidéos issues de la GoPro sont très saccadées à la lecture, ne cherchez pas plus loin, c'est tout simplement comme un élève qui n'arrive pas à terminer son devoir avant la fin de l'épreuve, les calculs qu'il aura effectués auront beau être justes, il aura une mauvaise note.

Ce qui est vrai à la lecture d'un fichier l'est encore plus lorsqu'il s'agit de réaliser un montage vidéo directement à partir des fichiers MP4.
Ce ne sera possible qu'à la condition d'avoir un ordinateur avec une configuration très musclée (du genre processeur quad core à plus de 2.5 Ghz, 8Go de mémoire vive, cartes graphiques hautes performances -par exemple à base de chipset GEFORCE GTX 285 ou 295).

Il existe malgré tout quelques moyens, selon votre configuration, pour vous permettre de travailler sur l'édition de vos vidéos.

Tout d'abord, une question récurrente sur les forums concerne les problèmes de compatibilité entre les solutions de montage vidéo Adobe Première et les fichiers MP4.
Pour faire court, sur les versions antérieures à CS5, ne cherchez pas ça ne marchera pas sans quelques petites modifications. Première CS5 a résolu ce problème et en plus est conçu en natif en 64 bits : le top pour gérer peinard les fichiers HD MP4 avec un bonne station de travail.

La plus courante consiste à utiliser le logiciel Quicktime Pro (payant : 30€) pour ouvrir le fichier et le ré-enregistrer au format .mov . La taille de fichier ne varie pas, la qualité non plus (il n'y a pas de réencodage), mais la compatibilité devient beaucoup plus évidente.

Si ce format n'arrange pas les chose pour vous, vous pouvez encore essayer un logiciel comme MP4Cam2AVI (gratuit) qui lui convertira votre MP4 en fichier AVI.

Pour faciliter le montage et l'ajout d"effets, pensez à la possibilité de dégrossir dans un premier temps votre vidéo avec des logiciels gratuits comme Avidemux ou Yamb. Grâce à ces ténors dans leur catégorie, vous pourrez déjà couper les plans-séquences inutiles et faire de la copie directe de flux (ce qui signifie que le fichier n'est pas ré-encodé et ne perd donc pas de qualité). Voir cet article sur l'utilisation d'Avidemux.
Virtual Dub est un logiciel souvent conseillé sur internet, malheureusement il ne gère pas le direct stream copy sur les fichiers MP4, il ne vous sera donc utile que pour le ré-encodage de votre vidéo.

Pas de secret pourtant, si votre logiciel rame, il va falloir baisser la qualité de la vidéo pour pouvoir travailler dessus. C'est donc l'obligation de ré-encoder votre vidéo. La taille du fichier va baisser, mais la qualité aussi.
L'encodage fera l'objet d'un autre article sur le blog. Vous pouvez malgré tout d'ores et déjà regarder vers des logiciels comme Super ou Format Factory qui simplifient pas mal cette tâche, ou utiliser VirtualDub, Avidemux ou quicktime dans sa version Pro.

Last but not least, une astuce qu'utilisent certains pros du montage pour l'édition de vidéos très lourdes : ils réalisent tout d'abord une copie de leur vidéo en abaissant beaucoup la qualité mais en conservant certaines caractéristiques essentielles (taille, nombre d'images/seconde..) et utilisent cette version dans le logiciel de montage pour prévisualiser ce qu'ils font.
Au moment de "rendre" la vidéo, il leur suffit de substituer la copie de prévisualisation par la séquence Haute Définition sur laquelle seront appliqués les effets et transitions choisis.

L'article Astuce de montage spéciale petites configurations et Sony Vegas détaille cette procédure pour le logiciel Sony Vegas Pro.

Lire également le paragraphe sur les codecs à compression spatiale dans l'article encoder ses films avec le meilleur rapport taille des fichiers/qualité pour plus d'infos.