Determinando picos de nível de áudio com ffmpeg

0

Existe algum plugin que me permite determinar as amostras de volume ao longo do comprimento de um arquivo de áudio?

Por exemplo, uma amostra de cada segundo para ganhar o dB vs timestamp?

    
por jimig 28.02.2017 / 15:49

1 resposta

3

O filtro ebur128 fornece informações em termos da métrica EBU R128 de recomendação de sonoridade.

O filtro astats pode fornecer essas informações em termos de dBs:

ffmpeg -i in.mp3 -af astats=metadata=1:reset=1,ametadata=print:key=lavfi.astats.Overall.RMS_level:file=log.txt -f null -

Isso produz uma saída assim:

frame:221  pts:226304  pts_time:4.71467
lavfi.astats.Overall.RMS_level=-67.437152
frame:222  pts:227328  pts_time:4.736  
lavfi.astats.Overall.RMS_level=-67.159036
frame:223  pts:228352  pts_time:4.75733
lavfi.astats.Overall.RMS_level=-63.862748
frame:224  pts:229376  pts_time:4.77867
lavfi.astats.Overall.RMS_level=-63.666815

Se isso for muito granular em termos de resolução temporal, aumente o valor de reinicialização, que é a contagem de quadros para a frequência de amostragem do filtro. Para uma fatia de 1 segundo, um inteiro próximo a audio sampling rate/1000 deve ser usado.

    
por 01.03.2017 / 13:07

Tags