ffmpeg para redimensionar e concatenar vários vídeos

6

Eu preciso executar 3 operações em um vídeo de origem (em seqüência)

1 redimensione o vídeo de origem de 320X 240 para 640X480 (200%)
2 adicionar outro arquivo de vídeo antes
3 adiciona um terceiro vídeo após

Além disso, eu preciso combinar um arquivo de áudio com o resultado final (3 arquivos de vídeo concatenados.

Encontrei uma solução parcial aqui, sugerindo uma maneira de concatenar dois arquivos de vídeo link

Mas não tenho certeza da sintaxe adequada para concatenar um terceiro arquivo e também mux um arquivo de áudio com o resultado final. Alguém pode ajudar com algumas configurações sugeridas para tentar?

    
por Bachalo 23.11.2012 / 23:12

1 resposta

3

  1. O filtro scale pode fazer isso:

    Se você quiser redimensionar seu vídeo de entrada para um tamanho específico, como 640x480, independentemente de seu tamanho e proporção, então: ffmpeg -i INPUT -filter_complex [0:v]scale=640:480[Scaled] -map [Scaled] OUTPUT .

    mas, não preservando o Aspect Ratio, pode resultar em vídeos feios. por isso, se quiser redimensionar seu vídeo de entrada e preservar a proporção, especifique uma das dimensões e coloque -2 para outra: ffmpeg -i INPUT -filter_complex [0:v]scale=-2:480[Scaled] -map [Scaled] OUTPUT .

  2. (e 3.) A concatenação de múltiplos fluxos pode ser feita por concat filter:

    Abaixo, o comando mesclará três smas de vídeo (os fluxos de áudio serão eliminados se existirem): ffmpeg -i INPUT1 -i INPUT2 -i INPUT3 -filter_complex [0:v][1:v][2:v]concat=n=3:v=1:a=0[Merged] -map [Merged] OUTPUT .

O comando inteiro que faz para você será algo como abaixo:

ffmpeg -i VideoBefore.mp4 -i MainVideo.mp4 -i VideoAfter.mp4 -i Audio.mp3 -filter_complex [1:v]scale=-2:480,setsar=sar=1[Scaled];[0:v][Scaled][2:v]concat=n=3:v=1:a=0[Merged] -map [Merged] -map 3:a OUTPUT.mp4

Nota importante : A documentação do filtro concat diz: Todos os fluxos correspondentes devem ter os mesmos parâmetros em todos os segmentos; o sistema de filtragem selecionará automaticamente um formato de pixel comum para fluxos de vídeo e um formato de amostra comum, taxa de amostragem e layout de canal para fluxos de áudio, mas outras configurações, como resolução, devem ser convertidas explicitamente pelo usuário. O atributo SAR (Proporção da amostra) é de 1: 1 com frequência. mas o filtro scale irá alterá-lo. e precisamos alterá-lo novamente para ser igual a outros fluxos. o filtro setsar faz isso.

    
por 09.10.2016 / 20:49

Tags