VLC: Aplique um equalizador como parte da cadeia de trascoding a partir da linha de comando

1

Eu já vi essa pergunta muitas vezes, mas não consegui encontrar uma resposta. Um problema parece ser as alterações nas versões, de modo que as discussões históricas sobre esse tópico muitas vezes parecem ter perdido sua relevância.

Estou tentando aplicar um equalizador à cadeia de filtros a partir da linha 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"}

Eu recebo 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)

Eu tentei muitas variações diferentes e parece que é o filtro de equalização que não está satisfeito, em vez dos argumentos.

Alternadamente, eu ficaria tão feliz, se não mais, simplesmente traduzir as bandas de filtro VLC para uma declaração de equalização 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

mas ainda tenho que descobrir que tipo de filtro vlc está implementando ou seu Q ou largura de banda, por isso não consegui obter o resultado equivalente.

Alguém sabe como fazer isso com uma versão que não tem dois anos?

    
por tlum 20.08.2016 / 22:22

1 resposta

0

Eu acho que não tentei permutações suficientes. Isso 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"}

Eu não tive sorte em passar parâmetros dentro do filtro, mas --audio-filter equalizer não fez nada na medida em que realmente inseri-lo na cadeia. afilter=equalizer fará com que ele se torne ativo e --equalizer-bands=" ... " parece definir os filtros corretamente.

Devo salientar que estou me referindo a ffmpeg-20160731-04da20e-win64-static e não posso reivindicar nenhuma outra versão.

    
por 21.08.2016 / 03:52