Ho uno script per elaborare / codificare i video. Alcuni dei video hanno livelli audio diversi (come 2 video sono stati uniti e uno aveva audio ad alto volume e altro audio silenzioso). Voglio normalizzare l'audio in modo da ridurre l'audio ad alto volume e aumentare l'audio silenzioso per renderli entrambi quasi uguali. Sebbene io stia usando HandbrakeCLI per la codifica, qualsiasi altra soluzione come ffmpeg che può essere usata dal terminale Linux funzionerà.
Ho fatto un po 'di R & D ma ho una conoscenza molto limitata dell'audio, quindi non ho potuto farlo funzionare. Alcune delle soluzioni che ho esaminato sono audio-normalizzare e Replaygain (solo un tag, ma ho bisogno di cambiare direttamente il video quando la codifica non è solo aggiungere un tag).
Ho un input di esempio e un output di esempio. L'output di esempio viene creato selezionando manualmente l'audio ad alto volume e diminuendolo e selezionando manualmente l'audio silenzioso e aumentandolo.
Come puoi vedere nell'audio originale, l'intero audio è silenzioso tranne l'ultima piccola parte che è troppo rumorosa e nell'output entrambi sono quasi uguali. Ma il problema è che voglio farlo automaticamente.
Modificare:
Risultato di ffmpeg -i in.mp4 -af "dynaudnorm" -vcodec copy out.mp4
:
dynaudnorm
massimizza il volume per abbinare il volume più alto, ma ci sono alcuni problemi come, nel volume di inizio è ancora tranquillo, c'è anche un modo per dare dynaudnorm
un valore di picco per il volume per ottenere l'output desiderato invece di far corrispondere il volume con il punto di picco?
"dynaudnorm=p=0.5"
o "dynaudnorm=r=0.6"