Como mesclar dois vídeos sem fluxo de áudio no ffmpeg

0

Quero mesclar várias imagens a um vídeo em um horário diferente, mas falhei.

Inicialmente, mesclo o primeiro grupo de imagens para 'video1.mp4', seguindo o código:

$ ffmpeg -loop 1 -r 30 -i img%2d.png -t 00:01:30 -shortest video1.mp4

Então, mesclo o segundo grupo ao 'video2.mp4' da mesma maneira.

Mas quando mesclo 'video1.mp4' e 'video2.mp4' pelo seguinte código:

$ ffmpeg -y -i video1.mp4 -i video2.mp4 -filter_complex \
  "[0:0] [0:1] [1:0] [1:1] concat=n=2:v=1:a=1" output.mp4

Recebi uma mensagem de erro:

Especificador de fluxo ': 1' na descrição do gráfico de filtro [0: 0] [0: 1] [1: 0] [1: 1] concat = n = 2: v = 1: a = 1 não corresponde a nenhum fluxo.

E descobri que essa mensagem de erro só acontece quando o vídeo não possui dados de áudio, mas preciso mesclar todos os vídeos antes de adicionar outro arquivo de áudio ao vídeo final.

Você poderia me ajudar a mesclar vários vídeos sem áudio?

Morshues
fonte

Respostas:

1

Simplesmente, você não tem um fluxo de áudio em seus vídeos de imagem criados. Lá você tem apenas um fluxo de vídeo. Portanto, quando você tenta obter um fluxo de áudio de uma fonte em que um fluxo de áudio não está disponível, você recebe esse erro. No seu primeiro comando, basta criar um vídeo fora do conjunto de imagens e não há áudio envolvido. Portanto, na saída desse comando, haverá apenas um fluxo de vídeo. No seu segundo comando, [0:0]refere-se ao primeiro fluxo da primeira entrada e é o fluxo de vídeo no seu caso. [0:1]refere-se ao segundo fluxo da segunda entrada e onde ele não existe.

Como você não tem um áudio com nenhum dos vídeos que você está concatenando, a correção simples seria a seguinte.

ffmpeg -y -i video1.mp4 -i video2.mp4 -filter_complex 
"[0:0][1:0]concat=n=2:v=1:a=0" output.mp4
Chamath
fonte