Page 1 sur 1

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

Posté : ven. 15 août, 2014 19:13
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...

Posté : ven. 15 août, 2014 19:25
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à ?

Posté : ven. 15 août, 2014 19:38
par leon1789
Tu encodes à quel débit ?

Posté : ven. 15 août, 2014 19:38
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...

Posté : ven. 15 août, 2014 19:38
par Subbat
leon1789 a écrit :Tu encodes à quel débit ?
crf mode x264

Posté : ven. 15 août, 2014 20:12
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é...

Posté : ven. 15 août, 2014 20:30
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 ?

Posté : ven. 15 août, 2014 20:48
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:

Posté : ven. 15 août, 2014 20:51
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...

Posté : ven. 15 août, 2014 21:01
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))

Posté : ven. 15 août, 2014 21:08
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...

Posté : ven. 15 août, 2014 21:11
par Underground78
Tu as vérifié dans GraphStudio que la même chaîne de décodage est utilisée dans les deux cas ?

Posté : ven. 15 août, 2014 21:18
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...

Posté : ven. 15 août, 2014 23:33
par Underground78
Tu as quoi comme splitter ? Tu as essayé LAV Filters ?

Posté : sam. 16 août, 2014 0:22
par Subbat
C'est haali pour le m2ts... Pas essayer lav sur ce pc non, c'est une idée.

Posté : sam. 16 août, 2014 11:33
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

Posté : sam. 16 août, 2014 11:35
par Underground78
Cool ! :)

Posté : sam. 16 août, 2014 12:11
par leon1789
Bien joué le chat ! Je n'aurais jamais trouvé...