Ho un video che ha il volume stranamente basso... Anche impostando il volume del player mpv al 100% e il volume di sistema (slack-14.2 con pulseaudio e kde di default) al massimo, il volume del video in questione è appena accettabile. Probabilmente chi ha creato quel video ha in qualche modo ottenuto un volume troppo basso.
Mi chiedevo se ci fosse il modo per alzarlo utilizzando ad esempio "ffmepg" che per questi scopi trovo molto pratico, per quel poco che mi è servito.
Qualche dettaglio in più sul video/audio con cui ho a che fare:
- Anzitutto i flussi audio video e sottotitoli sono contenuti in un contenitore "mkv" diciamo "audiovideosub.mkv".
- Ecco cosa riporta ffmpeg dandogli in pasto il nostro audiovideosub.mkv:
Codice: Seleziona tutto
Stream #0:0: Video: h264 (High), yuv420p, 1916x820, SAR 1:1 DAR 479:205, 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (default)
Stream #0:1(ita): Audio: ac3, 48000 Hz, 5.1(side), fltp, 640 kb/s (default)
Stream #0:2(eng): Audio: aac (LC), 48000 Hz, stereo, fltp
Stream #0:3(ita): Subtitle: subrip
Stream #0:4(eng): Subtitle: subrip
Lo scopo sarebbe quello di ottenere lo stesso file audiovideosub, ma con il flusso audio "0:1" cioè la traccia in italiano a volume amplificato.
Vi spiego come ho fatto io andando abbastanza a sentimento:
1. ho estratto la traccia audio
Codice: Seleziona tutto
ffmpeg -i orig.mkv -vn -map 0:1 -acodec copy audio-ita.ac3
Ok, probabilmente l'opzione -vn (lascia perdere la traccia video) non serviva, in quanto ho specificato quale flusso considerare con l'opzione -map. Ho un po' scopiazzato, però alla fine penso che l'estrazione della traccia audio desiderata sia riuscita.
2. ho amplificato la traccia audio
Codice: Seleziona tutto
ffmpeg -i audio-ita.ac3 -vol 1280 audio-ita-gain.ac3
Anche qui ho scopiazzato da una guida trovata al volo, non so se sia il metodo più corretto, comunque la traccia audio che ne esce è effettivamente amplificata e il volume mi pare molto meglio di prima, infatti ho dovuto subito abbassarlo un po' mentre lo testavo con mpv.
3. ora l'idea sarebbe quella di mettere la traccia amplificata al posto del corrispondente flusso originale, lasciando il resto inalterato.
Ho provato così, ma non funziona come mi aspettavo (lo immaginavo dopotutto):
Codice: Seleziona tutto
ffmpeg -i audiovideosub.mkv -i audio-ita-gain.ac3 -vcodec copy new.mkv
Il che ha prodotto il seguente video:
Codice: Seleziona tutto
Stream #0:0: Video: h264 (High), yuv420p, 1916x820, SAR 1:1 DAR 479:205, 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (default)
Stream #0:1(ita): Audio: vorbis, 48000 Hz, 5.1, fltp (default)
Stream #0:2(ita): Subtitle: ass
In pratica la traccia in inglese e i sub in inglese sono svaniti.
Tutto sommato però alla fine il risultato ottenuto è valido, nel senso che ho il video di prima con la traccia audio italiana amplificata.
Tuttavia mi piacerebbe domandarvi come si poteva fare meglio, cioè in modo più diretto e possibilmente veloce. Veloce nel senso che sia durante l'estrazione dell'audio dal file originale che l'unione della traccia amplificata al video originale ha impiegato un po' di tempo. Visto che non ho ricodificato nulla (o almeno così penserei da ignorante) pensavo che fossero operazioni molto più rapide. Invece il comando per amplificare la traccia audio ci sta che impieghi un certo tempo...
Avete qualche dritta per fare la cosa fatta bene e in modo più spedito?
Grazie in anticipo!
