2017-10-03 3 views
0
commande

ffmpeg pour ajouter de l'audio plus courte à la vidéo avec boucleFfmpeg commande pour ajouter audio plus courte à la vidéo avec boucle

J'utilise cette commande pour ajouter de l'audio à la vidéo, l'audio est de 18 secondes et la vidéo est à 3 minutes et 29 secondes, cette commande ajoute audio, mais seulement pour les 18 premières secondes, puis il arrête

"-y","-stream_loop","-1","-i", audio,"-i",j, "-filter_complex", 
         "[0:a]aformat=sample_fmts=fltp:sample_rates=44100:channel_layouts=stereo,volume=0.5[a1];" + 
         "[1:a]aformat=sample_fmts=fltp:sample_rates=44100:channel_layouts=stereo,volume=0.8[a2];" + 
         " [a1][a2]amerge,pan=stereo:c0<c0+c2:c1<c1+c3[out]", 
         "-map","1:v","-map","[out]","-c:v","copy","-c:a","aac","-shortest","-preset", "ultrafast", out 

comment pouvons-nous ajouter l'audio dans une boucle et l'ajouter à la vidéo

Modifier

Pour l'instant question que j'avais fait les modifications suivantes

"-y","-i",video,"-filter_complex","amovie="+audio+":loop=999,asetpts=N/SR/TB,aformat=sample_fmts=fltp:sample_rates=44100:channel_layouts=stereo,volume=0.5[a1];" +[0:a]aformat=sample_fmts=fltp:sample_rates=44100:channel_layouts=stereo,volume=0.8[a2];" +"[a1][a2]amerge,pan=stereo:c0<c0+c2:c1<c1+c3[out]", 
"-t", timetoedit, 
"-map","0:v","-map","[out]","-c:v","copy","-c:a","aac","-shortest","-preset", "ultrafast", out 

cela fonctionne bien si nous voulons ajouter de l'audio la vidéo entière

maintenant, quand nous essayons d'ajouter de l'audio qui commence à un moment précis et pour une durée spécifique, il ne ici sont deux choses ici, 1) créer un nouveau clip avec audio et vidéo pour une durée spécifique cette commande doesnot travail

"-y","-i",video,,"ss",starttime,"-t", timetoedit,"-filter_complex","amovie="+audio+":loop=999,asetpts=N/SR/TB,aformat=sample_fmts=fltp:sample_rates=44100:channel_layouts=stereo,volume=0.5[a1];" +[0:a]aformat=sample_fmts=fltp:sample_rates=44100:channel_layouts=stereo,volume=0.8[a2];" +"[a1][a2]amerge,pan=stereo:c0<c0+c2:c1<c1+c3[out]", 
"-ss", starttime,"-t", timetoedit, 
"-map","0:v","-map","[out]","-c:v","copy","-c:a","aac","-shortest","-preset", "ultrafast", out 

ou si nous voulons simplement ajouter audio à un moment précis

comme

"-y","-i",video,"-filter_complex","amovie="+audio+":loop=999,asetpts=N/SR/TB,aformat=sample_fmts=fltp:sample_rates=44100:channel_layouts=stereo,volume=0.5[a1];" +[0:a]aformat=sample_fmts=fltp:sample_rates=44100:channel_layouts=stereo,volume=0.8[a2];" +"[a1][a2]amerge,pan=stereo:c0<c0+c2:c1<c1+c3[out]", 
    "-ss", starttime,"-t", timetoedit, 
    "-map","0:v","-map","[out]","-c:v","copy","-c:a","aac","-shortest","-preset", "ultrafast", out 

comment cela peut se faire

ce qui est utile https://superuser.com/questions/708125/add-audio-at-specific-time-in-video-using-ffmpeg

mais comment peut-on utiliser ceci pour une heure de début et une durée spécifiques

Répondre

1

Utilisez

"-y","-i",j, "-filter_complex", 
         "amovie=audio:loop=999,asetpts=N/SR/TB,aformat=sample_fmts=fltp:sample_rates=44100:channel_layouts=stereo,volume=0.5[a1];" + 
         "[0:a]aformat=sample_fmts=fltp:sample_rates=44100:channel_layouts=stereo,volume=0.8[a2];" + 
         " [a1][a2]amerge,pan=stereo:c0<c0+c2:c1<c1+c3[out]", 
         "-map","0:v","-map","[out]","-c:v","copy","-c:a","aac","-shortest","-preset", "ultrafast", out 

-stream_loop est buggé. Utilisez plutôt le filtre de film, qui a une option de boucle.

+0

cela a fonctionné, mais la vidéo est 3min 29 sec long, il a ajouté audio seulement jusqu'à 2 min 30 sec après qu'il était silencieux – 1234567

+0

il n'ajoute pas audio aux dernières 45 secondes, ne sais pas quel est le problème – 1234567

+0

j'ai utilisé -t 100 commandes similaires pour la boucle lors de la création de vidéos de fichiers image, comment pouvons-nous utiliser la commande similaire pour obtenir la durée exacte pour audio et vidéo – 1234567