Skip to content

Cum să îmbini mai multe streamuri audio într-unul singur cu FFmpeg

DodaTech Updated 2025-01-15 2 min read

In this tutorial, you'll learn about Cum să îmbini mai multe streamuri audio într. We cover key concepts, practical examples, and best practices.

Problema

Ai mai multe streamuri audio (de exemplu, coloană sonoră, voiceover, efecte sonore) și vrei să le combini într-un singur stream. FFmpeg oferă filtrele amerge și amix pentru această operație.

Soluția Rapidă

Fix 1: Îmbinare cu amix (cea mai comună)

GREȘIT — selectezi doar primul stream audio:

ffmpeg -i video.mp4 -i voiceover.mp3 -c copy output.mp4
# (ignoră voiceover-ul)

CORECT — folosește amix pentru a combina streamurile:

ffmpeg -i video.mp4 -i voiceover.mp3 -filter_complex \
  "[0:a][1:a]amix=inputs=2:duration=first" -c:v copy output.mp4

Fix 2: amix cu ponderi diferite

# Video audio 70%, voiceover 30%
ffmpeg -i video.mp4 -i voiceover.mp3 -filter_complex \
  "[0:a][1:a]amix=inputs=2:duration=first:weights=0.7 0.3" -c:v copy output.mp4

Fix 3: Îmbinare cu amerge (streamuri separate în canale)

# Creează un stream stereo din două streamuri mono
ffmpeg -i left.wav -i right.wav -filter_complex "[0:a][1:a]amerge=inputs=2" output.wav

Fix 4: Amestecare cu normalizare

ffmpeg -i music.mp3 -i voice.mp3 -i sfx.mp3 -filter_complex \
  "[0:a][1:a][2:a]amix=inputs=3:duration=longest:dropout_transition=2,volume=2.0[dynamic];[dynamic]loudnorm" output.mp3

Fix 5: Combinare a 3 streamuri cu dropout transition

# Dropout transition previne căderile bruște de volum
ffmpeg -i video.mp4 -i voice.mp3 -i sfx.mp3 -filter_complex \
  "[0:a][1:a][2:a]amix=inputs=3:duration=longest:dropout_transition=5" -c:v copy output.mp4

Fix 6: Verificarea streamurilor audio disponibile

ffprobe -v error -select_streams a -show_entries stream=index,channels -of default=noprint_wrappers=1 video.mp4
# stream index 0, channels=2

Folosește DodaTech Audio Mixer pentru a testa diferite combinații și ponderi.

Prevenție

  • Folosește amix pentru amestecarea semnalelor (sumare).
  • Folosește amerge pentru combinarea în canale separate.
  • Specifică duration=first sau duration=longest după necesitate.
  • Ajustează ponderile cu parametrul weights.

Greșeli Comune cu Îmbinarea Audio

  1. Folosirea amerge în loc de amixamerge creează canale multiple, nu combină semnale.
  2. Nespecificarea duration — implicit, amix folosește cea mai scurtă durată.
  3. Ignorarea ponderilor — fără weights, streamurile se amestecă la volum egal.

Aceste greșeli apar frecvent în cod FFmpeg real. Contribuitorii DodaTech au identificat aceste patternuri prin analiza proiectelor open-source și a sistemelor de producție.

Exercițiu Practic

Scrie o comandă FFmpeg care combină trei fișiere audio (muzică, voce, efecte) într-un singur stream cu ponderi 0.5, 0.3, 0.2 și durata celui mai lung.

Acest exercițiu întărește conceptele acoperite în acest ghid. Încearcă să-l implementezi înainte de a verifica soluțiile online.

FAQ

### Care este diferența dintre `amix` și `amerge`?

amix combină mai multe streamuri într-unul singur prin sumarea semnalelor. amerge creează un stream cu mai multe canale, fiecare canal provenind dintr-un stream diferit.

Cum controlez volumul relativ al fiecărui stream?

Folosește parametrul weights în amix. De exemplu, weights=0.5 0.3 0.2 înseamnă că primul stream are 50% volum, al doilea 30%, al treilea 20%.

Ce face dropout_transition?

Parametrul dropout_transition controlează cât de rapid scade volumul unui stream care se termină. O valoare mai mare (ex: 5) creează o tranziție mai lină.

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro