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

0

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

Primeiro, eu mescle 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 eu mescle o segundo grupo para 'video2.mp4' da mesma maneira.

Mas quando eu mesclar 'video1.mp4' e 'video2.mp4' seguindo o 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 filtro de filtros [0: 0] [0: 1] [1: 0] [1: 1] concat = n = 2: v = 1: a = 1 não corresponde fluxos.

E eu descobri que essa mensagem de erro só acontece quando o vídeo não tem 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?

    
por Morshues 12.08.2015 / 08:16

1 resposta

1

Simplesmente, você não tem um fluxo de áudio em seus vídeos de imagens criados. Lá você tem apenas um fluxo de vídeo. Então, quando você tenta obter um fluxo de áudio de uma fonte onde um fluxo de áudio não está disponível, você recebe este erro. Em 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. Em 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 ela morre não existe.

Como você não tem um áudio com nenhum dos vídeos que concatenou, 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
    
por 12.08.2015 / 08:24

Tags