Vidéo impossible à désentrelacer - Traitement Vidéo - Video & Son
Marsh Posté le 30-08-2014 à 23:04:56
Vu qu'une source 8mm est par définition progressive, elle ne devrait pas être entrelacée, donc le problème peut venir d'une différence de framerate entre le film 8mm et la caméra qui l'a filmé qui dédouble certains champs.
Avec avisynth il y a peut-être moyen de virer les champs en trop puis de procéder à une interpolation pour arriver à un framerate plus courant.
Si tu postes un extrait de ta vidéo, on pourra y voir plus clair.
Voici un serveur gratuit parmi d'autres ;
http://www.zippyshare.com/
Je suis curieux de voir ça parce que je n'ai pas encore travaillé sur une source 8mm.
Marsh Posté le 31-08-2014 à 09:53:11
Bonjour,
J'ai donné les films 8mm de mon père a une société spécialisé pour les numériser (il y a déjà quelques années). Les fichiers AVI que j'ai sont PAL entrelacés. J'ai un outil AVIDEMUX qui permet de voir le film image par image ou champ par champ en séparant les demi-champs (sur la copie d'écran).
J'avais cru comprendre comment fonctionnait l'entrelacement : 50 images par secondes composées de la moitié des trames de l'image d'avant avec la moitié des trames de l'image en cours, entrelacées.
Mais alors pourquoi voit-on un effet d'entrelacement sur ces demi-champs. Bref ça m'échappe .
Voici un extrait de la vidéo ici (30Mo) : enfroy.free.fr/video/zoocut.avi
Il y a des algorithmes d'interpolation élaborés pour résoudre les cas difficiles, mais je pense que la plupart des cas reviennent à un simple découpage des images en trames paires et impaires qui sont ensuite recollés pour reformer une image unique.
Marsh Posté le 31-08-2014 à 13:21:42
En fait on ne dit pas demi-champ parce qu'un champ (field) est déjà une demi-image (frame).
Pour faire des opérations sur les fichiers avi, je te conseille Virtual Dub plutôt qu'Avidemux.
Ton fichier avi, tu l'as reçu tel quel de la société qui a numérisé les films ou c'est toi qui as converti en avi un dvd (mpeg-2) ? J'ai l'impression qu'il n'a pas été compressé en mpeg mais je peux me tromper.
Ta vidéo a effectivement un petit souci qui vient fort probablement de ce que je supposais, donc une différence de framerate entre le film 8mm et la caméra qui l'a filmé.
Certaines images durent plus longtemps que d'autres et il y a eu un mélange d'images, on le voit bien en séparant les champs pair et impair et aussi en désentrelaçant.
Je ne maîtrise pas ce genre de problème typique des numérisations de films 8mm mais je sais qu'il y a bien mieux à faire qu'un simple désentrelacement, donc il faudrait s'orienter vers le forum doom9 où ce problème est souvent évoqué (je peux y poser la question si tu veux), là on est certain d'y trouver la solution.
Marsh Posté le 01-09-2014 à 21:40:01
Le fichier AVI est d'origine. J'ai juste découpé la séquence zoocut.avi avec VirtualDub que j'utilise aussi. A l'époque ou j'ai fait numériser ces films, j'ai monté les AVI et fait des DVD. Je ne me souviens pas avoir eu de problème.
Aujourd'hui j'aurais aimé pouvoir générer des mpeg2 avec le format PAL 720 × 576.
Le film 8mm est 24 images par secondes, mais je ne sais pas si la vidéo compense en ajoutant une image dupliquée par seconde. C'est pas obligatoire, on peut voir 24 images secondes à la vitesse de 25 images sans que ça gêne.
Merci pour ton analyse. Je ne connais pas le forum doom9. je vais aller voir.
Marsh Posté le 01-09-2014 à 22:18:58
Juste une chose, si tu pouvais te fendre de l'url du forum doom9 car il y a plusieurs sites avec ce même nom. Merci.
Marsh Posté le 02-09-2014 à 00:46:38
C'est un forum en anglais ;
http://forum.doom9.org/
C'est dans la partie avisynth que tu risques d'avoir les meilleures réponses ;
http://forum.doom9.org/forumdisplay.php?f=33
Je sais que les filtres Srestore et TDecimate sont régulièrement évoqués pour virer certaines images problématiques (en double ou "blendées" = mélangées).
Sans avisynth, je vois mal comment améliorer ta vidéo.
menfroy a écrit : Le film 8mm est 24 images par secondes, mais je ne sais pas si la vidéo compense en ajoutant une image dupliquée par seconde. |
Ce n'est pas aussi simple parce que c'est du 24 fps filmé en 25, ce qui crée des problèmes difficiles à récupérer (des images sont mélangées par la caméra), un peu comme si tu filmais un écran de pc 60 hz avec une caméra 50 hz. Ce n'est pas comme si on partait d'une vidéo en 24 fps et qu'on la convertissait en 25 fps (en ajoutant une image par exemple).
menfroy a écrit : on peut voir 24 images secondes à la vitesse de 25 images sans que ça gêne. |
Oui, en faisant défiler la vidéo plus vite (fonction assumefps dans avisynth), mais pour ça il faut avoir une vidéo "propre" en 24 fps, ce qui n'est pas le cas de la tienne.
Marsh Posté le 03-09-2014 à 00:03:58
Merci.
Je pense que la numérisation de mes films 8mm a été faite image par image et pas avec une caméra qui filme une projection. Mais je ne sais pas quel matériel a effectivement été employé.
Avec la caméra qui filme la projection, apparait un vignettage accentué, ce qui n'est pas mon cas.
Je pars poser la question sur le forum doom9. Si j'ai une bonne réponse, je la posterai ici.
Marsh Posté le 03-09-2014 à 10:42:39
menfroy a écrit : Je pense que la numérisation de mes films 8mm a été faite image par image et pas avec une caméra qui filme une projection. |
Ce serait étonnant parce que ça coûte très cher et est normalement réservé aux sociétés de production qui rentabilisent ces frais en revendant à minimum plusieurs milliers d'exemplaires le film numérisé, pour les particuliers on se contente de filmer l'écran.
Mais je suis curieux de connaître la solution apportée par doom9.
Marsh Posté le 04-09-2014 à 15:04:59
Ça va sûrement paraître bête mais ce serait pas une histoire d'inversion à un moment dans les trames paires et impaires ?
Marsh Posté le 04-09-2014 à 16:04:57
Non, l'ordre est bon (tu peux le voir avec avisynth), ce sont des champs mélangés, c'est typique de la numérisation de films 8 mm faite par une caméra qui ne filme pas dans le même framerate.
Marsh Posté le 05-09-2014 à 07:51:40
D'acc
J'ai pas téléchargé l'extrait, je poste depuis mon job alimentaire où j'ai aucun logiciel donc j'ai suggéré à l'aveugle.
Marsh Posté le 06-09-2014 à 21:32:29
Ma compréhension du problème de ma vidéo avance. Effectivement il s'agit d'un défaut de synchronisation entre le film à 24 images secondes et la caméra qui le filme.
J'en ai parlé avec un collègue de travail dont le père est féru de vidéo. Il a fait numériser des films super8 et a du les faire renumériser récemment car il avait je pense le même problème que moi. Les sociétés qui numérisent les films ne communiquent pas sur la partie technique et du coup, un non spécialiste n'a pas la connaissance des diverses options pour numériser les films.
Numériser image par image coute effectivement 4 ou 5 fois plus cher que ce que j'ai payé.
Je ne parviens pas à m'enregistrer sur le forum doom9 qui n'est pas user-friendly. Mais vu le problème, j'ai bien peur qu'il n'y ai pas de solution logicielle.
Je vais chercher dans les filtres de désentrelacement "intelligent".
Marsh Posté le 06-09-2014 à 22:30:02
Je suis à peu près sûr qu'il y a moyen de régler ça avec avisynth, c'est le genre de choses qu'on traite sur doom9.
Et comme je l'ai déjà dit, ce n'est pas avec un désentrelacement que tu vas résoudre le problème. Ça le masquera vaguement sans vraiment l'enlever.
Même avec Qtgmc qui est le meilleur désentrelaceur, on n'enlève pas ça, il faut adjoindre d'autres filtres.
Je peux poster ton extrait sur doom9 si tu veux, ça me servira aussi parce que je vais devoir transférer pour quelqu'un sur dvd des VHS qui proviennent de films 8mm.
Si je me souviens bien, il faut attendre plusieurs jours pour pouvoir poster un message après son inscription sur doom9, je crois qu'ils ont fait ça pour dissuader les spammers.
Marsh Posté le 07-09-2014 à 00:46:34
C'est le blending qui t'embête ? Est-ce que tu as essayé un simple bobbing + deblend ? Un truc tout bête du genre :
yadif(mode=1)
srestore()
Un test que je viens de faire :
http://www17.zippyshare.com/v/35752290/file.html
À voir si c'est cela que tu recherches.
Marsh Posté le 07-09-2014 à 10:53:52
Bonjour.
Merci Tagada pour ce test. Le résultat me semble bon. C'est bien ce que je cherche. C'est fluide et c'est désentrelacé. Quel outil as tu utilisé ?
Merci arnuche. La vidéo peut être postée bien sur.
Marsh Posté le 07-09-2014 à 12:27:23
Ah ben voilà, Srestore, c'est bien le filtre dont je parlais plus haut.
Mais tu remarqueras qu'il y a encore des images doublées et d'autres mélangées, je pense qu'il y a encore moyen d'améliorer ça.
Je vais poser la question sur doom9.
J'ai un peu lu la doc de Srestore, c'est costaud, les réglages par défaut ne sont pas bons pour tous les cas (en même temps c'est logique sinon on ne pourrait pas changer les réglages).
Marsh Posté le 07-09-2014 à 22:44:05
Déjà quelques réponses, le script est amélioré mais pas encore parfait ;
http://forum.doom9.org/showthread.php?t=171148
Pour l'instant le meilleur résultat que j'ai obtenu c'est comme ça ;
Code :
|
D'après eux c'est du 18 fps à la source, pas du 24.
J'ai utilisé tdeint pour le test parce qu'il est rapide mais dans le script final il vaudrait mieux le remplacer par qtgmc (nettement plus lent mais meilleur). Et ensuite faire de l'interpolation et du nettoyage, mais on n'y est pas encore, le plus dur étant de commencer par un bon "deblend" ("dé-mélange" ).
Il y aura sans doute d'autres réponses.
edit : résultat encore meilleur si je mets 16 à la place de 18 dans la ligne TDecimate ;
Code :
|
C'est donc bien du 8mm et pas du super 8 ? Parce que ce dernier est filmé en 18 fps, le premier en 16 fps ;
http://en.wikipedia.org/wiki/Super [...] r_8_system
edit 2 : encore mieux, on peut se passer de TDecimate en changeant un réglage dans Srestore ;
Code :
|
Pour bien voir les différences, il faut bien sûr comparer ces scripts en avançant image par image dans Virtual Dub et pas en les lisant à vitesse réelle.
Marsh Posté le 08-09-2014 à 11:02:29
Il y a eu une réponse encore meilleure, il y a moyen de se passer de désentrelacement et de Srestore avec ce script ;
Code :
|
Et il n'y a plus le moindre blend
Quand je vous dis qu'il y a des mecs balèzes sur doom9
Mais je te repose la question menfroy parce que c'est important ; tes films, c'était du 8mm ou du super 8 ? Parce que ce n'est pas le même framerate, et il faudrait le savoir pour mettre le bon dans la dernière ligne (assumefps).
Marsh Posté le 08-09-2014 à 12:53:52
En fait le framerate obtenu après la ligne tdecimate est de 17.1512 fps, donc pour moi une solution s'impose ; multiplier ça par 3 via interframe qui fait une bonne interpolation, on arrive aux alentours de 50 fps. Il faut le faire comme ça pour simplifier les calculs;
Code :
|
J'ai exporté ça en Lagarith (codec lossless), ça donne vraiment bien et le script est plutôt rapide, 26 fps de moyenne sur mon pc (visible avec AVSMeter).
Ensuite il y a toujours moyen de l'entrelacer si tu veux mettre ça sur dvd, mais tu peux garder une version 50p et la mettre sur AVCHD (en 1280.720 si ça ne passe pas en 720.576, il faudrait alors rajouter des bandes noires latérales).
Et on peut aussi nettoyer l'image, renforcer les couleurs, le piqué ...
Marsh Posté le 08-09-2014 à 22:57:22
Bonjour.
Les films sont en 8mm et pour moi le framerate est 24 images par seconde.
Marsh Posté le 08-09-2014 à 23:39:00
Les films n'ont peut être pas été numérisés avec le framerate nominal. C'est la vitesse du film lors de la numérisation qui compte et là je n'ai pas l'information. Donc 17.1512 est possible.
Marsh Posté le 09-09-2014 à 00:11:57
Clique sur le lien wikipedia que j'ai donné, le 8mm c'est 16 fps.
A part ça je pensais que tu serais un peu plus enthousiaste vu le résultat
Marsh Posté le 09-09-2014 à 08:04:01
D'accord c'est du 16 fps. J'étais petit à l'époque et j'avais retenu 24 fps. Ou alors c'est mon père qui m'a induit en erreur.
Enthousiaste je le suis, mais je n'ai pas encore vu le résultat.
J'ai une erreur à l'exécution du script à cause de ffvideosource. J'ai vu qu'il me manquait un plugin mais il y a plusieurs versions.
Dès que ça fonctionne, je m'exclame .
En tout cas ce fil est un chapitre d'anthologie car je suis convaincu que d'autres personnes ont eu le même problème et pas les connaissances pour le résoudre.
Je te renouvelle mes remerciements ainsi qu'à tous les autres participants.
Marsh Posté le 09-09-2014 à 11:42:24
De rien, c'est avec plaisir
Pour les plugins, il en faut plusieurs :
-FFmpegSource 2.17 ;
https://code.google.com/p/ffmpegsou [...] ms-2.17.7z
Tu prends les 3 fichiers (FFMS2.avsi, ffms2.dll et ffmsindex.exe)
Ou tu peux écrire dans le script AVIsource au lieu de ffvideosource, dans ce cas il ne faut pas de plugin mais un filtre DV sur ton pc, tu peux installer Cedocida qui est gratuit et serait meilleur que celui de ffdshow (prendre le Binaries 0.2.3) ;
http://www.cithraidt.de/cedocida/index.html#download
Clic droit sur cedocida.inf, installer.
-TIVTC qui va être utilisé par les lignes tfm et tdecimate ;
http://avisynth.nl/index.php/TIVTC
Dans le zip décompressé, tu prends juste le fichier TIVTC.dll.
-Interframe (une nouvelle version vient justement de sortir ce matin) ;
http://forum.doom9.org/showthread.php?t=160226
5 fichiers : InterFrame2.avsi et les 4 dll du dossier Dependencies (donc tu ne mets pas le Dependencies comme sous-dossier du dossier plugins d'Avisynth, tu mets directement les dll dans le dossier plugins).
Tu mets tout ça dans C:\Program Files (x86)\AviSynth 2.5\plugins ou C:\Program Files\AviSynth 2.5\plugins
Même quand on installe AviSynth 2.6 il met 2.5, ça doit être un oubli des développeurs mais ce n'est pas grave, on laisse ça comme ça.
Il est possible qu'Interframe ait besoin du fichier OpenCL.dll, il faut le mettre dans C:\Windows\System32 ou C:\Windows\SysWOW64 selon l'OS qu'on a.
Pour certains scripts, il faut aussi les fichiers MSVCR71.dll et msvcr120.dll.
Je crois qu'il n'y a pas besoin de les inscrire dans le registre ni de redémarrer le pc pour que ça marche.
Je vous donne ces 3 dll ainsi que msvcr100.dll qui peut servir à certains programmes, ça vous évitera de chercher ;
http://www15.zippyshare.com/v/4632853/file.html
Ce sont des archives 7-Zip ;
http://www.7-zip.org/
Je ne sais plus si Winrar les prend en charge, sinon vous installez 7-Zip, c'est gratuit et très efficace et gère aussi le rar et le zip.
Tant que j'y suis, pour ceux qui n'ont pas avisynth, je donne la vidéo en 2 versions, sans Interframe, en 18 fps ;
http://www59.zippyshare.com/v/68994484/file.html
J'ai utilisé ce script ;
Code :
|
et avec Interframe en 50 fps (voir script que j'ai donné hier qui se termine par assumefps(50/1) ), 3 fois plus d'images donc 3 fois plus fluide ;
http://www2.zippyshare.com/v/29161308/file.html
C'est encodé en Lagarith (codec lossless), si vous ne parvenez pas à les lire, installez ce codec ;
http://lags.leetcode.net/codec.html
N'oubliez pas que c'est encore plus fluide sur un écran 50hz et que votre pc est sans doute configuré en 60 ou 75 hz.
Après on pourra discuter de ce que tu veux faire de cette vidéo (nettoyer ou pas, mettre sur dvd ou AVCHD, ...).
Marsh Posté le 10-09-2014 à 11:56:10
Y'en a du monde ici
Cela dit, un conseil important : même si tu fais de l'interpolation pour avoir un dvd fluide, garde au moins une version dans le framerate d'origine (donc avec l'entrelacement et les blends supprimés) mais sans effet ni sans interpolation qui dénature l'image, même si ça la rend plus agréable à regarder, tu pourras toujours en faire ce que tu veux par la suite. Donc une version encodée via le dernier script que j'ai posté et qui n'utilise que les fonctions tfm et tdecimate. Et à la fin tu peux mettre assumefps(16/1) au lieu d'assumefps(18/1) si tu es bien sûr que ça vient d'un film 8mm et pas super 8. De toute façon que tu mettes 16 ou 18 ne change rien à la nature de l'image, ça ne joue que sur la vitesse de défilement et ça se change facilement par la suite, même sans ré-encodage.
Et je te conseille de l'encoder en Lagarith pour ne rien perdre en qualité. Ça facilitera l'éventuel futur filtrage qui partira d'une image sans artefacts de compression.
Ça prendra plus de place qu'en DV (faut compter autour de 30 Mbps pour du 720*576 en 16 fps) mais pour un film personnel auquel on tient, ça vaut le coup. Et c'est pas tellement plus que la version DV en 25 fps (25 Mbps).
Faudra aussi vérifier que les valeurs de tfm et tdecimate sont bonnes quelle que soit l'image de départ, parce que je suppose que l'extrait que tu as donné vient du milieu et donc sa première image n'est pas la même que celle de ta vidéo entière.
Marsh Posté le 10-09-2014 à 19:34:08
J'ai une erreur à la 1ère ligne du script :
AVISource autodetect: couldn't open file 'mon zoocut'. Error code: 2
C'est à dire que le fichier est introuvable, pourtant j'ai mis le bon chemin.
J'ai essayé de mettre .avi à la fin mais c'est pas mieux.
Je n'identifie pas les paramètres de avisource. le DV indique le type vidéo? et le bff.avi la destination?
J'ai essayé de supprimer ces 2 paramètres pour ne garder que avisource("zoocut.avi" ) et là j'ai un autre message :
AVISource; couldn't locate a decompressor for fourcc dvsd.
Mon objectif du moment est de faire des mpeg2 ou mpeg4 (ou Lagarith, je ne connais pas ce codec) sans autre traitement que la récupération des 16 (ou 18) images d'origine non entrelacés pour pouvoir les visualiser sur PC ou télé à la clé USB dans le format ou ils sont 720*576.
Je sais que plus on traite, plus ça dégrade la qualité d'image et bien entendu je garde précieusement les fichiers d'origine.
Je vais essayer de déterminer exactement le framerate car il y a eu apparemment plusieurs valeurs d'utilisé. Je n'ai plus la caméra d'origine.
Marsh Posté le 10-09-2014 à 19:57:26
Je viens de regarder les 2 exemples à 18 et 50 fps. C'est impressionnant car je débarque complètement et j'ignorais qu'il existait des outils aussi puissant.
La 50 fps est évidemment plus fluide mais il y a des artefacts.
Marsh Posté le 10-09-2014 à 22:39:00
Les artefacts sont inévitables avec l'interpolation, notamment sur les bords et spécialement quand il y a un mouvement de caméra puisqu'il faut inventer des choses qui n'ont pas été filmées : si tu bouges vers la gauche, il y a aura des nouvelles informations sur le côté gauche de l'image par rapport à l'image précédente.
Et faire la moyenne entre 2 images quand une information n'est présente que sur une image, ben c'est quasi impossible, d'où les artefacts.
C'est d'autant plus vrai avec des framerates faibles comme le 16 fps puisqu'à mouvement égal il y a une plus grande différence entre 2 images consécutives par rapport à une vidéo à framerate élevé.
C'est aussi à cause de cette différence entre images consécutives que les panoramiques au cinéma sont plus flous que les plans fixes : à vitesse d'obturation égale, tu peux difficilement avoir une image aussi nette en bougeant la caméra qu'en ne la bougeant pas (surtout si le sujet est fixe dans ce dernier cas). Et c'est la raison majeure pour laquelle certains films commencent à être tournés en 48 ou 60 fps au lieu du traditionnel 24 fps.
Mais son veut vraiment faire de l'interpolation et ne pas voir les artefacts de bords, il y a une astuce : cropper les bords. On perdra un peu d'informations sur les bords mais c'est un compromis. Et si on ne veut pas faire de resize (puisque la réso a changé après le crop), on peut toujours remplacer les bords croppés par des lignes noires (fonction addborders dans avisynth).
Concernant ton message d'erreur, vérifie que tu as bien mis le bon nom de fichier dans le chemin (j'avais changé le nom sur mon pc en y rajoutant DV et bff juste pour retenir que c'était du DV en bff, mais si chez toi le fichier s'appelle zoocut.avi, ben tu mets juste zoocut.avi).
Pour le codec DV, installe Cedocida.
Et j'insiste pour le Lagarith, c'est le meilleur codec lossless (il y en 3 ou 4) et pour des archives comme les tiennes que tu seras probablement amené à encoder de plusieurs manières différentes, il est indispensable d'en garder une version dans la qualité initiale, sans traitement, excepté le traitement fait par les lignes tfm et tdecimate qui te permettent de retrouver les images de base. Ces 2 filtres ne créent rien, au contraire, ils enlèvent les champs superflus générés par la caméra qui a numérisé les films et les a donc dénaturés.
Avec une version en Lagarith à 16 ou 18 fps, c'est comme si tu avais scanné ton film image par image sans introduire d'entrelacement ni mauvais mélange de champs.
Et ensuite tu le compresses dans le codec de ton choix pour le voir sur un lecteur de salon ou autre mais garde bien la version Lagarith.
A part ça la discussion sur doom9 est assez passionnante, je vous invite à la lire.
Je passe pour un sombre débutant sur doom9 , faut dire que c'est le repaire de tous les développeurs de filtres avisynth et autres logiciels gratuits relatifs à l'encodage audio et vidéo, des pointures quoi.
J'y ai notamment appris qu'il y avait une astuce permettant de faire défiler un dvd plus lentement que son framerate d'encodage grâce à des "flags RFF" qu'on peut rajouter au flux mpeg-2 avec DGpulldown, et ce serait compatible avec la norme dvd, bien que pas du tout connu.
Ça permet d'encoder du 16 fps (enfin presque, du 16.66) en 25 fps (donc à la norme PAL) mais de le faire défiler à du 16.66 fps. Pourquoi 16.66 et pas 16 ? Parce que ces flags ne permettent pas de descendre plus bas que les 2/3 du framerate, et 2/3 de 25 ça fait 16.66. Vu que c'est assez proche de 16, on ne voit pas la différence de vitesse.
Sauf que comme les lecteurs ne peuvent pas sortir du 16.66 fps, ils dupliquent certains champs en temps réel (c'est le principe du soft pulldown, très répandu sur les dvd Ntsc avec les films qui sont encodés en 23.976 fps mais "flaggés" pour être lus à du 29.97 fps), ce qui crée des petites saccades mais permet de garder la vitesse initiale et donc de ne pas toucher au son.
En fait c'est peut-être le même genre de flag que le 3:2 pulldown du Ntsc, donc pas si inconnu que ça, sauf qu'en PAL ce n'est quasiment jamais utilisé (en tout cas sur les dvd du commerce).
Malgré ces saccades, il y a quand-même 3 avantages :
-comme il n'y a que 16 images par seconde, le bitrate par image peut être plus grand (à débit total égal) que si on encodait en 25 fps, donc moins de compression
-la vitesse de défilement est à peu près la même que le film 8 mm d'origine
-il n'y a pas d'interpolation, donc pas d'artefacts
Pour ce genre de dvd pas classiques du tout, il faut encoder le mpeg-2 en 25 fps (via la fonction assumefps(25) dans avisynth, ce qui va largement accélérer le film), puis sur le flux mpeg-2 @ 25 fps on met le flag RFF en disant que ça doit défiler à 16.66 fps.
Ça implique bien sûr que si on sonorise un tel projet, il faut le faire en 16.66 fps et pas 25 pour que ce soit synchro avec la vidéo à la lecture.
Et on a eu du bol que ce johnmeyer passe par là parce qu'il maîtrise particulièrement la numérisation de films 8 mm et tout ce qui concerne l'inverse telecine (IVTC = opérations visant à retrouver les champs d'origine) ; il trouvait que ta vidéo n'était pas particulièrement difficile à traiter , et il a même fabriqué une machine pour numériser lui-même ses films 8 mm
Marsh Posté le 11-09-2014 à 22:40:41
C'est bon ça fonctionne. C'était bien le codec qui me manquait.
Cependant avec 300mn de vidéo, je ne vais pas conserver les fichiers intermédiaires, je n'ai pas la place sur mon disque. Je pense compresser directement en mpeg.
Je voudrais vérifier aussi si le framerate de 17.1512 fps est bon pour chacun de mes fichiers vidéos. Le calcul sur le fichier complet sera plus juste. Je sais que c'est pas forcément très important mais tant qu'à faire, j'aimerais bien tomber au plus près des images d'origine.
Encore mille mercis.
Marsh Posté le 11-09-2014 à 23:33:45
menfroy a écrit : Cependant avec 300mn de vidéo, je ne vais pas conserver les fichiers intermédiaires, je n'ai pas la place sur mon disque. Je pense compresser directement en mpeg. |
Je pense que c'est une erreur et que tu risques de le regretter. Ou alors garde tes fichiers DV mais tu devras chaque fois ré-utiliser le script qui permet de retrouver les images d'origine.
Et 300 mn c'est pas tellement, 5 heures, ça fera +/- 78 Go. Quand tu vois le prix des DD de 2 To ...
menfroy a écrit : Je voudrais vérifier aussi si le framerate de 17.1512 fps est bon pour chacun de mes fichiers vidéos. Le calcul sur le fichier complet sera plus juste. Je sais que c'est pas forcément très important mais tant qu'à faire, j'aimerais bien tomber au plus près des images d'origine. |
Je veux bien un autre extrait de ta vidéo pour voir comment se comporte le script de johnmeyer.
Ce qui compte, c'est que tu n'aies plus d'entrelacement, plus d'images mélangées et plus d'images doublées. Si tout ça est respecté sur +/- 20 images successives, on pourra en déduire que le script fonctionne. A vérifier image par image avec Virtual Dub.
Concernant l'encodage mpeg-2 en vue d'une réalisation de dvd, l'astuce dont on m'a parlé sur doom9 et que j'évoquais déjà hier semble vraiment intéressante : faire assumefps(25), encoder en 25 fps à +/- 14 Mbps (alors qu'un dvd est limité à 10 Mbps !) puis passer par DGPulldown qu'on va régler de manière à ce qu'il mette un flag pour que la vidéo soit lue à du 16.66 fps et va donc réduire le débit par seconde pour revenir sous les 10 Mbps en 16.66 fps (puisque 14 Mbps pour 25 images = 9,33 Mbps pour 16.66 images).
Ça permet donc d'augmenter le débit de 50% par image par rapport à un film en 25 fps !
Et contrairement à ce que j'avais cru comprendre, ça ne crée pas de saccades, voir ci-dessous.
En résumé, voilà comment vont être gérées les 16.66 images pour en devenir 25 grâce au flag qui dit au lecteur comment gérer ces images (puisqu'un décodeur ne peut sortir que du 25 fps en PAL et du 29.97 en Ntsc, et même si le lecteur peut sortir du Ntsc en 23.976 fps, il passera quand-même en interne par du 29.97 et re-créera ensuite du 23.976 fps parce qu'il ne peut ignorer le flag) ;
Code :
|
Sur la 1ère ligne ce sont les 16.66 images (j'en ai mis 9, pas besoin de tout mettre pour comprendre le truc), juste en-dessous ce sont les 50 champs provenant de ces images (1t = top field de l'image 1, 1b = bottom field de l'image 1, ...), et en bas les 25 images constituées chacune de 2 champs.
On voit que le champ 1t est affiché 2 fois (mais pas successivement puisqu'il faut toujours une alternance entre un champ du haut et un du bas, t et b) alors que le 1b ne l'est qu'une fois, mais comme ces 3 champs proviennent de la même image (et ont donc été filmés au même moment) et que chaque image de base donne lieu à 3 champs, il n'y a pas de saccades. Par contre il y a une légère baisse de résolution toutes les 3 ou 4 images (sur la 3ème ligne du schéma) du fait qu'elles sont constituées de 2 champs provenant de 2 images différentes. C'est le cas des images 2 (constituée de 1t et 2b), 5 (3t-4b), 8 (5t-6b), 11 (7t-8b), ...
Mais ce sera quand-même largement mieux que n'importe quel autre type d'encodage pour ce genre de sources 8mm et sera ce qu'il y a de plus fidèle possible pour un encodage à la norme dvd.
C'est du 3:3 pulldown et ce n'est possible qu'avec du 16.66 fps (sur dvd PAL et 19.98 fps en Ntsc).
Marsh Posté le 14-09-2014 à 10:56:58
Bonjour.
Pour les fichiers intermédiaires, ça dépend de la vitesse de génération. Pour quelques heures, je les referais en cas de besoin.
Voici un nouvel extrait de la vidéo, un peu plus long (C'est le zoo de Vincennes, bien connu des parisiens, vers 1965. Il est resté fermé des années pour travaux). Ici (70Mo) : enfroy.free.fr/video/zoocut2.avi.
J'ai envie d'avoir du mpeg (2 ou 4) en sortie mais je ne vais pas faire de DVD. Je voudrais juste avoir les fichiers sur une clé USB pour les voir n'importe ou. Maintenant toutes les télés peuvent lire des clés USB. J'ai un jeu de DVD que j'ai fait quand les films ont été numérisés, mais ils ont 2 défauts : le problème d'image mélangé et aussi le logiciel que j'ai utilisé m'a recadré les films en 640x480.
Sauf erreur, je peux régler le framerate avec une autre valeur que 25 fps si c'est pas pour un DVD?
L'astuce du flag pour que la vidéo soit lue à du 16.66 fps est en tout cas intéressante.
Marsh Posté le 14-09-2014 à 14:37:21
menfroy a écrit : Pour les fichiers intermédiaires, ça dépend de la vitesse de génération. Pour quelques heures, je les referais en cas de besoin. |
L'export en Lagarith est ultra rapide, bien plus que le temps réel, vu qu'il n'y a qu'une légère compression lossless, donc très peu de calculs à faire.
Et le script de johnmeyer est très rapide aussi puisqu'il enlève des images mais ne crée rien.
Je viens de faire le test en Lagarith @ 16 fps avec l'extrait zoocut2, le fichier a été créé à plus de 30 fps, donc le double de son fps d'export, ce qui veut dire 2 fois plus vite que la durée du fichier.
Et j'ai calculé que sur un dd externe de 2 To à 80 €, il t'en coûterait moins de ... 4 € pour 78 Go !
Pour info, si tu encodes en Lagarith, il faut faire 2 choses (pour des vidéos encodées en couleurs YV12) ;
-dans Virtual Dub : aller dans video, color depth, cocher 4:2:0 planar ... (YV12) à gauche et cocher same as ... à droite
-dans les options de Lagarith : décocher always suggest RGB et choisir YV12 dans la liste déroulante.
Tu peux aussi en profiter pour désactiver le son dans Virtual Dub (audio, no audio) puisque la piste audio est muette, tu gagneras encore de la place.
menfroy a écrit : Voici un nouvel extrait de la vidéo, un peu plus long (C'est le zoo de Vincennes, bien connu des parisiens, vers 1965. Il est resté fermé des années pour travaux). Ici (70Mo) : enfroy.free.fr/video/zoocut2.avi |
Ils sont amusant ces singes
Bonne nouvelle, le script a l'air de bien fonctionner aussi sur cet extrait
Et le framerate est aussi de 17.1512 fps, tu peux voir ça en ne mettant pas assumefps après tdecimate et en mettant info() à la place (à la dernière ligne). Il faut bien sûr l'enlever pour l'encodage puisque ça affiche les caractéristiques en surimpression.
menfroy a écrit : J'ai envie d'avoir du mpeg (2 ou 4) en sortie mais je ne vais pas faire de DVD. Je voudrais juste avoir les fichiers sur une clé USB pour les voir n'importe ou. Maintenant toutes les télés peuvent lire des clés USB. J'ai un jeu de DVD que j'ai fait quand les films ont été numérisés, mais ils ont 2 défauts : le problème d'image mélangé et aussi le logiciel que j'ai utilisé m'a recadré les films en 640x480. |
Oui, la plupart des lecteurs lisent quasi tous les framerates jusqu'à 30 en progressif et 60 en entrelacé en lecture de fichiers. Mais faut voir comment ils gèrent le framerate, ils risquent d'ajouter des saccades.
C'est quoi le logiciel que tu as utilisé ? Il ne doit pas recadrer en 640.480, laisse en 720.576. Après il suffit de changer le PAR du mpeg avec Restream ou DvdPatcher pour que ça s'affiche en 4/3 et pas 5/4.
Et pareil si tu encodes en h264, tu peux changer le PAR du mp4, du ts ou du mkv facilement.
menfroy a écrit : L'astuce du flag pour que la vidéo soit lue à du 16.66 fps est en tout cas intéressante. |
C'est le moins qu'on puisse dire.
Comme expliqué sur doom9, à la ligne custom de DGPulldown, il faut mettre 16.667 à gauche (bien que le mpeg-2 soit encodé en 25 fps) et 25 à droite. Comme ça DGPulldown sait que le vrai framerate est 16.667 et qu'il faut rajouter des flags de manière à ce qu'il soit affiché en 25 fps par le lecteur à la bonne vitesse.
Pourquoi 16.667 ? Parce que comme je le disais plus haut, ce flag ne permet pas de descendre plus bas que les 2/3 du framerate d'affichage, et 2/3 de 25 c'est 16.666666, qu'on arrondit 3 chiffres après la virgule à 16.667 et pas 16.666 qui serait juste en-dessous du framerate autorisé (et 6666 est plus proche de 6670 que 6660).
Il paraît que certains logiciels d'authoring ont un souci avec ce flag, dans ce cas on peut se tourner vers la version de base de Muxman (0.16.8) qui est gratuite mais ne crée pas de menu ;
http://stnsoft.com/Muxman/versions.shtml
Je ne sais plus si cette version permet d'exporter plusieurs titres en une fois, sinon il suffit de faire un projet par titre et de les assembler en mode re-author avec Dvd-Shrink. Ces logiciels ne ré-encodent pas donc tout ça est très rapide.
Marsh Posté le 15-09-2014 à 11:31:13
Je crois qu'il y a un détail que j'avais oublié de signaler concernant l'encodage mpeg-2 et l'astuce DGPulldown pour lire du 16.667 fps en 25 : il faut que la taille de GOP ne dépasse pas 10 puisqu'après passage par DGPulldown, ce ne sera plus du 25 mais du 16.667 fps (avec un flag pour être lu à 25 sans changement de vitesse), ce qui signifie que non seulement le bitrate va baisser mais les GOP vont être étirés sur une plus longue durée, et il faut que le GOP en PAL ne dépasse pas 15 après passage de la vidéo par DGPulldown.
J'ai testé un GOP de 8 et ça devient 12 après passage par DGPulldown, logique.
Avec un GOP de 9 à l'encodage, ça devient 13 ou 14 selon les GOP après passage par DGPulldown.
Je peux voir la taille réelle des GOP dans Tmpg Dvd Author 2 qui accepte les fichiers mais prévient que le bitrate est trop haut. Faut croire que DGPulldown ne change pas le bitrate indiqué dans l'en-tête, mais ça peut se changer avec ReStream ou Dvd Patcher.
Ça passe sur mes 3 lecteurs (Oppo, Sony, Pioneer) à la bonne vitesse mais le Sony a visiblement du mal à faire un bon désentrelacement, puisque je rappelle que cette méthode oblige le lecteur à convertir le 16.667 fps en 25i et qu'il convertit ensuite ce 25i en 50p si la sortie Hdmi est configurée pour sortir du 50p.
C'est plus compliqué que s'il n'y avait pas d'étape 25i entre le 16.667 et le 50p puisqu'il suffirait de multiplier directement par 3 chaque image, mais ce n'est pas possible si on veut respecter la norme dvd pour laquelle il faut "flagger" l'image en 25 ou 29.97 fps.
Le problème du Sony se voyait nettement sur le timecode que j'avais rajouté en surimpression pour vérifier si l'image défilait à la bonne vitesse, les chiffres tremblaient assez fort.
Marsh Posté le 15-09-2014 à 23:28:35
D'accord.
C'est pas un disque de plus qu'il me faut mais un nouveau PC. Le miens a 9 ans et est sous XP. J'ai déjà ajouté 1 disque et je n'ai plus la place mécaniquement.
J'ai vérifié le framerate de plusieurs de mes vidéos et la valeur est toujours de 17.1512 fps. Je suis un peu étonné par la précision. Je me souviens du projecteur dont la vitesse changeait selon l'échauffement du moteur. Il fallait l'ajuster à l'aide d'un bouton en cours de visionnage.
J'ai traité la vidéo du zoo intégralement avec une compression DivX. Le résultat est bon et ça passe sur ma télé à la clé USB (30mn de CPU pour 10mn de vidéo).
Marsh Posté le 30-03-2016 à 10:30:52
Hello !
Un an et demi après, j'ai une bonne et une mauvaise nouvelle : en relisant les explications de johnmeyer sur doom9, j'ai constaté un truc pas clair (il disait qu'il fallait retirer 26 images et son script indiquait 27) alors j'ai bien observé la vidéo et j'ai constaté qu'il y avait moyen d'améliorer son script
Je lui ai dit sur doom9 ;
http://forum.doom9.org/showthread. [...] ost1761589
Il faut remplacer cycle=86,cycleR=27 par cycle=26,cycleR=8. La différence est très subtile : son script enlève une image en trop sur l'extrait que tu as donné et ça ne se voit qu'à la 112 ème image ! Ça crée donc une petite saccade toutes les 112 images (ou 113 puisque ça commence à 0 et pas 1). Le framerate passe de 17.1512 fps à 17.308 fps.
Je disais que c'est une bonne nouvelle puisqu'il y a une amélioration mais c'est aussi une mauvaise si tu as tout ré-encodé et que tu ne veux plus le refaire ou que tu n'as plus les fichiers d'origine.
Marsh Posté le 30-08-2014 à 22:46:04
Bonjour.
J'ai une vidéo PAL issue de la numérisation d'un film 8mm.
Elle est entrelacé.
Je voudrais la dés entrelacer, mais le résultat contient encore certaines images avec un fantôme de l'image d'avant.
En regardant avec un outil les demi-champs image par image, je m’aperçois que certain d'eux ont cette caractéristique.
Je ne comprends pas car pour moi c'est la réunion de 2 demi-champs dans une même image qui provoque ce phénomène. Chaque demi-champ est issu d'une seule image du film d'origine.
Si quelqu'un a une idée ou un conseil, merci.