Il semble que ce soit un problème courant, mais les réponses que j'ai trouvées ne semblent pas s'appliquer à ma situation.
Je fusionne 6 vidéos (l'une d'entre elles est un court fond qui tourne en boucle) en une seule vidéo de sortie, et l'audio et la vidéo sont légèrement décalés (peut-être d'un quart de seconde). Voici ma ligne de commande :
ffmpeg -y
-ss 0.2 -i "One.MOV"
-ss 3.2 -i "Two.MOV"
-i "Three.mp4"
-ss 1.9 -i "Four.mp4"
-ss 1.9 -i "Five.MOV"
-stream_loop 180 -i "Background.mp4"
-filter_complex "
nullsrc=size=1920x1080 [back];
[5:v] scale=1920x1080 [fred];
[back][fred] overlay=shortest=1:x=0:y=0 [base];
[0:v] crop=1312:1080:290:0,scale=576x474 [clip0];
[0:a]volume=1.7[aud0];
[1:v] crop=1080:1056:0:864,scale=497x486 [clip1];
[1:a]volume=4.8,aresample=async=1:first_pts=0[aud1];
[2:v] scale=576x324 [clip2];
[2:a]volume=2.0,aresample=async=1:first_pts=0[aud2];
[3:v] crop=673:720:322:0,scale=454x486 [clip3];
[3:a]volume=6.9,aresample=async=1:first_pts=0[aud3];
[4:v] crop=720:921:0:359,scale=380x486 [clip4];
[4:a]volume=4.9,aresample=async=1:first_pts=0[aud4];
[base][clip0] overlay=shortest=1:x=32:y=83 [tmp0];
[tmp0][clip1] overlay=shortest=1:x=711:y=27 [tmp1];
[tmp1][clip2] overlay=shortest=1:x=1312:y=158 [tmp2];
[tmp2][clip3] overlay=shortest=1:x=93:y=567 [tmp3];
[tmp3][clip4] overlay=shortest=1:x=770:y=567 [tmp4];
[aud0][aud1][aud2][aud3][aud4]amix=inputs=5[a]
" -map "[tmp4]" -map "[a]" -c:v libx264 "Output.mp4"
Je suppose que cela a à voir avec les paramètres aresample et first_pts, mais j'ai lu la documentation et je n'arrive pas à trouver ce que je dois faire différemment.
Comment faire pour que mon audio et ma vidéo se synchronisent ?
EDIT
Note : "Three.mp4" est l'accompagnement au piano ; les autres pistes sont des chanteurs individuels, ajoutant leur voix au piano.