-
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
. -
(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.