Autor Tema: Duda sobre audio cargado en AviSynth  (Leído 355 veces)

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

Naoto

  • Miembro senior
  • ***
  • Desconectado Desconectado
  • Registrado: 23/10/2015
  • Mensajes: 117
  • Valoración: 0
Duda sobre audio cargado en AviSynth
« Mensaje inicial: 27 de Noviembre de 2016, 03:31 »
Vi en un manual donde muestran como poder ajustar el delay de audio al video en AviSynth haciendo uso del filtro AudioGraph. Con el gráfico de onda y buscando una escena con un ruido seco, intento ajustar el audio al video jugando con los numeros del delay.

Citar
A = NicAC3Source("D:\DVD\Episodio 01\VTS_01_1 T80 2_0ch 448Kbps DELAY 0ms.ac3")
V = MPEG2Source("G:\DVD\Episodio 01\VTS_01_1.d2v").Telecide(guide=1)
AudioDub(V, A)
DelayAudio(-0.285)
ConvertToRGB()
AudioGraph(5)
A=last.Trim(0,2591).crop(4,0,-4,0).Spline36Resize(640,480)
B=last.Trim(2592,17127).crop(0,0,0,0).Spline36Resize(640,480)
C=last.Trim(17128,32411).crop(0,0,0,0).Spline36Resize(640,480)
D=last.Trim(32412,34715).crop(0,0,0,0).Spline36Resize(640,480)
E=last.Trim(34716,35447).crop(4,0,-4,0).Spline36Resize(640,480)
return A++B++C++E++D

Las pruebas con el script las hice en VirtualDub y me quedó bien todo. Ahora, si se percatan, en el script tengo alterado el orden de partes del video, pero esto también afecta al audio cargado y esto me agrada porque prácticamente me ahorra lo que tengo que hacer para editar el audio de acuerdo al orden del nuevo video. Pero ahora viene el problema.

¿Es posible procesar el audio cargado en ese script con esos cambios, u obligadamente tengo que seguir editando el audio manualmente? Porque intenté con VirtualDubMOD (ya que en VirtualDub no sé como hacer eso) exportando a WAV el audio que fue cargado, creyendo que tendría los cambios aplicados pero en realidad era el mismo audio original pero descomprimido a WAV. Gracias al Delay que escribí en el script lo usé de referencia para saber cuantos ms debo de cortar al inicio de audio, pero aun me quedaba lo del cambio de orden de partes, por lo que recurrí al Split-Aud de mkvnerge para partir el audio y luego unirlo a conveniencia sin tener que reeditar y recomprimir el audio. De pronto pensé en cargar el script a MeGUI, pero dado que aplicaciones como Eac3-to corta el audio por frames, no obtendría ese delay preciso, y tampoco estaría seguro si el audio aparecerá con las nuevas partes cambiadas.



tebasuna51

  • Moderador
  • ******
  • Desconectado Desconectado
  • Registrado: 22/02/2010
  • Mensajes: 3.813
  • Valoración: 172
Re:Duda sobre audio cargado en AviSynth
« Respuesta #1: 27 de Noviembre de 2016, 16:46 »
Lo de la pérdida de precisión por cortar el audio por frames en el delay es, para mi, cuestionable.

Postulas un delay de 285 ms, ¿cómo sabes que 288 ms (9 frames exactas de AC3) no es válido, si la duarción de una frame de vídeo es de 41,7 ms?
Por muy seco que sea el golpe la apreciación de asincronía está en un rango de, al menos, 21 ms.

Dejando aparte esa cuestión, si queremos recodificar el audio es posible cargar en la sección de audio de MeGUI (o en BeHappy) un avs simplificado (por no malgastar recursos):

Código: [Seleccionar]
A = NicAC3Source("D:\DVD\Episodio 01\VTS_01_1 T80 2_0ch 448Kbps DELAY 0ms.ac3")
V = MPEG2Source("G:\DVD\Episodio 01\VTS_01_1.d2v").Telecide(guide=1)
AudioDub(V, A)
DelayAudio(-0.285)
Trim(0,32411) ++ Trim(34716,35447) ++ Trim(32412,34715)

Y recodificarlo al formato que desees.

Naoto

  • Miembro senior
  • ***
  • Desconectado Desconectado
  • Registrado: 23/10/2015
  • Mensajes: 117
  • Valoración: 0
Re:Duda sobre audio cargado en AviSynth
« Respuesta #2: 27 de Noviembre de 2016, 23:03 »
Lo de la pérdida de precisión por cortar el audio por frames en el delay es, para mi, cuestionable.

Postulas un delay de 285 ms, ¿cómo sabes que 288 ms (9 frames exactas de AC3) no es válido, si la duarción de una frame de vídeo es de 41,7 ms?
Por muy seco que sea el golpe la apreciación de asincronía está en un rango de, al menos, 21 ms.

No he llegado a los 288 ms porque empecé con unos 245 ms hasta llegar a los 285 ms. Me agradó lo que vi y escuché, por eso pensé que ese era el tiempo que debía ser eliminado del inicio para que el audio se ajuste perfectamente al video. Como creí haber entendido un poco de lo que habías dicho en posts anteriores, por eso para quitar esos 285 ms (me doy cuenta que olvidé mencionar este detalle), primero pasé el audio AC3 a WAV (lo hice con eac3to) y edité éste ultimo en el Adobe Audition. Antes de editar el WAV, noté que el tiempo total de duración en ambos archivos era el mismo; 24:37:824.

Pero debido a que necesitaba que el audio correspondiente a las partes Trim E y Trim D cambien de lugar para que coincida con el video, y como tampoco estuve seguro de lo que iba a pasar si recodificaba el audio usando MeGUI (porque el Script si lo cargué), pero no hice nada al final porque no estuve seguro de los resultados después de esa pequeña prueba que hice en VirtualDubMOD, dejé el AC3 original a un lado y me enfoqué en los audios modificados que hice después.

Empecé por editar el AC3 con Split-Aud para tener el audio partido y posteriormente unir las partes en el orden deseado. En esta ocasión, el archivo nuevo tiene la misma duración que el original, al contrario de casos anteriores en las que al nuevo archivo le falta 32 ms respecto a la duración original y esos 32 ms perdidos siempre son del final. Tras pasar a WAV el nuevo AC3, He comparado los tiempos de ambos archivos WAV e incluso hice reproducciones simultaneas de los audios cargarlos en Sony Vegas y coinciden perfectamente. Luego de todo ese proceso, recién ahí quité esos 285 ms al segundo WAV para luego pasarlo a otro formato, hice el multiplexado y todo quedó bien.

Todo ese proceso lleva su tiempito, por lo que pensé en si podía automatizarlo, pero el problema iba respecto al corte que haría MeGUI y eac3to, a diferencia de lo que podría lograr editando el WAV en Audition. A menos que en lugar de usar el AC3 y NicAC3Source, haga uso del WAV y WAVSource en el script.
« Última modificación: 27 de Noviembre de 2016, 23:36 por Naoto »

tebasuna51

  • Moderador
  • ******
  • Desconectado Desconectado
  • Registrado: 22/02/2010
  • Mensajes: 3.813
  • Valoración: 172
Re:Duda sobre audio cargado en AviSynth
« Respuesta #3: 28 de Noviembre de 2016, 00:28 »
Todo ese proceso lleva su tiempito, por lo que pensé en si podía automatizarlo, pero el problema iba respecto al corte que haría MeGUI y eac3to, a diferencia de lo que podría lograr editando el WAV en Audition. A menos que en lugar de usar el AC3 y NicAC3Source, haga uso del WAV y WAVSource en el script.

El editar un wav lleva más tiempo, pero da más seguridad de que estás haciendo los cortes en el lugar preciso.
El inconveniente es la pérdida de calidad por la recodificación necesaria.

La codificación del avs tiene la misma pérdida de calidad y la misma precisión que la edición del wav, pero lo haces a ciegas, confiando en que las fuentes estén perfectamente sincronizadas (o que las sincronices con tu método inicial).

Los cortes sin recompresión con eac3to o mkvmerge (Split-Audio o Trim-audio) no pierden calidad pero los cortes son más imprecisos.

Eso es lo que hay y "Entre el clavel y la rosa, su majestad escoja"  :-D

Naoto

  • Miembro senior
  • ***
  • Desconectado Desconectado
  • Registrado: 23/10/2015
  • Mensajes: 117
  • Valoración: 0
Re:Duda sobre audio cargado en AviSynth
« Respuesta #4: 28 de Noviembre de 2016, 05:13 »
Ok, lo entiendo ahora.

Ya probé con MeGUI con el script sugerido, comparé en Vegas el audio de MeGUI con el otro audio que tiene el corte preciso hecho en Adobe Audition (ambos archivos fueron recodificados a AAC) y en efecto el de MeGUI le lleva unos cuantos ms de retraso respecto al otro pero ni se nota para nada eso al escucharlo con el video. Por otro lado, el cambio de partes siguiendo el orden en el que fueron puesto los Trims, resultó, y eso fue muy positivo.

Ambos métodos sirven sin duda, pero dado el corte preciso que se desea en este caso, habrá que seguir con el plan inicial. Muchas gracias por la ayuda.

Una cosa más. En MeGUI veo que hay opciones para codificar con compresión pero la única sin comprimir que veo a disposición es FLAC. ¿Se puede añadir opción para WAV? Si no, no importa, eac3to solito hace un buen trabajo, porque al usarlo con MeGUI hay más limitaciones.


tebasuna51

  • Moderador
  • ******
  • Desconectado Desconectado
  • Registrado: 22/02/2010
  • Mensajes: 3.813
  • Valoración: 172
Re:Duda sobre audio cargado en AviSynth
« Respuesta #5: 28 de Noviembre de 2016, 11:59 »
Una cosa más. En MeGUI veo que hay opciones para codificar con compresión pero la única sin comprimir que veo a disposición es FLAC. ¿Se puede añadir opción para WAV? Si no, no importa, eac3to solito hace un buen trabajo, porque al usarlo con MeGUI hay más limitaciones.

Efectivamente en MeGUI no se da la opción de exportar a wav, ya se ha pedido a Zathor que incluya la opción. En cualquier caso la codificación a FLAC puede considerarse equivalente.

Pero, en lo tocante a audio, no hay nada que MeGUI pueda hacer que no lo haga BeHappy.
De hecho BeHappy es mucho más completo. En MeGUI hay solo una parte de BeHappy implementada (y hecha por el mismo autor de BeHappy, Dimzon).

Puedes cargar el .avs en BeHappy y sacar el audio en cualquier formato, incluidos WAV o W64 (recomendado para más de 4 GB)
« Última modificación: 28 de Noviembre de 2016, 12:23 por tebasuna51 »