Cum să adaugi delay audio cu FFmpeg
In this tutorial, you'll learn about Cum să adaugi delay audio cu FFmpeg. We cover key concepts, practical examples, and best practices.
Problema
Audio-ul din fișierul video nu este sincronizat cu imaginea — sunetul sosește prea devreme sau prea târziu. Filtrul adelay din FFmpeg îți permite să adaugi o întârziere măsurată în milisecunde la unul sau mai multe canale audio.
Soluția Rapidă
Fix 1: Delay pe toate canalele
GREȘIT — ignori decalajul și fișierul rămâne desincronizat:
ffmpeg -i input.mp4 -c copy output.mp4
# (păstrează decalajul original)
CORECT — adaugă delay cu filtrul adelay:
# Delay de 2000ms pe toate canalele
ffmpeg -i input.mp4 -c:v copy -af "adelay=2000" output.mp4
Fix 2: Delay pe canale individuale
# Delay 1500ms pe canalul stânga, 0ms pe dreapta
ffmpeg -i input.mp4 -c:v copy -af "adelay=1500|0" output.mp4
Fix 3: Delay cu parametrul -itsoffset
# Alternativă: delay de 2 secunde cu itsoffset
ffmpeg -i input.mp4 -itsoffset 2 -i input.mp4 -map 0:v -map 1:a -c copy output.mp4
Fix 4: Delay pentru corectarea unui decalaj negativ
# Audio sosește cu 1.5 secunde prea devreme
# Adaugă 1500ms delay pentru a sincroniza
ffmpeg -i input.mp4 -c:v copy -af "adelay=1500" output.mp4
Fix 5: Delay cu compensare pentru drift progresiv
# Pentru decalaj progresiv, combină adelay cu aresample
ffmpeg -i input.mp4 -c:v copy -af "adelay=1000,aresample=48000:async=1" output.mp4
Fix 6: Măsurarea decalajului înainte de corectare
# Identifică decalajul cu ffprobe
ffmpeg -i input.mp4 -af "adelay=0,apad" -f null -
# Monitorizează ieșirea pentru mesaje de desincronizare
Folosește DodaTech Sync Analyzer pentru a măsura exact decalajul audio-video.
Prevenție
- Măsoară decalajul la începutul, mijlocul și sfârșitul fișierului.
- Pentru decalaje constante,
adelayeste soluția corectă. - Pentru drift progresiv, combină cu
aresample:async=1. - Testează pe un segment scurt înainte de procesarea completă.
Greșeli Comune cu Delay-ul Audio
- Delay exprimat în secunde în loc de milisecunde —
adelayașteaptă milisecunde (2000 = 2 secunde). - Delay pe un singur canal când toate canalele sunt decalate — fără separator, delay-ul se aplică doar la primul canal.
- Confundarea delay-ului cu pitch-ul —
adelaynu schimbă înălțimea sunetului, doar temporizarea.
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 adaugă un delay de 2.5 secunde pe canalul stânga și 1 secundă pe canalul dreapta, copiind video-ul neschimbat.
Acest exercițiu întărește conceptele acoperite în acest ghid. Încearcă să-l implementezi înainte de a verifica soluțiile online.
FAQ
Built by the developers of DodaTech
Doda Browser, DodaZIP & Durga Antivirus Pro