Author Topic: [résolu] Durée d'encodage x264 doublée avec 2.7.3  (Read 391 times)

PauloCDG

  • Newbie
  • *
  • Posts: 6
[résolu] Durée d'encodage x264 doublée avec 2.7.3
« on: April 24, 2019, 05:02:51 PM »
Bonsoir,

J'ai installé la version nightly 190422 (Avidemux_2.7.3 VC++ 64bits 190422.exe) et je constate que l'encodage d'un film à partir d'un enregistrement TNT (.TS) prend environ deux fois plus de temps qu'avec la 2.7.0. J'ai pourtant bien vérifié que toutes mes préférences d'Avidemux et tous les paramètres de mon profile x264 sont bien identiques. J'encode notamment avec level 4.1 en CRF avec 23 comm QF, et j'ai méticuleusement vérifié les paramètres de tous les autres onglets x264.



Amicalement,
Paulo
« Last Edit: April 28, 2019, 08:40:17 AM by PauloCDG »

eumagga0x2a

  • Moderator
  • Hero Member
  • *****
  • Posts: 2803
Re: Durée d'encodage x264 doublée avec 2.7.3
« Reply #1 on: April 24, 2019, 05:47:31 PM »
Est-ce que l'encodeur x264 se comporte dans la version nightly 190422 https://avidemux.org/nightly/win64/ exactement comme celui de la version VC++?

PauloCDG

  • Newbie
  • *
  • Posts: 6
Re: Durée d'encodage x264 doublée avec 2.7.3
« Reply #2 on: April 24, 2019, 06:28:04 PM »
Non pas du tout, avec la version win64 2.7.3 je retrouve la même vitesse d'encodage qu'avec la 2.7.0  :)
Je pourrais tester à nouveau la version VC++, mais je suis à peu près certain de ce que j'avais constaté, un fps d'encodage entre 12 et 15 alors qu'avec la 2.7.0 et la 2.7.3 win64 ça tourne autour de 30 fps.

Merci de l'aide eumagga0x2a, si vous voulez je peux essayer de désinstaller et de tester à nouveau avec la 2.7.3 VC++ mais ça sera demain ;)

Amicalement,
Paulo

eumagga0x2a

  • Moderator
  • Hero Member
  • *****
  • Posts: 2803
Re: Durée d'encodage x264 doublée avec 2.7.3
« Reply #3 on: April 24, 2019, 06:44:49 PM »
Quote
avec la version win64 2.7.3 je retrouve la même vitesse d'encodage qu'avec la 2.7.0

Bon à savoir, merci.

Quote
si vous voulez je peux essayer de désinstaller et de tester à nouveau avec la 2.7.3 VC++

Les versions VC++ et MinGW (win64) comme 2.7.0 (une version très ancienne...) ou win64 nightly peuvent coexister.

Cdlt

eumagga0x2a

  • Moderator
  • Hero Member
  • *****
  • Posts: 2803
Re: Durée d'encodage x264 doublée avec 2.7.3
« Reply #4 on: April 24, 2019, 10:23:27 PM »
J'ai comparé la version nightly 190422 VC++ avec la même version MinGW en utilisant la configuration x264 par défaut suivante:

Code: [Select]
adm = Avidemux()
adm.videoCodec("x264", "useAdvancedConfiguration=True", "general.params=AQ=20", "general.threads=99", "general.preset=", "general.tuning=", "general.profile=", "general.fast_decode=False", "general.zero_latency=False", "general.fast_first_pass=True"
, "general.blueray_compatibility=False", "general.fake_interlaced=False", "level=-1", "vui.sar_height=1", "vui.sar_width=1", "MaxRefFrames=3", "MinIdr=25", "MaxIdr=250", "i_scenecut_threshold=40", "intra_refresh=False"
, "MaxBFrame=3", "i_bframe_adaptive=1", "i_bframe_bias=0", "i_bframe_pyramid=2", "b_deblocking_filter=True", "i_deblocking_filter_alphac0=0", "i_deblocking_filter_beta=0", "cabac=True", "interlaced=False"
, "constrained_intra=False", "tff=True", "fake_interlaced=False", "analyze.b_8x8=True", "analyze.b_i4x4=True", "analyze.b_i8x8=True", "analyze.b_p8x8=True", "analyze.b_p16x16=False", "analyze.b_b16x16=False"
, "analyze.weighted_pred=2", "analyze.weighted_bipred=True", "analyze.direct_mv_pred=1", "analyze.chroma_offset=0", "analyze.me_method=1", "analyze.me_range=16", "analyze.mv_range=-1", "analyze.mv_range_thread=-1"
, "analyze.subpel_refine=7", "analyze.chroma_me=True", "analyze.mixed_references=True", "analyze.trellis=1", "analyze.psy_rd=1.000000", "analyze.psy_trellis=0.000000", "analyze.fast_pskip=True", "analyze.dct_decimate=True"
, "analyze.noise_reduction=0", "analyze.psy=True", "analyze.intra_luma=11", "analyze.inter_luma=21", "ratecontrol.rc_method=0", "ratecontrol.qp_constant=0", "ratecontrol.qp_min=10", "ratecontrol.qp_max=51"
, "ratecontrol.qp_step=4", "ratecontrol.bitrate=0", "ratecontrol.rate_tolerance=1.000000", "ratecontrol.vbv_max_bitrate=0", "ratecontrol.vbv_buffer_size=0", "ratecontrol.vbv_buffer_init=1", "ratecontrol.ip_factor=1.400000"
, "ratecontrol.pb_factor=1.300000", "ratecontrol.aq_mode=1", "ratecontrol.aq_strength=1.000000", "ratecontrol.mb_tree=True", "ratecontrol.lookahead=40")

et l'encodage a duré exactement le même temps avec la version MinGW (libx264 v152) réalisant une compression légèrement meuilleure que la version VC++ (libx264 v146).

Voulez-vous enregistrer votre configuration de l'encodeur en tant que script de projet, SVP?

PauloCDG

  • Newbie
  • *
  • Posts: 6
Re: Durée d'encodage x264 doublée avec 2.7.3
« Reply #5 on: April 25, 2019, 07:35:23 AM »
En effet les deux versions cohabitent bien, j'ai donc refait des tests qui confirment ceux d'hier, avec la 2.7.3 VC++ la fenêtre d'encodage montre un fps autour de 13 contre 30 avec la version WinVG. J'ai entièrement resaisi tous mes paramètres d'encodage avec chaque version, puis enregistré les deux scripts, après comparaison ils sont rigoureusement identiques, en voici le contenu:

Code: [Select]
#PY  <- Needed to identify #
#--automatically built--

adm = Avidemux()
adm.loadVideo("D:/_AKIRA/data0001.ts")
adm.clearSegments()
adm.addSegment(0, 0, 6839404066)
adm.markerA = 541403811
adm.markerB = 5998524066
adm.setPostProc(3, 3, 0)
adm.videoCodec("x264", "useAdvancedConfiguration=True", "general.params=AQ=23", "general.threads=0", "general.preset=medium", "general.tuning=psnr", "general.profile=high", "general.fast_decode=False", "general.zero_latency=False"
, "general.fast_first_pass=True", "general.blueray_compatibility=False", "general.fake_interlaced=False", "level=41", "vui.sar_height=1", "vui.sar_width=1", "MaxRefFrames=4", "MinIdr=25", "MaxIdr=250"
, "i_scenecut_threshold=40", "intra_refresh=False", "MaxBFrame=8", "i_bframe_adaptive=2", "i_bframe_bias=0", "i_bframe_pyramid=2", "b_deblocking_filter=True", "i_deblocking_filter_alphac0=0", "i_deblocking_filter_beta=0"
, "cabac=True", "interlaced=False", "constrained_intra=False", "tff=True", "fake_interlaced=False", "analyze.b_8x8=True", "analyze.b_i4x4=True", "analyze.b_i8x8=True", "analyze.b_p8x8=False", "analyze.b_p16x16=True"
, "analyze.b_b16x16=True", "analyze.weighted_pred=1", "analyze.weighted_bipred=True", "analyze.direct_mv_pred=3", "analyze.chroma_offset=0", "analyze.me_method=2", "analyze.me_range=24", "analyze.mv_range=-1"
, "analyze.mv_range_thread=-1", "analyze.subpel_refine=7", "analyze.chroma_me=True", "analyze.mixed_references=True", "analyze.trellis=2", "analyze.psy_rd=1.000000", "analyze.psy_trellis=0.000000", "analyze.fast_pskip=True"
, "analyze.dct_decimate=True", "analyze.noise_reduction=0", "analyze.psy=True", "analyze.intra_luma=11", "analyze.inter_luma=21", "ratecontrol.rc_method=0", "ratecontrol.qp_constant=0", "ratecontrol.qp_min=0"
, "ratecontrol.qp_max=69", "ratecontrol.qp_step=4", "ratecontrol.bitrate=0", "ratecontrol.rate_tolerance=1.000000", "ratecontrol.vbv_max_bitrate=0", "ratecontrol.vbv_buffer_size=0", "ratecontrol.vbv_buffer_init=0"
, "ratecontrol.ip_factor=1.400000", "ratecontrol.pb_factor=1.300000", "ratecontrol.aq_mode=1", "ratecontrol.aq_strength=1.000000", "ratecontrol.mb_tree=True", "ratecontrol.lookahead=40")
adm.addVideoFilter("yadif", "mode=0", "order=1")
adm.addVideoFilter("swscale", "width=1280", "height=720", "algo=1", "sourceAR=0", "targetAR=0", "lockAR=False", "roundup=False")
adm.audioClearTracks()
adm.setSourceTrackLanguage(0,"fra")
adm.setSourceTrackLanguage(1,"qad")
adm.setSourceTrackLanguage(2,"qaa")
adm.audioAddTrack(0)
adm.audioCodec(0, "Aften");
adm.audioSetDrc(0, 0)
adm.audioSetShift(0, 0, 0)
adm.setContainer("MP4", "muxerType=0", "faststart=True", "forceAspectRatio=False", "aspectRatio=1", "rotation=0")
« Last Edit: April 25, 2019, 03:09:05 PM by PauloCDG »

eumagga0x2a

  • Moderator
  • Hero Member
  • *****
  • Posts: 2803
Re: Durée d'encodage x264 doublée avec 2.7.3
« Reply #6 on: April 25, 2019, 03:25:08 PM »
Merci beaucoup, mais encore une fois, il n'y avait aucune différence en ce qui concerne la durée de l'encodage entre les versions VC++ et MinGW avec les paramètres x264 nouveaux. Cette fois, la version libx264 plus ancienne dans VC++ a produit un fichier légèrement plus petit, c'est tout.

Je pense que ce sont les filtres vidéo qui sont responsables de la différence. Voulez-vous aider à identifier le coupable? Yadif est-il celui? Ou swsResize? Tous les deux?

PauloCDG

  • Newbie
  • *
  • Posts: 6
Re: Durée d'encodage x264 doublée avec 2.7.3
« Reply #7 on: April 25, 2019, 04:09:07 PM »
Bien vu eumagga0x2a ! Le coupable est Yadif, quand je l'enlève je retrouve la vitesse de la version MinGW, et même un peu plus rapide puisqu'il n'y a plus de désentrelacement à effectuer.
« Last Edit: April 25, 2019, 04:13:24 PM by PauloCDG »

eumagga0x2a

  • Moderator
  • Hero Member
  • *****
  • Posts: 2803
Re: Durée d'encodage x264 doublée avec 2.7.3
« Reply #8 on: April 26, 2019, 07:01:08 AM »
Merci, en effet, le code assembleur dans Yadif, très important pour la vitesse d'operation, est désactivé avec VC++. Une solution est en préparation.

PauloCDG

  • Newbie
  • *
  • Posts: 6
Re: Durée d'encodage x264 doublée avec 2.7.3
« Reply #9 on: April 26, 2019, 07:05:26 AM »
Très bien, merci eumagga0x2a et à toute l'équipe qui fait vivre ce projet.

mean

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 10968
Re: Durée d'encodage x264 doublée avec 2.7.3
« Reply #10 on: April 27, 2019, 04:12:36 PM »
La derniere nightly contient une nouvelle version de yadif
Est elle rapide comme avant ?

PauloCDG

  • Newbie
  • *
  • Posts: 6
Re: Durée d'encodage x264 doublée avec 2.7.3
« Reply #11 on: April 28, 2019, 08:28:23 AM »
Je viens de comparer l'encodage d'un segment de 8' de flux MPEG4 dans un fichier .TS avec les deux versions et mes paramètres habituels dont le désentrelacement Yadif.

• Avec Avidemux_2.7.3 r190422_win64, temps d'encodage ± 6'30, taille du fichier encodé 63 007 ko.
• Avec Avidemux_2.7.3 VC++ 64bits 190427 : Temps d'encodage ± 6'15, taille du fichier encodé 62 682 ko.

J'ai donc retrouvé la vitesse d'encodage de ma vieille version 2.7.0, à peu de chose près car il est dommage que la fenêtre d'encodage ne reste pas ouverte à la fin, il faut rester devant pour réussir à lire le temps total écoulé.

Je reste donc sur la 190427 VC++ et je vais rester attentif aux évolutions.
Bravo et merci.