• # Précisions

    Posté par . En réponse au journal kdenlive 19.12.0 et accélération matérielle. Évalué à 10.

    Bonjour,

    D'abord merci de faire passer des nouvelles sur Kdenlive...
    Et j'ai quelques réactions :)

    Tout d'abord, je trouve injuste de dire que ça s'est empiré depuis 2013, que ce soit en stabilité ou en performances.

    Nous avons basculé sur l'affichage OpenGL dès la branche Qt4, quand est apparue l'intégration de Movit (effets calculés sur le GPU) qui était très prometteuse et requérait ce changement. Malheureusement l'intégration GPU / Multithreading est compliquée (pour MLT, mais pas que), toujours instable depuis 5 ans, et nous avons donc dû désactiver cette option car trop d'utilisateurs se cassaient les dents là dessus. Nous cherchons toujours des contributeurs maîtrisant ces domaines : ce n'est pas vraiment à la portée du premier bricoleur venu (comme moi :-P)

    Hormis les effets, l'affichage via OpenGL a visiblement causé des ralentissements chez certains utilisateurs, minoritaires et malheureusement sans qu'on trouve jamais l'explication. En tout cas chez les développeurs, les testeurs réguliers et d'après le bug tracker, rien n'a justifié un retour en arrière, qui serait compliqué maintenant. Moi-même j'ai un vieux i5 (3ème génération ?) avec 4Go de RAM, GPU Intel intégré : ça roule toujours !

    Le passage à Qt5 en 2015 (indispensable car Qt4 en fin de vie) a engendré des régressions et instabilités, gommées au bout d'environ un an alors que le distributions opéraient la transition.

    Un autre facteur qui a engendré des ralentissements est l'activation de la transparence sur les pistes par défaut (une requête d'un célèbre graphiste sur ce site je crois !). Dans certains cas (tailles de clips), la moteur s'est mis à appliquer des compositions continuellement. Ca a été corrigé progressivement... Par dessus le marché, nous sommes passés à des compositions plus fines (RGB vs YUV), ce qui implique des conversions qui ont un coût (surtout qu'on ne le fait toujours pas sur le GPU :-( )

    De 2016 à 2019, presque tous les efforts étaient sur la réécriture sortie cette année (19.04) : depuis le début, la gestion du montage avait grossi dans quelques énormes classes, avec des imbrications indémêlables, au point que le debug et les évolutions étaient un affreux casse-tête. En repartant sur des modèles (avec tests) + vues (en qml), JB a reconstruit des bases propres, qui font que depuis on ne reçoit presque plus de rapport de crash sur cette partie, les petits bugs sont vite repérés et corrigé, et plein de nouvelles fonctions sont ajoutées pour permettre aux monteurs réguliers d'être plus rapides.

    Il y avait encore quelques surcharges mémoires (avec les miniatures audio & vidéo), corrigées dans la 19.12, qui de l'avis de nombreux testeurs est plus réactive que jamais (Qt4 compris).

    Concernant les effets disparus : comme MLT propose tous les plugins qu'il trouve, on se retrouvait avec une liste d'effets effrayante pour beaucoup, et la plupart mal gérés. Nous avons délégué la tâche de trier ces effets à nos utilisateurs (lors de plusieurs "cafés", nos discussions mensuelles sur IRC). Ils les ont testés un par un, et éliminé tous ceux qui étaient redondants ou qu'ils n'arrivaient pas à faire marcher. Ils ont aussi proposé une présélection des effets les plus attendus ; on affiche ceux-ci par défaut tout en laissant les liste plus étoffées dans les différentes catégories. Ce point est toujours en discussion !

    Retour sur le point GPU : l'intégration de Movit (traitement d'image) est toujours aussi bugguée donc désactivée (l'option est même cachée), je crois que jouer ce jeu risque pour l'instant de vous exposer à quelques frustrations. Mais l'auteur de MLT l'a annoncé comme son chantier de 2020, espérons que ça change bientôt ! Après, certains ont suggéré que la technologie employée (GLSL) n'était peut-être pas très pertinente aujourd'hui, d'autres pistes pourraient être explorées.
    Par contre, on constate souvent en profilant ce qui se passe pendant l'export que l'encodage (H264/5, VP8/9) reste la plupart du temps un contributeur majeur.
    MLT peut tout à fait utiliser le GPU pour ça, rien à voir avec le traitement (c'est FFmpeg/libavcodec qui fait tout).
    Des profils d'export via VAAPI (Intel, AMD) ou NVENC (Nvidia) sont disponibles à télécharger dans le magasin KDE ou même directement depuis le dialogue de rendu. Il faudrait les tester un peu mieux et les intégrer dans les releases...
    Pour cela il faut que FFmpeg soit compilé avec les bonnes options, la plupart des distributions récentes proposent au moins VAAPI ; pour NVidia il faut voir, là peut-être qu'il faut chercher dans des dépôts tiers ou recompiler.

    Ouf, ça en fait des choses à raconter !
    Et dire que des nouveautés se préparent encore pour 2020...

    Bon montage à tous !