Autor Tema: códec x264 y MeGUI  (Leído 377 veces)

0 Usuarios y 1 Visitante están viendo este tema.

futra

  • Miembro junior
  • **
  • Desconectado Desconectado
  • Registrado: 29/08/2011
  • Mensajes: 32
  • Valoración: 2
códec x264 y MeGUI
« Mensaje inicial: 05 de Mayo de 2017, 11:25 »
Hola.

Quería consejo sobre la configuración x264 que sería la adecuada para ripeos a 720p que no sé si la tengo del todo bien.

Para series normales uso CRF 17 pero es un poco rollo estar haciendo pruebas mirando logs para comprobar que los frames I, P, B estén en 14,16,18 y que el último bframe sea menor de 5%. Hay alguna forma estándar por así decirlo de no estar haciendo pruebas y que no se suba el tamaño por las nubes? Y no se si tengo algo en la configuración mal o es normal pero los encodeos con MeGUI en HD me tardan bastante y con handbrake no me sucede lo mismo.

Y luego otra cosa, si se hiciera por bitrate se debe hacer a una o a dos pasadas? (esta opción no me gusta pero a veces no queda otra)

Os adjunto capturas de la configuración que uso.

Uso los siguientes datos para la config:
Código: [Seleccionar]
Level 4.1 MaxDPB 12,288 vbv-maxrate 50,000 vbv-buffersize 62,500
Para sacar los Refs he usado esta fórmula que me da de resultado 9refs:
Código: [Seleccionar]
Número de referencias = (MaxDPB * 1024) / 1.5 / ( mod16_alto * mod16_ancho )
Muchas gracias,

Saludos.



tebasuna51

  • Moderador
  • ******
  • Desconectado Desconectado
  • Registrado: 22/02/2010
  • Mensajes: 3.813
  • Valoración: 172
Re:códec x264 y MeGUI
« Respuesta #1: 05 de Mayo de 2017, 16:05 »
Quería consejo sobre la configuración x264 que sería la adecuada para ripeos a 720p que no sé si la tengo del todo bien.
Tienes una configuración equilibrada y exigente.

Con algunos valores que pueden hacer incompatible el resultado con reproductores sencillos y TV's:
--bframes 7 --ref 9 --vbv-maxrate 50000 --vbv-bufsize 62500

Otros de poca utilidad que ralentizan el encode:
--merange 40 --subme 10 --no-dct-decimate --no-fast-pskip

Y otros que pueden valer para algunas fuentes pero no para otras y que, en general, incrementan el bitrate (*), no hay una fórmula mágica para todas las fuentes:
--deblock -3:-3 --ip-ratio 1.3 --qcomp 0.7 --no-mbtree --aq-mode 2 --aq-strength 0.8

Salirse de los defectos debe hacerse con conocimiento de causa, sabiendo que es beneficioso para una fuente concreta.

Citar
Para series normales uso CRF 17 pero es un poco rollo estar haciendo pruebas mirando logs para comprobar que los frames I, P, B estén en 14,16,18 y que el último bframe sea menor de 5%. Hay alguna forma estándar por así decirlo de no estar haciendo pruebas y que no se suba el tamaño por las nubes?

Como cada fuente es distinta solo vale probar distintas configuraciones.
Unicamente puedes hacer pruebas al 5% esperando que ese 5% sea representativo del total.
Se hace incluyendo en el avs un:

Trim(3000,0).SelectRangeEvery(8000,400) # trim para excluir créditos iniciales poco representativos

Citar
Y no se si tengo algo en la configuración mal o es normal pero los encodeos con MeGUI en HD me tardan bastante y con handbrake no me sucede lo mismo.

Tanto MeGUI como HandBrake acaban usando x264 asi que la duración solo dependerá fundamentalmente de los parámetros que le pases a x264.
MeGUI usa AviSynth como fuente y puede ralentizarse si se usan filtrados de imagen exigentes, pero sin filtrados la velocidad debe ser parecida.

Citar
Y luego otra cosa, si se hiciera por bitrate se debe hacer a una o a dos pasadas? (esta opción no me gusta pero a veces no queda otra)

Recomendable a crf o dos pasadas.
Cuando dices "pero a veces no queda otra" intuyo que el bitrate a crf te sale excesivo.
Si es el caso te recomiendo bajar algunos parámetros (*) antes que el bitrate, incluso filtrar la imagen en AviSynth.

futra

  • Miembro junior
  • **
  • Desconectado Desconectado
  • Registrado: 29/08/2011
  • Mensajes: 32
  • Valoración: 2
Re:códec x264 y MeGUI
« Respuesta #2: 06 de Mayo de 2017, 14:55 »
Citar
Con algunos valores que pueden hacer incompatible el resultado con reproductores sencillos y TV's:
--bframes 7 --ref 9 --vbv-maxrate 50000 --vbv-bufsize 62500

Vale, usaré el Level 4.0 en vez del 4.1 para mayor compatibilidad.
     --bframes 3 --ref 4 --level 4.0 --vbv-bufsize 25000 --vbv-maxrate 20000

Lo de los bframes y refs no lo tengo muy claro pues yo hacia la formula mirando la tabla que te adjunto no se si han cambiado algo de antes ahora.
La formula me daba de resultado refs 9. y los bframes lo he puesto en 3 porque te he leído en otro hilo que es la que sueles usar tu y te da buenos resultados aunque supongo que esto dependerá un poco de la prueba de log que haga.

Citar
Otros de poca utilidad que ralentizan el encode:
--merange 40 --subme 10 --no-dct-decimate --no-fast-pskip

    merange: Lo he bajado a 24 como estoy usando multi hex
    subme: dejé en 7, lo que pone por defecto. (tenia entendido que menos de 9 o 10 no era recomendable bajar)
    No dct decimate y no-fast-pskip: Siguiendo tu recomendación, Activo (desmarco).
   
Citar
Y otros que pueden valer para algunas fuentes pero no para otras y que, en general, incrementan el bitrate (*), no hay una fórmula mágica para todas las fuentes:
--deblock -3:-3 --ip-ratio 1.3 --qcomp 0.7 --no-mbtree --aq-mode 2 --aq-strength 0.8

deblock: Dejarlo en 0:0 o -1:-1 ¿por ejemplo?
ip ratio: He dejado lo que vienen por defecto ipratio 1.4 ibratio 1.3
quantizer compresion: lo dejo en 0.6 que es el que viene de por defecto.
no mbtree: el mbtree no se supone que si se activa lo que pongas en quantizers no sirve?
aq mode: auto-variance AQ no se supone que es mejor que el variance AQ? porque cambiarlo?
aq streght 0.8 lo puse porque tenia entendido que era para videos normales, recomiendas dejarlo en 1.0?
 
¿Como lo ves ahora?

Me lio bastante con todas estas configuraciones así que muchas gracias por tu ayuda.

Saludos.

tebasuna51

  • Moderador
  • ******
  • Desconectado Desconectado
  • Registrado: 22/02/2010
  • Mensajes: 3.813
  • Valoración: 172
Re:códec x264 y MeGUI
« Respuesta #3: 06 de Mayo de 2017, 21:48 »
Ya te dije que tu configuración me parecía equilibrada y aceptable según preferencias y gustos.
Solo quise separar los parámetros según su objetivo:

1) Compatibilidad
Si tu objetivo es compartir encodes es recomendable mantenerse al nivel 4.0 (TV's y reproductores sencillos certificados solo para DivX Plus), como has puesto.

Pero tus parámetros iniciales eran perfectamente válidos y quizá ahorres bitrate con muchas B-frames y ref, que pondrán en apuros a algún reproductor.

Yo codifico para mis reproductores a nivel 4.1 usando:
--bframes 4 --ref 5 --vbv-bufsize 30000 --vbv-maxrate 40000 --level 4.1
Es mi elección, usar demasiadas bframes creo que reduce la calidad global y pedir más ref que B+1 me parece poco útil.
Digamos que mi objetivo no es minimizar el bitrate.

2) Parámetros que influyen en la lentitud del encode.
Tampoco digo que no mejoren algo, simplemente que su influencia es baja y cada uno debe buscar su compromiso de acuerdo a la potencia de su PC y al tiempo que desee emplear en la codificación.

Como mi máquina no es una maravilla solo mejoro los defectos de estos parámetros en:
 --trellis 2 --subme 8
Pero con mejores PC's y paciencia cualquier aumento es una mejora.

3) Parámetros dependientes de la fuente.
En principio los defectos son para vídeos normales y los desarrolladores proporcionan los --tune para cambiar los defectos según la fuente.
Yo suelo usar el --tune film, que exige algo más de bitrate, para pelis oscuras (mejora debanding) o de colores muy planos (da un cierto relieve).

Los parámetros que se cambian son los siguientes:
Código: [Seleccionar]
                default
Param./Tune     none      film         grain         stillimage  animation
--------------  -------  -----         -----         ----------  ---------
deblock         0:0      -1:-1         -2:-2         -3:-3       1:1
psy-rd          1.0:0.0  <unset>:0.15  <unset>:0.25  2.0:0.7     0.4:<unset>
aq-strength     1.0        -           0.5           1.2         0.6
deadzone-inter  21         -           6              -          -
deadzone-intra  12         -           6              -          -
ipratio         1.4        -           1.1            -          -
pbratio         1.3        -           1.1            -          -
qcomp           0.6        -           0.8            -          -
no-dct-decimate no         -           yes            -          -
(bitrate)       normal     +           ++             +++        --

Viendo los parámetros que se cambian nos da una cierta idea de su influencia.

Como ves ipratio y pbratio se reducen (se usan quantizers similares para I, P y B frames) para pelis con grano, y que queramos conservarlo a costa de necesitar alto bitrate.
Si tu objetivo es un bitrate contenido yo no recomendaría cambiar los defectos (y dejaría mbtree activo como se recomienda).

Respecto a AQ mode y strength no se que decirte, la verdad es no he hecho ningún test al respecto.

futra

  • Miembro junior
  • **
  • Desconectado Desconectado
  • Registrado: 29/08/2011
  • Mensajes: 32
  • Valoración: 2
Re:códec x264 y MeGUI
« Respuesta #4: 07 de Mayo de 2017, 00:53 »
Vale, un poco más claro entonces, he dejado la configuración inicial que tenia cambiando un par de cosillas solo.

Citar
program --level 4.0 --crf 17 --deblock -3:-3 --b-adapt 2 --ref 4 --chroma-qp-offset -1 --vbv-bufsize 25000 --vbv-maxrate 20000 --qcomp 0.7 --aq-mode 2 --aq-strength 0.8 --merange 24 --me umh --subme 8 --trellis 2 --output "output" "input"

subme 8
merange 24
mbtree activado
dct decimation activado
fast p-skip activado


Hice un par de pruebas pero el último bframe es muy superior a 5% salvo en la última que los subo un poco más que es como solía hacerlo. ¿Estoy haciendo algo mal?

  --bframes 3 --ref 4 --level 4.0 --vbv-bufsize 25000 --vbv-maxrate 20000



  --bframes 4 --ref 5 --level 4.0 --vbv-bufsize 25000 --vbv-maxrate 20000



  --bframes 7 --ref 8 --level 4.0 --vbv-bufsize 25000 --vbv-maxrate 20000


Saludos  :saludo:

tebasuna51

  • Moderador
  • ******
  • Desconectado Desconectado
  • Registrado: 22/02/2010
  • Mensajes: 3.813
  • Valoración: 172
Re:códec x264 y MeGUI
« Respuesta #5: 07 de Mayo de 2017, 13:41 »
Hice un par de pruebas pero el último bframe es muy superior a 5% salvo en la última que los subo un poco más que es como solía hacerlo. ¿Estoy haciendo algo mal?

Parece que has leido en algún sitio que el último %, es decir el % que usa el límite de bframes, debe ser menor del 5%.

Es un criterio discutible que tiene el objetivo de minimizar el bitrate maximizando el número de bframes, a 3767 de la 3ª prueba cuando en la 1ª eran solo 3511.
Sería interesante saber que bitrates has obtenido con las tres pruebas, es decir cuanto bitrate has ahorrado usando 7 bframes. ¿Puedes ponerlos? (*)

La cuestión es que la calidad media disminuye contra más bframes obtengas.
Si comparas la primera prueba con la última verás que (1645 - 1389) = 256 P-frames a QP 16.41, han pasado a ser B-frames a QP 20.62
Obtendrás menor bitrate pero también menor calidad global.

Esta consideración, sumada a que un reproductor certificado solo para DivX Plus tendrá problemas con 7 bframes, es la que debe guiar nuestra elección.

EDITO: (*) aunque puedo hacer un cálculo aproximado con los datos que pones

Código: [Seleccionar]
          Num.  Size    Tamaño
          ----  -----  --------
I-frames  44    81046   3566024
P-frames  1645  17155  28219975
B-frames  3511   2904  10195944
          ----         --------
Total     5200         41981943  100%

I-frames  44    81756   3597660
P-frames  1504  17959  27010336
B-frames  3652   3002  10963304
          ----         --------
Total     5200         41571300   99.02%

I-frames  44    82543   3631892
P-frames  1389  18899  26250711
B-frames  3767   3076  11587292
          ----         --------
Total     5200         41469895  98.78%

Con  --bframes 4 --ref 5 ahorras casi un 1 % sobre el tamaño del --bframes 3 --ref 4
Con  --bframes 7 --ref 8 ahorras un 1,22 % del tamaño y pierdes algo de calidad, compatibilidad y es más lento el encode ¿merece la pena?

De 3 a 4 se obtiene una mejora sensible de un 1%, pero de 4 a 7 apenas un 0.24 %
« Última modificación: 07 de Mayo de 2017, 14:30 por tebasuna51 »

futra

  • Miembro junior
  • **
  • Desconectado Desconectado
  • Registrado: 29/08/2011
  • Mensajes: 32
  • Valoración: 2
Re:códec x264 y MeGUI
« Respuesta #6: 07 de Mayo de 2017, 18:59 »
Hola.

Pues eso es lo que tenía entendido, mirar el % del último bframe junto los I, P y B, quizás por eso que nunca acertaba como yo quería.

Sí, te adjunto las tres pruebas.

Hice también dos prueba(4y5) con tus datos por comparar, las hice con este video y con otro de los que suelo usar más que tienen más calidad ya que el de las pruebas era un poco flojillo(la fuente original solo tiene 3000kbps de bitrate frente a los 5000-8000kbps que tienen los otros), y si no he entendido mal parece que salen mejores datos de esta forma salvo que con esta fuente que no es muy buena mejor bajar el crf para mejorar o mantener la calidad que se pueda.

Estos son los datos que he usado para estas dos.
Citar
program --level 4.1 --crf 18 --deblock -3:-3 --bframes 4 --b-adapt 2 --ref 5 --chroma-qp-offset -1 --vbv-bufsize 30000 --vbv-maxrate 40000 --qcomp 0.7 --aq-mode 2 --merange 24 --me umh --subme 8 --trellis 2 --output "output" "input"

 :saludo:

tebasuna51

  • Moderador
  • ******
  • Desconectado Desconectado
  • Registrado: 22/02/2010
  • Mensajes: 3.813
  • Valoración: 172
Re:códec x264 y MeGUI
« Respuesta #7: 07 de Mayo de 2017, 21:21 »
Lo dicho, maximizar las B y ref frames sirve para ahorrar muy poco bitrate, pierde calidad, compatibilidad y enlentece el encode (31.40 de fps frente a 44.58)
Código: [Seleccionar]
          B-fr  Ref   fps   Bitrate  Relativo
          ----  ---  -----  -------  --------
Prueba 1   3     4   44.58  1935.64  100%
Prueba 2   4     5   40.76  1916.71  99,02 %
Prueba 3   7     8   31.40  1912.14  98,79 %

La prueba 4 es idéntica a la 2 salvo el crf 18 que obtiene, evidentemente, menor bitrate:

Código: [Seleccionar]
          crf  I_QP   P_QP   B_QP    fps   Bitrate  Relativo
          ---  -----  -----  -----  -----  -------  --------
Prueba 2  17   13.08  16.38  20.67  40.76  1916.71  100 %
Prueba 4  18   13.18  16.41  19.45  39.47  1893.92  98,81 %

Cabría esperar una mayor bajada de bitrate y, curiosamente, se observa que mejora las B_QP.
Yo lo interpreto como que el codificador es rehacio a bajar de ciertos límites de bitrate cuando va sobrado por la compresibilidad de la fuente.
Normalmente el codificador intenta una P_QP igual al crf pedido y cuando obtienen valores menores es porque la imagen es muy compresible.
En general, en codificaciones 720, nunca pueden obtenerse bitrates mucho menores de 2000 Kb/s.

No comento la prueba 5 porque con distintas fuentes no hay comparación posible.

Como resumen final querría añadir que la calidad visual de las pruebas 1 a 4, bitrates de 1894 a 1936 Kb/s, serían muy parecidas y muy difícil diferenciarlas.
Otra cosa puede suceder con fuentes menos compresibles, a crf 17 es fácil necesitar bitrates de 4000 Kb/s

futra

  • Miembro junior
  • **
  • Desconectado Desconectado
  • Registrado: 29/08/2011
  • Mensajes: 32
  • Valoración: 2
Re:códec x264 y MeGUI
« Respuesta #8: 08 de Mayo de 2017, 11:00 »
Hola.

Muchas gracias, me ha quedado ahora todo un poco más claro.

Hice unos pequeños cambios, he bajado el preset de medium a slow. el crf de 18 a 16 y los vbv-bufsize y vbv-maxrate puse los que trae el perfil 4.1 por defecto. bframes dejé 3(aunque queria dejar 4, no me di cuenta  :pensando:) y ref 5 además le he puesto el filtro de GradFun2DBmod (es muy oscura) que esto relentiza bastante el encode pero el resultado para las zonas oscuras ha quedado genial, igual tu me recomiendas usar el --tune film que me comentabas en vez de usar este filtro pero como usar el --tune film igual me cambia algunos ajustes del codec preferí meterle el filtro directamente en el script total para un capítulo concreto me da igual que tarde en encodear.

De nuevo muchas gracias por tu ayuda.

Saludos  :saludo:


tebasuna51

  • Moderador
  • ******
  • Desconectado Desconectado
  • Registrado: 22/02/2010
  • Mensajes: 3.813
  • Valoración: 172
Re:códec x264 y MeGUI
« Respuesta #9: 08 de Mayo de 2017, 13:32 »
El --tune film solo cambia el --deblock y el --psy-rd (y el --deblock aun lo limitas más a -3:-3, de dudosa utilidad para mi, pero aceptable para crf 16 o 17).

El cambio del --psy-rd suele ser beneficioso para pelis normales pero su efecto es muy suave, no comparable a filtrados AviSynth como el que comentas.
En general los parámetros de x264 tienen un efecto muy pequeño comparado con lo que pueden hacer los filtros de AviSynth aplicados correctamente.

Pero ese es otro tema.

futra

  • Miembro junior
  • **
  • Desconectado Desconectado
  • Registrado: 29/08/2011
  • Mensajes: 32
  • Valoración: 2
Re:códec x264 y MeGUI
« Respuesta #10: 08 de Mayo de 2017, 14:39 »
Si, me gusta aplicar ciertos filtros por avisynth más que en los parámetros a pesar de que aumenta el tiempo de codificación pero vale la pena. Tendré en cuenta lo que comentas del deblock.

Muchas gracias. :saludo: