
Estoy intentando bajar el volumen en un intervalo de tiempo específico con ffmpeg.exe. Digamos que tengo un video de 5 minutos de duración y quiero bajar el volumen entre 00:01:30 y 00:02:00. Leí que podemos usar diferentes parámetros al mismo tiempo pero no pude entenderlo.
Cualquier ayuda sería muy apreciada.
Respuesta1
Puedes hacerlo con complejo de filtros:
ffmpeg -i in.mp4 -filter_complex "[0:v]null[out2];[0:a]atrim=duration=90[a];\
[0:a]atrim=start=90:duration=30,volume=0.1,asetpts=PTS-STARTPTS[b];[a][b]concat=v=0:a=1[c];\
[0:a]atrim=start=120,asetpts=PTS-STARTPTS[d];[c][d]concat=v=0:a=1[out1]" \
-acodec mp2 -map [out1] -map [out2] out.mp4
Reduce el volumen a 0,1 (1,0 está lleno) en el segmento de 90 segundos a 120 segundos. ¿Cómo funciona? No hace nada con la transmisión de video (filtro nulo) solo para incluirlo en el gráfico de filtro. Luego recorta los primeros 90 segundos de la transmisión de audio, luego recorta 30 segundos (90-120) de la transmisión de audio y reduce el volumen a 0,1. Luego combina las últimas 2 transmisiones de audio con concat. Luego, nuevamente recorta el resto del flujo de audio y lo combina nuevamente.
Espero eso ayude.