2017-02-21 7 views
0

I veut une telle sortie vidéo où l'audio de sortie est créée en utilisant le mécanisme ffmpeg -filter_complex,FFMPEG remplacer audio vidéo avec filter_complex

/usr/local/Cellar/ffmpeg/3.2.2/bin/ffmpeg 
-i /uploads/videos/1487684390-lg9htt0RW2.mov 
-i /uploads/audios/1487664761-SCPbo6Tkac.mp3 
-filter_complex " 
[0:a]atrim=0:8.70824980736,asetpts=PTS-STARTPTS[aud1]; 
[1:a]atrim=0:12.9567301273,asetpts=PTS-STARTPTS[aud2]; 
[0:a]volume=0.3,atrim=start=8.70824980736:21.6649799347,asetpts=PTS-STARTPTS[slow_aud]; 
[aud2][slow_aud] amerge=inputs=2[a_merged]; 
[0:a]atrim=start=21.6649799347:31.6410098076 [remaining_audio]; 
[aud1][a_merged][remaining_audio]concat=n=3:v=0:a=1[aout]" 
-map 0:v -map "[aout]" -c:v copy -acodec mp3 
/uploads/output/1487684390-lg9htt0RW2.mov 

timestamp original audio enregistré Basé sur UTC Vs originale vidéo enregistrée Basé sur horodatage UTC

  13:00-------- Original Event Audio -------- 13:20 
     12:50------------- Event Video Recorded --------------13:30 

Ceci est mon exigence

Ainsi, l'audio de la vidéo de sortie devrait con CONTIENT

  1. 10 premières secondes (12:50 - 13:00) sont audio de vidéo événement enregistré
  2. Suivant 20 secondes (13:00 -13: 20) sont fusionnés audio (Original Audio + Vidéo originale lorsque l'original volume audio de vidéo est 0,3)
  3. restant 10 secondes (13: 21-13: 30) de la vidéo va jouer audio remaing de la vidéo

Ce que je veux par-dessus les commandes

  1. 10 premières secondes (12:50 - 13:00) sont audio de la vidéo enregistrée de l'événement Atteint
  2. Suivant 20 secondes (13:00 -13: 20) sont fusionnés audio (Original Audio + Vidéo originale où est original Les video volume audio est 0,3) Atteint
  3. restant 10 secondes (13: 21-13: 30) de la vidéo va jouer audio restante de la vidéo non Atteint

Répondre

1

Vous avez pas réinitialiser les horodatages de l'audio restant, comme l'exige le filtre de concat. Ainsi, il devrait être

[0:a]atrim=start=21.6649799347:31.6410098076,asetpts=PTS-STARTPTS[remaining_audio]; 

Un chemin plus court d'obtenir le même résultat est

-filter_complex 
"[1:a]adelay=12956.7301273|12956.7301273[mp3]; 
[0:a]volume=0.3:enable='between(t,8.70824980736,21.6649799347)'[vid]; 
[vid][mp3]amix[aout]" 
+0

Merci @Mulvya, asetpts fonctionne pour moi. Le chemin le plus court n'a pas fonctionné – Chintan7027