Journal Encodage de DVD, suite

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
10
3
nov.
2020

Il y a quelque temps, je racontais ici même mes aventures d'encodage DVD, fier comme un coq :
https://linuxfr.org/users/ricflomag/journaux/un-script-pour-transcoder-des-videos-en-vue-d-un-dvd

Mais voilà que j'ai découvert que l'encodage à deux passes à débit variable sur une série de vidéos avait un gros inconvénient : le débit s'adapte à la complexité des images à encoder certes, mais seulement au sein d'une même vidéo. Or, si vous avez des vidéos qui bougent beaucoup et d'autre moins, vous gâchez bien des octets pour celles-ci et vous en manquer bien pour celles-là. La qualité s'en ressent grandement.

L'encodage par qualité donne un bien meilleur résultat. J'ai tout refait mon script, que voilà: https://nuage.telemillevaches.net/index.php/s/qe3ycLT9qEwcwcc

La différence avec le précédent script, qui calculait le débit global pour remplir le DVD, c'est qu'ici il faut y aller de proche en proche en ajustant le facteur de qualité entre chaque essai, jusqu'à obtenir le résultat optimal.

Voici ce qu'il dit quand on l'exécute:

Utilisation : ./video2dvd-qualité.sh [OPTIONS]

Transcode des fichiers vidéos au format DVD PAL 16:9, avec l'indice de qualité
indiqué.

--source                                           Chemin d'accès du dossier contenant les vidéos à transcoder.
                                                   Valeur par défaut : 'originaux'.
--dest                                             Chemin d'accès du dossier où mettre les vidéos transcodées.
                                                   Il sera créé si besoin.
                                                   Valeur par défaut : le dossier 'transcodés' à coté du dossier source.
--contient                                         Texte pour filtrer les fichiers vidéos à traiter : seuls ceux
                                                   dont le nom contient ce texte seront traités.
                                                   Valeur par défaut : vide, donc tous les fichiers vidéos trouvés sont traités.
--debit_audio                                      Débit binaire de l'audio, en kbits/s.
                                                   Valeur par défaut : 192.
--q                                                Indice de qualité vidéo, de 1 à 10 (1 = meilleure qualité).
                                                   Valeur par défaut : 2.5.

Exemples :
./video2dvd-qualité.sh                             Transcode toutes les vidéos du dossier 'originaux', vers le dossier
                                                   'transcodés' à côté du dossier source, avec la qualité 2.5
                                                   et l'audio à 192 kbits/s.
./video2dvd-qualité.sh --q=2.4                     Transcode toutes les vidéos avec la qualité 2.4 et les autres
                                                   paramètres par défaut.
./video2dvd-qualité.sh --debit_audio=128    Ici on veut un son plus compressé.
./video2dvd-qualité.sh --source=mesfilms --dest=mpg --contient=.mp4
                                                   Transcode les vidéos '.mp4' du dossier 'mesfilms' vers le dossier
                                                   'mpg' (à coté du dossier 'mesfilms'), avec les autres paramètres
                                                   par défaut.
  • # Deux passes avec collection de fichiers

    Posté par  . Évalué à 5.

    Le mieux à mon avis serait d'avoir le système de double passe mais en prenant comme cible l'encodage d'une collection de fichiers au lieu de chaque fichier séparément.

    Peut-être en concaténant tous les fichier, encoder en deux passes, puis en regardant la taille de chaque section pour ré-encoder chaque section avec la taille mesurée.

    Peut-être qu'il serait déjà possible de récupérer les données de la première passe pour faire une seconde passe de chaque vidéo mais je ne connais pas trop le système.

    • [^] # Re: Deux passes avec collection de fichiers

      Posté par  (site web personnel, Mastodon) . Évalué à 4.

      Avec la concaténation des fichiers dans un matroska avec chapitre, il est facile de re-découper ensuite et l’utilisation en deux passes sera alors possible…

      • [^] # Re: Deux passes avec collection de fichiers

        Posté par  . Évalué à 1. Dernière modification le 03 novembre 2020 à 21:05.

        Oui, ce serait sans doute l'idéal.

        Il y a tout de même un dernier avantage à l'encodage à qualité constante, selon mes expérimentations en tout cas : il me donne un résultat satisfaisant sans ajouter aucune option de dernière les fagots à la commande ffmpeg, tandis que l'encodage à débit variable m'avait contraint à ajouter des paramètres - que je ne maîtrisais pas - pour éviter d'avoir des sursauts à intervalles réguliers, très gênants sur les plans fixes en particulier (voir mon journal précédent sur ce sujet, en lien plus haut).

        Et ce même défaut d'encodage, je ne suis pas le seul à l'avoir rencontré. Je l'ai remarqué tout récemment sur un DVD du documentaire sorti en 2018, "Le Temps des Forêts". J'ignore s'il a été encodé avec ffmpeg ;)

        • [^] # Re: Deux passes avec collection de fichiers

          Posté par  (site web personnel) . Évalué à 2.

          Mais n’y aurait-il pas moyen de faire une première passe permettant de jauger la valeur à employer pour l’encodage en qualité constante ensuite ? Plutôt que de se reposer sur une espèce de dichotomie ?

          « IRAFURORBREVISESTANIMUMREGEQUINISIPARETIMPERAT » — Odes — Horace

          • [^] # Re: Deux passes avec collection de fichiers

            Posté par  . Évalué à 2.

            À priori je ne vois pas de différence de principe avec l'encodage deux passes classique, non ? Une recherche rapide ne me donne rien dans ce sens.

            Le coup de l'agrégat dans un .mkv puis d'une découpe me paraît plus faisable, même si je doute de pouvoir m'y pencher avant longtemps ;)

            Merci à tous pour vos retours !

  • # GStreamer

    Posté par  . Évalué à 3.

    As-tu regardé du côté de la bibliothèque GStreamer ainsi que sa suite d'outils en ligne de commande ? Il y a peut-être un outil de haut-niveau pour le transcodage.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.