Coller 2 vidéo : Problème de bloc/sacade

Modérateur : Modérateurs

Répondre
Avatar du membre
Subbat
Administrateur
Administrateur
Messages : 8836
Enregistré le : jeu. 11 déc., 2008 20:12
Localisation : Quelque part... dans le centre de la France...

Coller 2 vidéo : Problème de bloc/sacade

Message par Subbat »

Hello,

Je souhaites pouvoir faire un script avisynth dans lequel je colle plusieurs rush de mon camescope avec un fondu entre chaque rush...

J'ai semble-t-il bien réussi à faire mon script, puisqu'il est bien lu, que les transitions entre les rush est bien faite... mais le hic, c'est que la vidéo me fait des bloc ou sacade, je ne serais dire quoi exactement...

les rush ont cette caractéristique :

Code : Tout sélectionner

Général
ID                                       : 0 (0x0)
Nom complet                              : Z:\Data_user\sebastien\Videos\TEST_montage\2010-07 - 0001.MTS
Format                                   : BDAV
Format/Info                              : Blu-ray Video
Taille du fichier                        : 146 Mio
Durée                                    : 1mn 45s
Type de débit global                     : Variable
Débit global moyen                       : 11,6 Mb/s
Débit global maximum                     : 18,0 Mb/s

Vidéo
ID                                       : 4113 (0x1011)
ID de menu                               : 1 (0x1)
Format                                   : AVC
Format/Info                              : Advanced Video Codec
Profil du format                         : High@L4.0
Paramètres du format, CABAC              : Oui
Paramètres du format, RefFrames          : 2 images
Paramètres du format, GOP                : M=2, N=13
Identifiant du codec                     : 27
Durée                                    : 1mn 44s
Type de débit                            : Variable
Débit                                    : 10,9 Mb/s
Débit maximum                            : 16,0 Mb/s
Largeur                                  : 1 440 pixels
Hauteur                                  : 1 080 pixels
Format à l'écran                         : 16/9
Images par seconde                       : 25,000 Im/s
Espace de couleurs                       : YUV
Sous-échantillonnage de la chrominance   : 4:2:0
Profondeur des couleurs                  : 8 bits
Type de balayage                         : Entrelacé
Ordre de balayage                        : Ligne du haut d'abord
Bits/(Pixel*Image)                       : 0.280
Taille du flux                           : 136 Mio (93%)

Audio
ID                                       : 4352 (0x1100)
ID de menu                               : 1 (0x1)
Format                                   : AC-3
Format/Info                              : Audio Coding 3
Extension du mode                        : CM (complete main)
Paramètres du format, Endianness         : Big
Identifiant du codec                     : 129
Durée                                    : 1mn 45s
Type de débit                            : Constant
Débit                                    : 256 Kbps
Canaux                                   : 2 canaux
Position des cannaux                     : Front: L R
Echantillonnage                          : 48,0 KHz
Profondeur des couleurs                  : 16 bits
Mode de compression                      : Avec perte
Délai par rapport Vidéo                  : -80ms
Taille du flux                           : 3,21 Mio (2%)

Texte
ID                                       : 4608 (0x1200)
ID de menu                               : 1 (0x1)
Format                                   : PGS
Identifiant du codec                     : 144
Durée                                    : 1mn 44s
Délai par rapport Vidéo                  : -80ms

J'ai lu quelque part que avisynth, quand on colle 2 vidéos n'aime pas qu'elles soient en débit variable... j'ai donc essayé de mettre un convertfps sur chaque rush avant de les coller, mais ça ne change rien...

Ci-après le script que j'ai fait...

Code : Tout sélectionner

# **** m4ng & AVIsynth 2.5x script **** pass 2+ 

LoadPlugin("C:\PROGRA~2\m4ng_v5\system\undot.dll")
LoadPlugin("C:\PROGRA~2\m4ng_v5\system\FluxSmooth.dll")
LoadPlugin("C:\PROGRA~2\m4ng_v5\system\Convolution3D.dll")
LoadPlugin("C:\PROGRA~2\m4ng_v5\system\MaskTools.dll")
LoadPlugin("C:\PROGRA~2\m4ng_v5\system\MVTools.dll")
LoadPlugin("C:\PROGRA~2\m4ng_v5\system\Asharp.dll")
LoadPlugin("C:\PROGRA~2\m4ng_v5\system\MSharpen.dll")
LoadPlugin("C:\PROGRA~2\m4ng_v5\system\VSFilter.dll") #1

Source1="z:\data_user\sebastien\videos\test_montage\2010-07 - 0001.MTS"
Source2="z:\data_user\sebastien\videos\test_montage\2010-07 - 0002.mts"
Source3="z:\data_user\sebastien\videos\test_montage\2010-07 - 0003.mts"

Video1=DirectShowSource( Source1)
Video1=ConvertToYV12(Video1)
# DEINT
Load_Stdcall_Plugin("C:\PROGRA~2\m4ng_v5\system\yadif.dll")
Video1=Yadif(Video1,order=1)
# RESIZE
Video1=BilinearResize(Video1, 1440, 812).convertfps(25)
Video2=DirectShowSource( Source2)
Video2=ConvertToYV12(Video2)
# DEINT
Load_Stdcall_Plugin("C:\PROGRA~2\m4ng_v5\system\yadif.dll")
Video2=Yadif(Video2,order=1)
# RESIZE
Video2=BilinearResize(Video2, 1440, 812).convertfps(25)
Video3=DirectShowSource( Source3)
# DEINT
Load_Stdcall_Plugin("C:\PROGRA~2\m4ng_v5\system\yadif.dll")
Video3=Yadif(Video3,order=1)
# RESIZE
Video3=BilinearResize(Video3, 1440, 812).convertfps(25)
Video=Dissolve(Video1,Video2,Video3,50)
Video=ConvertToRGB(Video)
Return(AssumeFrameBased(Video))
Si quelqu'un (leon ?) a une idée... merci d'avance...

Si besoin, pour test, je veux bien donner les rush, mais en MP, ce sont des films persos...
Avatar du membre
leon1789
Messages : 775
Enregistré le : dim. 26 août, 2007 14:09
Contact :

Message par leon1789 »

convertfps modifie le nombre d'images par seconde. Tu as mis en convertfps(25), mais tes sources sont déjà en 25 fps.

Je ne vois pas de souci avec des vidéos à débit variable (car elles le sont quasiment toutes, pour ainsi dire...).

Pour l'instant, je n'ai pas de réponse, mais des questions...

L'original est en 1440x 1080 et tu encodes en 1440 x 812 car la source est en anamorphose (et entrelacée qui plus est), c'est ça ?

tu utilises directshowsource : est-ce que ffmpegsource peut aussi fonctionner avec tes mts ? (je ne sais pas, je n'ai pas de mts)

est-ce que tout se passe bien à la prévisualisation de ton script avs ? ou bien les problèmes arrivent déjà ?
Avatar du membre
leon1789
Messages : 775
Enregistré le : dim. 26 août, 2007 14:09
Contact :

Message par leon1789 »

Tu encodes à quel débit ?
Avatar du membre
Subbat
Administrateur
Administrateur
Messages : 8836
Enregistré le : jeu. 11 déc., 2008 20:12
Localisation : Quelque part... dans le centre de la France...

Message par Subbat »

leon1789 a écrit :convertfps modifie le nombre d'images par seconde. Tu as mis en convertfps(25), mais tes sources sont déjà en 25 fps.

Je ne vois pas de souci avec des vidéos à débit variable (car elles le sont quasiment toutes, pour ainsi dire...).

Je crois que je me suis mélanger les pinceaux... c'est le framerate variable qui coince quand on colle 2 vidéos... et j'ai mélangé avec débit variable... j'ai donc cru que mes vidéos étaient à framerate variable d'où mon convertfps...

Pour l'instant, je n'ai pas de réponse, mais des questions...

L'original est en 1440x 1080 et tu encodes en 1440 x 812 car la source est en anamorphose (et entrelacée qui plus est), c'est ça ?

Oui c'est ça...

tu utilises directshowsource : est-ce que ffmpegsource peut aussi fonctionner avec tes mts ? (je ne sais pas, je n'ai pas de mts)

je ne sais pas... je peux t'envoyer au moins 2 rush si tu veux... sinon, il faut que je fasse quoi pour tester avec ffmpegsource ?

est-ce que tout se passe bien à la prévisualisation de ton script avs ? ou bien les problèmes arrivent déjà ?

Ca merde déjà à la lecture du script...
Avatar du membre
Subbat
Administrateur
Administrateur
Messages : 8836
Enregistré le : jeu. 11 déc., 2008 20:12
Localisation : Quelque part... dans le centre de la France...

Message par Subbat »

leon1789 a écrit :Tu encodes à quel débit ?
crf mode x264
Avatar du membre
Underground78
Administrateur
Administrateur
Messages : 11272
Enregistré le : mar. 06 févr., 2007 21:54
Localisation : France
Contact :

Message par Underground78 »

Tu pourrais mettre un screenshot du soucis peut-être ?

Sinon https://github.com/FFMS/ffms2/releases/tag/2.20 pour télécharger ffmpegsource et https://github.com/FFMS/ffms2/blob/mast ... visynth.md pour la doc. Mais avec ce que je vois sur le support du TS et du H264 interlacé, c'est pas gagné...
Avatar du membre
leon1789
Messages : 775
Enregistré le : dim. 26 août, 2007 14:09
Contact :

Message par leon1789 »

Est-ce que ton problème arrive uniquement avec tes 3 sources, ou bien cela arrive à chaque fois que tu utilises 2 rush de ton camescope ?
Si c'est uniquement avec ces 3 sources, alors ça craint car ça risque d'être lié à tes fichiers...
Si cela arrive quelles que soient les vidéos de ton camescope, tu peux nous laisser deux petits films anodins, non ?
Avatar du membre
Subbat
Administrateur
Administrateur
Messages : 8836
Enregistré le : jeu. 11 déc., 2008 20:12
Localisation : Quelque part... dans le centre de la France...

Message par Subbat »

Underground78 a écrit :Tu pourrais mettre un screenshot du soucis peut-être ?

Sinon https://github.com/FFMS/ffms2/releases/tag/2.20 pour télécharger ffmpegsource et https://github.com/FFMS/ffms2/blob/mast ... visynth.md pour la doc. Mais avec ce que je vois sur le support du TS et du H264 interlacé, c'est pas gagné...
Merci pour la doc, je regarderais ça... mais en même temps on a déjà tout ça dans m4ng... il suffit que je regarde comment est fait un script de m4ng avec ffmpegsource d'utilisé... :o:
Avatar du membre
Subbat
Administrateur
Administrateur
Messages : 8836
Enregistré le : jeu. 11 déc., 2008 20:12
Localisation : Quelque part... dans le centre de la France...

Message par Subbat »

leon1789 a écrit :Est-ce que ton problème arrive uniquement avec tes 3 sources, ou bien cela arrive à chaque fois que tu utilises 2 rush de ton camescope ?
Si c'est uniquement avec ces 3 sources, alors ça craint car ça risque d'être lié à tes fichiers...
Si cela arrive quelles que soient les vidéos de ton camescope, tu peux nous laisser deux petits films anodins, non ?
Je testerais avec d'autres rush, mais à mon avis ce sera pareil... puisque chaque rush pris individuellement dans un script fonctionne très bien... et c'est surtout à partir du 2ème rush que ça merde dans le script que j'ai posté...

Au pire oui... je filmerais 2 ou 3 conneries de quelques secondes et je les porterais...
Avatar du membre
Subbat
Administrateur
Administrateur
Messages : 8836
Enregistré le : jeu. 11 déc., 2008 20:12
Localisation : Quelque part... dans le centre de la France...

Message par Subbat »

Le problème doit venir du MTS, en remuxant chaque rush dans un mkv, pas de soucis de lecture...

En revanche, il faut que je précise le fps dans le script pour chaque source avec le mkv, sinon la vidéo est lu trop vite...

Donc, le script ci-après fonctionne très bien, et ce sont exactement les même vidéo que j'ai juste muxées chacune dans un mkv...

Code : Tout sélectionner

# **** m4ng & AVIsynth 2.5x script **** pass 2+ 

LoadPlugin("C:\PROGRA~2\m4ng_v5\system\undot.dll")
LoadPlugin("C:\PROGRA~2\m4ng_v5\system\FluxSmooth.dll")
LoadPlugin("C:\PROGRA~2\m4ng_v5\system\Convolution3D.dll")
LoadPlugin("C:\PROGRA~2\m4ng_v5\system\MaskTools.dll")
LoadPlugin("C:\PROGRA~2\m4ng_v5\system\MVTools.dll")
LoadPlugin("C:\PROGRA~2\m4ng_v5\system\Asharp.dll")
LoadPlugin("C:\PROGRA~2\m4ng_v5\system\MSharpen.dll")
LoadPlugin("C:\PROGRA~2\m4ng_v5\system\VSFilter.dll") #1
LoadPlugin("C:\PROGRA~2\m4ng_v5\system\ffmpegsource.dll")

Source1="z:\data_user\sebastien\videos\test_montage\2010-07 - 0001.mkv"
Source2="z:\data_user\sebastien\videos\test_montage\2010-07 - 0002.mkv"
Source3="z:\data_user\sebastien\videos\test_montage\2010-07 - 0003.mkv"

Video1=directshowsource( Source1, fps=25.000000)
Video1=ConvertToYV12(Video1)
# DEINT
Load_Stdcall_Plugin("C:\PROGRA~2\m4ng_v5\system\yadif.dll")
Video1=Yadif(Video1,order=1)
# RESIZE
Video1=BilinearResize(Video1, 1440, 812)
Video2=directshowsource( Source2, fps=25.000000)
Video2=ConvertToYV12(Video2)
# DEINT
Load_Stdcall_Plugin("C:\PROGRA~2\m4ng_v5\system\yadif.dll")
Video2=Yadif(Video2,order=1)
# RESIZE
Video2=BilinearResize(Video2, 1440, 812)
Video3=directshowsource( Source3, fps=25.000000)
# DEINT
Load_Stdcall_Plugin("C:\PROGRA~2\m4ng_v5\system\yadif.dll")
Video3=Yadif(Video3,order=1)
# RESIZE
Video3=BilinearResize(Video3, 1440, 812)
Video=Dissolve(Video1,Video2,Video3,50)
Video=ConvertToRGB(Video)
Return(AssumeFrameBased(Video))
Avatar du membre
leon1789
Messages : 775
Enregistré le : dim. 26 août, 2007 14:09
Contact :

Message par leon1789 »

Ton dernier message indique un souci dans le couple directshowsource+mts . Le souci ne perciste pas avec directshowsource+mkv. Peut-être que ce sera pareil avec ffmpegsource+mts ? A voir...
Avatar du membre
Underground78
Administrateur
Administrateur
Messages : 11272
Enregistré le : mar. 06 févr., 2007 21:54
Localisation : France
Contact :

Message par Underground78 »

Tu as vérifié dans GraphStudio que la même chaîne de décodage est utilisée dans les deux cas ?
Avatar du membre
Subbat
Administrateur
Administrateur
Messages : 8836
Enregistré le : jeu. 11 déc., 2008 20:12
Localisation : Quelque part... dans le centre de la France...

Message par Subbat »

leon1789 a écrit :Ton dernier message indique un souci dans le couple directshowsource+mts . Le souci ne perciste pas avec directshowsource+mkv. Peut-être que ce sera pareil avec ffmpegsource+mts ? A voir...
Oui il faudra que je teste...

Underground78 a écrit :Tu as vérifié dans GraphStudio que la même chaîne de décodage est utilisée dans les deux cas ?
Ah non... je vais regardé ça...

[Edit]Les 2 scripts donne la même chose... et la même vidéo en mts ou mkv donne la même chose (décodage ffdshow), à la seule différence que dans le cas du mts, les sous-titre ne sont pas vu... Un problème de splitter en fait peut-être...
Avatar du membre
Underground78
Administrateur
Administrateur
Messages : 11272
Enregistré le : mar. 06 févr., 2007 21:54
Localisation : France
Contact :

Message par Underground78 »

Tu as quoi comme splitter ? Tu as essayé LAV Filters ?
Avatar du membre
Subbat
Administrateur
Administrateur
Messages : 8836
Enregistré le : jeu. 11 déc., 2008 20:12
Localisation : Quelque part... dans le centre de la France...

Message par Subbat »

C'est haali pour le m2ts... Pas essayer lav sur ce pc non, c'est une idée.
Avatar du membre
Subbat
Administrateur
Administrateur
Messages : 8836
Enregistré le : jeu. 11 déc., 2008 20:12
Localisation : Quelque part... dans le centre de la France...

Message par Subbat »

C'était visiblement bien un problème de splitter... avec LAV, c'est OK... Les sous-titres du mts sont vus dans le graphstudio, et je n'ai plus de saccade/bloc du script...

Merci à vous de vous être penché sur ce soucis... :D
Avatar du membre
Underground78
Administrateur
Administrateur
Messages : 11272
Enregistré le : mar. 06 févr., 2007 21:54
Localisation : France
Contact :

Message par Underground78 »

Cool ! :)
Avatar du membre
leon1789
Messages : 775
Enregistré le : dim. 26 août, 2007 14:09
Contact :

Message par leon1789 »

Bien joué le chat ! Je n'aurais jamais trouvé...
Répondre