Problème pour ouvrir des vidéos MPEG2 avec Avisynth.

Problème pour ouvrir des vidéos MPEG2 avec Avisynth. - Traitement Vidéo - Video & Son

Marsh Posté le 13-08-2004 à 03:45:53    

Je cherche à ouvrir des vidéos MPEG2 (issues du satellite numérique) avec AVIsynth (en vue de l'ouvrir avec VirtualDub (pour y rajouter des effets impossibles à faire rien qu'avec VDub).
 
Normalement, on est censé faire un fichier toto.avs qui contient :

Code :
  1. DirectShowSource("C:\Video.mpg", fps=25)


(Note : je pe passerais volontiers de spécifier le framerate car il est censé être inclu dans la vidéo sauf que j'y suis forcé sinon ça veut pas s'ouvrir)
 
Sauf que ça me bouffe environ 3 frames sur 4 et la vidéo va 4 fois trop vite.
Normalement les vidéos MPEG sont formées de frames I, P et B qui se suivent du genre : IBBBPBBBPBBBPBBBPIBBBPBBBPBBB...
Eh bien avec la solution donnée ci-dessus, les frames B partent à la trappe. Alors on arrive forcément beaucoup plus vite à la fin de la vidéo. :/
 
D'autre part, cette façon d'ouvrir la vidéo fait que l'image est désentrelacée (et redimensionnée parfois) automatiquement. Dans le cadre d'une lecture de DVD, c'est très bien de convertir le format PAL (entrelacé et étiré verticalement) en qq chose de lisible sur PC mais dans le cas de ce que je veux faire, je voudrais conserver la vidéo brute.
En fait, pour être clair, ce que je veux exactement, c'est obtenir le même résultat que si j'ouvrais directement mon fichier MPEG2 avec VirtualDubMod (je rappelle que si je ne le fais pas, c'est parce que je veux par la suite rajouter des effets faisables uniquement avec AVIsynth).
 
Alors ? Avez-vous déjà réussi à ouvrir du MPEG2 correctement avec AVIsynth ?
Est-ce que ça vient de mon "codec" MPEG2 ? (j'en ai essayé d'autres que celui installé par mon lecteur DVD et certains redimensionnent, d'autres ne marchent carrément pas)... Ou bien de DirectShow ?
Merci de m'aider.


Message édité par xman le 13-08-2004 à 03:58:58

---------------
Bon, puisque presque tout le monde a une signature, ben moi aussi ! Na !
Reply

Marsh Posté le 13-08-2004 à 03:45:53   

Reply

Marsh Posté le 13-08-2004 à 04:11:45    

Ah ben désolé de vous avoir embêté.
J'ai finalement trouvé.
C'est dingue ça. J'ai passé toute la journée à me casser la tête dessus et quand je poste enfin parce que j'en ai marre de buter, je trouve la réponse tout seul 10 minutes après.
 
Alors en fait, histoire que ça serve à qq1, il faut aller ici http://www.avisynth.org/warpenterprises/ et récupérer dgmpgdec1012 (2004-06-07) et suivre les instructions très claires du fichiers quickstart.html


---------------
Bon, puisque presque tout le monde a une signature, ben moi aussi ! Na !
Reply

Marsh Posté le 14-08-2004 à 02:30:12    

Finalement, je perds l'audio en cours de route avec cette solution.
Dois-je rajouter une ligne dans mon script AviSynth ?
Dois-je faire quelque chose dans DGIndex (le prog qui crée le .D2V correspondant à mon fichier MPEG2) ?


---------------
Bon, puisque presque tout le monde a une signature, ben moi aussi ! Na !
Reply

Marsh Posté le 14-08-2004 à 11:47:25    

Prends plutôt le plugin mpeg2dec3
 

Citation :


mpeg2source("c:\toto.d2v" ,ipp=true ,cpu=4)


Pour cela il te faudra créer un projet d2v.
 
 
 
 


---------------
Ne vous mariez qu'une fois dans votre vie tellement c'est galère © randolfinette | Quand l'antre grogne, le diable cogne... | Un problème d'acquisition VHS?
Reply

Marsh Posté le 14-08-2004 à 12:58:39    

Le gars qui a fait dgmpegenc (Neuron2 : une sommité dans le monde de la vidéo) dit qu'il s'est basé sur mpeg2dec3 et qu'il y a corrigé des bugs (enfin c'est ce que j'ai cru comprendre ici : http://neuron2.net/fixd2v/decodefix.html )
 
En tout cas, j'ai finalement réussi à faire ce que je voulais en rédigeant ce script :

Code :
  1. loadplugin("C:\WINUTIL\dgmpgdec1012\DGDecode.dll" )
  2. video = MPEG2Source("video.d2v" )
  3. audio = DirectShowSource("video MPA T01 DELAY 7ms.mpa" )
  4. # mettre comme delay (en secondes) le délai recommandé par DGIndex (en millisecondes)
  5. DelayAudio(audio,0.007)
  6. film = AudioDub(video,audio)
  7. # Et enfin, ce pourquoi j'ai fait tout ça : le désentrelacement et passage de la vidéo en 50 Hz
  8. separatefields(film)
  9. # je fais ensuite un cropping et un resize dans VDub et ça marche (mais ça rame)



---------------
Bon, puisque presque tout le monde a une signature, ben moi aussi ! Na !
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed