Você pode fazer isso usando o filtro de origem do filme
ffmpeg -i long.mp3 -filter_complex "amovie=short.mp3:loop=999[s];[0][s]amix=duration=shortest" c.mp3
Pesquisei muito, mas não consigo encontrar a solução exata. E também sou novo no Ubuntu e não conheço detalhes técnicos de arquivos de música. Na verdade eu quero sobrepor 2 arquivos mp3. Suponha que eu tenha dois Arquivos de entrada
A.mp3 ==> duration 03:00
B.mp3 ==> Duration 07:00
Agora eu quero o C.mp3 (arquivo de saída) que é a combinação de A.mp3 e B.mp3. Mas aqui o que eu quero "arquivo AMP3 deve jogar até o final em C.mp3. Significa que se a música do arquivo AMP3 parar após 03:00 minutos, então ele deve começar imediatamente até às 07:00 minutos (duração de B.mp3 ) "
Eu tentei seguir o comando, mas não é exatamente o que eu quero exatamente
ffmpeg -y -i A.mp3 -i B.mp3 -filter_complex "[0:0][1:0] amix=inputs=2:duration=longest" -c:a libmp3lame C.mp3
acima o comando irá sobrepor dois arquivos. mas o A.mp3 não será repetido assim que terminar.
Obrigado antecipadamente.
A maneira mais transparente de conseguir isso é fazer o loop manualmente: o loop automático funciona apenas em versões muito novas do ffmpeg, que podem não estar disponíveis em muitas distribuições.
Primeiro, crie um arquivo de concat de A.ffconcat
, que repita A 3 vezes:
file 'A.mp3'
file 'A.mp3'
file 'A.mp3'
Agora adapte sua linha de comando:
ffmpeg -y -f concat -i A.ffconcat -i B.mp3 -filter_complex "[0:0][1:0] amix=inputs=2:duration=shortest" -c:a libmp3lame C.mp3
Tags ffmpeg