VLC: aplique un ecualizador como parte de la cadena de trascodificación desde la línea de comando

1

He visto esta pregunta muchas veces, pero no he podido encontrar una respuesta. Un problema parece ser los cambios en las versiones, por lo que las discusiones históricas sobre este tema a menudo parecen haber perdido su relevancia.

Estoy tratando de aplicar un ecualizador a la cadena de filtro desde la línea de comando usando algo como:

vlc --audio-filter equalizer -I dummy myfile.mp4 :sout=#transcode{afilter=equalizer{bands="1.5,-0.9,-1.6,-1.6,-0.5,1.4,2.7,3.4,3.2,2.8",twopass=true},vcodec=none,acodec=fl32,ab=128,channels=2,samplerate=44100}:std{access=file,mux=wav,dst="myfile.wav"}

Me sale algo como:

[006a651c] core stream out error: cannot add user audio filter "equalizer{bands=1.5,-0.9,-1.6,-1.6,-0.5,1.4,2.7,3.4,3.2,2.8,twopass=true}" (skipped)

He intentado muchas variaciones diferentes y parece que es el filtro ecualizador en sí mismo el que no está contento, en lugar de los argumentos.

Alternativamente, sería tan feliz, si no más, simplemente traducir las bandas de filtro VLC a una declaración de ecualizador ffmpeg como:

equalizer=f=60:width_type=o:width=1:g=1.5, equalizer=f=170:width_type=o:width=1:g=-0.9, equalizer=f=310:width_type=o:width=1:g=-1.6, equalizer=f=600:width_type=o:width=1:g=-1.6, equalizer=f=1000:width_type=o:width=1:g=-0.5, equalizer=f=3000:width_type=o:width=1:g=1.4, equalizer=f=6000:width_type=o:width=1:g=2.7, equalizer=f=12000:width_type=o:width=3:g=3.4, equalizer=f=14000:width_type=o:width=3:g=3.2, equalizer=f=16000:width_type=o:width=3:g=2.8

pero todavía tengo que averiguar qué tipo de filtro vlc está implementando o su Q o ancho de banda, por lo que no he podido obtener el resultado equivalente.

¿Alguien sabe cómo hacer cualquiera de estos con una versión que no tiene 2 años?

tlum
fuente

Respuestas:

0

Supongo que no había probado suficientes permutaciones. Esto parece funcionar:

vlc --no-video -I dummy MyFile.mp4" --equalizer-bands="1.5 -0.9 -1.6 -1.6 -0.5 1.4 2.7 3.4 3.2 2.8" --equalizer-2pass :sout=#transcode{afilter=equalizer,acodec=fl32,ab=128,channels=2,samplerate=44100}:std{access=file,mux=wav,dst="MyFile.wav"}

No tuve suerte en pasar parámetros dentro del afiltro, pero --audio-filter equalizerno hice nada en cuanto a insertarlo en la cadena. afilter=equalizeren realidad hará que se active y --equalizer-bands=" ... "parezca configurar los filtros correctamente.

Debo señalar que me estoy refiriendo ffmpeg-20160731-04da20e-win64-staticy no puedo hacer ningún reclamo sobre ninguna otra versión.

tlum
fuente