Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Téléchargez Pascal Discussion :

Encore un convertisseur vidéo… [Sources]


Sujet :

Téléchargez Pascal

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    mars 2006
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mars 2006
    Messages : 184
    Points : 403
    Points
    403
    Par défaut Encore un convertisseur vidéo…
    Bonjour,

    Il y en a qui jouent à Clash of Clans, moi, je joue avec le pascal. Comme je fais aussi de petites vidéos, j'ai écrit ces jours derniers plusieurs interfaces pour FFMPeg et d'autres logiciels CLI utilisant la même fiche drag-drop que j'ai écrite avant pour ne pas tout recommencer à chaque fois. J'utilisais parfois WinFF, mais ce logiciel s'avère un peu opaque et surtout inapte à prendre en charge les chemins de fichiers en UTF-8. J'ai écrit pour ce projet ma petite fonction de conversion qui marche pour les langues à alphabet latin (sauf qques caractères, tchèques notamment, qu'il faudrait ajouter).

    Voici une des plus élaborées, que j'utilise pour convertir des vidéos montées avec Shotcut, Openshot ou kdenlive et exportées dans un format sans perte.

    Conversion de n’importe quelle vidéo en MKV, MP4, M4V, MOV, WMV, TS et XVID avec réencodage

    Nécessite ffmpeg et ffplay. C’est un GUI pour FFMpeg qui convertit les fichiers vidéo en x264 et x265 avec son AAC, en WMV avec son WMA et XVID avec son MP3. Choix de présélections (très rapide, rapide, moyenne, lente, très lente, etc.) pour la qualité vidéo, choix du bitrate et de la fréquence d’échantillonnage pour le son, qui peut aussi être gardé sans rééchantillonnage. Les réglages par défaut donnent une très bonne qualité. On peut cacher les réglages avancés et choisir seulement le conteneur de sortie avec les réglages par défaut.

    Rappel sur les options CRF (Constant Rate Factor) de FFMpeg : 0 (zéro) donne une vidéo sans perte, qui risque d’être volumineuse et illisible sur nombre de lecteurs. 23 est le choix par défaut pour une vidéo de bonne qualité. Entre 15 et 18, on aura un résultat visuellement sans perte. 51 est le réglage donnant le maximum de pertes avec un x264 8 bits. On peut taper d’autres chiffres à la place de ceux qui sont proposés.

    J’ai ajouté aussi la possibilité de redimensionner la vidéo en multipliant ou divisant par un nombre donné ; si le texte de la boîte commence par *, le rééchantillonnage sera celui qu’on aura choisi dans la liste “Méthode upscale” ; Lanczos par défaut pour une meilleure qualité. On peut aussi essayer spline, etc. (pour réduire la taille, le choix est désactivé, car les algorithmes complexes ne sont utiles que pour agrandir). La possibilité d’accentuer ou de réduire la netteté de la luma par masque flou (unsharp), réglable avec un curseur (flou pour les valeurs négatives), peut être utilisée pour toutes les conversions. On peut aussi prévisualiser une vidéo (avant traitement) en cliquant sur un bouton ou en double-cliquant sur le nom du fichier dans la liste. L’exécutable accepte aussi d’être lancé avec les noms de fichiers en ligne de commande.

    J’ai ajouté après coup la possibilité d’encoder en WMV et en XVID (ou DivX ; pour mémoire, car ce codec complètement dépassé ne peut servir que pour de vieux lecteurs de salon). On peut aussi mettre du x264/5 dans un conteneur AVI, mais XVID est le choix par défaut. J’ai un peu pataugé là-dessus, parce que le projet initial était clair alors que celui-ci est un peu le mariage de la carpe et du lapin. L’introduction du codec Microsoft, mal documenté, et du vieil XviD nécessitait de nouveaux boutons, l’utilisation de nouveaux codecs audio (wma et mp3) et ça a fortement bousculé mon code.

    Mais ça vaut largement toutes les saloperies en téléchargement gratuit et pleines de virus qu’on trouve un peu partout.

    NB : Je conseille de ne convertir qu’un fichier à la fois, parce que dans le cas contraire, toutes les conversions démarreraient presque en même temps, ce qui avec de gros fichiers et des codecs nécessitant de gros calculs bloquerait vite la machine. Il faudrait modifier cette procédure, mais je voudrais éviter d’avoir à écrire un batch intermédiaire.


    Nom : Capture.png
Affichages : 189
Taille : 246,7 Ko

    Je n'ai pas encore introduit les {$ifdef} pour la compatibilité Linux, mais c'est une formalité et en ce moment je ne me sers presque plus de Linux parce que j'hésite interminablement entre la mise à jour en ligne de mon Ubuntu Studio 14.04 qui m'est proposée au démarrage et qui va tout détruire comme d'habitude et une réinstallation radicale. Je suis loin de maîtriser les finesses de Lazarus / FPC et j'ai parfois un peu l'impression d'écrire du Basic comme en 1985, mais les critiques constructives seront bienvenues.

    Merci.
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    juillet 2006
    Messages
    8 478
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : juillet 2006
    Messages : 8 478
    Points : 12 060
    Points
    12 060
    Par défaut
    Bonjour,

    Citation Envoyé par Francois_C Voir le message
    [...] Je n'ai pas encore introduit les {$ifdef} pour la compatibilité Linux, mais c'est une formalité
    En effet !
    Avec une vieille distro Debian 7 / 32 bits et le vieux couple FPC 2.6.2 / Laz 1.4 je n'ai eu qu'un warning concernant une propriété TextHint... ou quelque chose comme ça à propos d'un TEdit, j'ai dit de continuer, ça m'a insulté encore un coup concernant la cible de compilation, ai tout passé en "default" et ça a ma foi, compilé et exécuté !

    Suis pas allé plus loin, pas trop le temps de jouer avec ça en ce moment (mais c'est bien intéressant de savoir que ça existe), j'avais cependant une question : à quoi ça sert ?
    Je veux dire, à partir du moment où un linuxien va faire son montage avec, mettons kdenlive (comme moi), outil capable d'aller jusqu'au bout, à quoi sert ce nouveau gui ? Qu'apporte-t-il de plus ?

    Bravo pour le travail sur l'outil, et merci par avance pour la réponse à la question.
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    mars 2006
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mars 2006
    Messages : 184
    Points : 403
    Points
    403
    Par défaut
    Depuis, je l'ai rendu entièrement cross-compilable et perfectionné. D'abord parce que ça m'amusait, que ça me permettait de mieux découvrir ffmpeg, et que j'en avais quand même l'usage :
    Mon petit-fils m'avait demandé un outil pour convertir ses vidéos, qui peuvent être des captures de bureau, des créations avec Blender, pour Youtube ou pour son smartphone, etc. : il utilisait WinFF, qui a des problèmes notamment avec les chemins UTF-8. Donc c'est au départ un remplacement de WinFF qui n'utilise pas de préréglages. Malheureusement, comme tous les ados il est beaucoup plus occupé qu'un retraité comme moi, et il ne l'a pas encore essayé.
    En pratique, ça m'a permis de partager plus facilement des vidéos avec ma famille : je crée la vidéo une fois dans un format sans pertes FFV1 ou x264 avec Kdenlive ou ShotCut et je crée des fichiers mkv ou mp4 en fonction des limites des lecteurs (un profil high@L4.2 ne passera sur aucun lecteur de salon, par exemple). C'est moins lourd à démarrer, et j'arrive mieux à régler la compression. Avec ShotCut notamment, en AVC j'obtiens toujours de gros fichiers parce que je choisis toujours les réglages les plus exigeants. Mais c'est vrai que ShotCut propose nativement des profils baseline, main et high qui doivent assurer la compatibilité avec les différents lecteurs.
    Ça me sert aussi à convertir en AVC ou HEVC mes anciennes vidéos MPEG2 ou des fichiers MPEG2 extraits de DVD. J'ai d'ailleurs dû rajouter une checkbox pour le désentrelacement, qui est absolument nécessaire pour les vieilles vidéos, et dans les choix d'upscale j'ai ajouté aussi deux options que personne ne comprendrait sans explication : 4/3 et 16/9 : le MPEG2 fait des images de 720x576 anamorphosées à l'affichage en 768x576 (4/3) ou 1024x576 (16/9). On peut bien sûr faire des AVC qui s'affichent avec le bon ratio sans changer le format des pixels, mais ce n'est pas tellement l'usage et j'ai prévu de rééchantillonner pour avoir des pixels carrés. J'ai ajouté aussi la possibilité du codec FFV1 et un essai du VP9, mais comme je ne comprends encore pas bien toutes les possibilités, ça reste expérimental.
    Je joins mes nouveaux fichiers sources.
    À propos, puisque tu sembles connaître quelque chose en vidéo : j'ai suivi les instructions des auteurs de ffmpeg qui disent que pour le HEVC, 28 est le CRF qui permet une qualité équivalente à celle qu'assure 23 en AVC ; or je me pose des questions. J'ai fait un essai hier avec un vieux film de famille des années 60 numérisé. >90 Mo en AVC, seulement 20 Mo en HEVC, mais le grain du film 8 mm est très visible sur le AVC alors qu'il est flouté en HEVC. Même avec 23, le grain paraît encore un petit peu flouté. C'est peut-être une caractéristique du codec, parce que les détails autres que le grain semblent respectés. As-tu une explication ?
    Fichiers attachés Fichiers attachés

  4. #4
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    juillet 2006
    Messages
    8 478
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : juillet 2006
    Messages : 8 478
    Points : 12 060
    Points
    12 060
    Par défaut
    Citation Envoyé par Francois_C Voir le message
    À propos, puisque tu sembles connaître quelque chose en vidéo : j'ai suivi les instructions des auteurs de ffmpeg qui disent que pour le HEVC, 28 est le CRF qui permet une qualité équivalente à celle qu'assure 23 en AVC ; or je me pose des questions. J'ai fait un essai hier avec un vieux film de famille des années 60 numérisé. >90 Mo en AVC, seulement 20 Mo en HEVC, mais le grain du film 8 mm est très visible sur le AVC alors qu'il est flouté en HEVC. Même avec 23, le grain paraît encore un petit peu flouté. C'est peut-être une caractéristique du codec, parce que les détails autres que le grain semblent respectés. As-tu une explication ?
    Aucune, pour la bonne et simple raison que je ne sais pas de quoi tu parles...

    Ce que je connais en vidéo est totalement empirique et appris découvert sur le tas : j'ai fait numériser les films de mon père (9,5, 8 et S8) en HQ, me suis retrouvé avec des fichiers .mp4 assez énormes et en avant, il a fallu virer ce qui était flou raté surex' sousex' inintéressant bougé abîmé etc., et j'ai surtout fait du montage plutôt que de la correction car l'outil est vraiment trop mal foutu : il y a plein d'options de corrections diverses et variées, par exemple, mais rien pour expliquer ce qu'elles font, donc comment choisir ? Laisse tomber... Je n'utilise l'outil qu'à 2% de ses possibilités...
    Bah, ça m'a permis au final de sortir un dvd avec menu comme les pros avec dvdstyler et voilà !

    Mais dans ce monde de fous (le dvd de famille), à force de lire des trucs à gauche et à droite, je suis un jour tombé sur ça : à partir du moment où tu as un dvd qui fonctionne, tout ce que tu peux dire, tout ce dont tu peux être sûr, c'est que ce dvd fonctionne sur le lecteur que tu as utilisé et tu n'as aucune certitude qu'il va fonctionner ailleurs.

    Ça calme...

    Ah, la nouvelle version s'est bien compilée, après avoir remis les options de processeur et tout ça "par défaut".
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    mars 2006
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mars 2006
    Messages : 184
    Points : 403
    Points
    403
    Par défaut
    Citation Envoyé par Jipété Voir le message
    Ce que je connais en vidéo est totalement empirique et appris découvert sur le tas:
    Tout pareil pour moi : je veux toujours tout comprendre, et surtout je ne peux pas lâcher tant que je n'ai pas compris, ce qui ne devient pas plus facile avec l'âge. J'ai fini par acquérir une connaissance apparente mais sans doute incomplète et inexacte de la vidéo. J'ai été aidé par ma connaissance assez approfondie mais tout aussi autodidacte des logiciels graphiques comme Gimp. J'arrive quand même à faire des corrections et des montages assez efficaces. Les bidouillages en Lazarus sur ffmpeg m'ont aussi fait bien progresser.

    Je ne fais presque plus de DVD (avec DVD Styler bien sûr) et je n'ai même pas essayé de faire des blu-ray avec des menus, vu que les lecteurs blu-ray de salon lisent très bien les fichiers MKV, MP4, Mpeg, etc. Je sauvegarde mes vidéos en fichiers sur des blu-ray. Comme les lecteurs se périment vite par rapport à l'évolution des formats, j'ai acheté à LDLC un mini-PC Asrock BEEBOX-CEL3000-4-H10 (http://www.ldlc.com/fiche/PB00197640.html) où j'ai installé Windows 10 (on ne pouvait pas installer autre chose à partir d'une clé USB 3.0) et avec lequel je lis les vidéos en utilisant mpv qui est beaucoup plus léger que VLC. Je conseillerais toutefois un processeur un peu plus puissant avec un ventilateur parce que ça a tendance à sauter un peu quand on lit du HEVC (h265) surtout quand Windows 10 est en train de faire dans ton dos une de ses saletés de mises à jour. Mais ça tient dans la main et ça lit tous les formats.

    Pour les films de mon père, on a fait comme pour ceux du tien avec les 8 mm et Super 8, mais les 9,5 ne sont pas encore numérisés. Il faudrait que je m'attaque aussi à mes propres super 8. Mes vidéo8 et Digital 8 sur cassettes vidéo8 sont en principe toutes transférées avec mon premier caméscope numérique Sony dont je ménage les derniers jours parce qu'il numérise directement les vidéo8.

    Je participerais avec enthousiasme à toute discussion sur la vidéo…

    Cordialement,

    François.

Discussions similaires

  1. [RECHERCHE] Convertisseur vidéo par lot
    Par Lekno dans le forum Multimédia
    Réponses: 5
    Dernier message: 08/01/2017, 16h20
  2. Une technologie de scan pour rendre les jeux vidéo encore plus beaux
    Par LittleWhite dans le forum Développement 2D, 3D et Jeux
    Réponses: 34
    Dernier message: 25/11/2014, 15h16
  3. Réponses: 7
    Dernier message: 06/05/2010, 17h27
  4. Réponses: 1
    Dernier message: 15/03/2007, 07h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo