Nestes dias de COVID, nosso diretor de coral está gravando um vídeo que é o acompanhamento, e então cada membro do coral (em casa) está ouvindo o acompanhamento em fones de ouvido, cantando junto e gravando sua voz e rosto adorável como um vídeo. Agora quero pegar todos esses vídeos díspares e combiná-los em um vídeo com todos os membros em pequenos painéis, estilo Brady Bunch. E, claro, cada membro do coral tem um hardware diferente, então os níveis de áudio são todos diferentes e precisam ser normalizados. E, claro, uma pessoa levou o vídeo de lado (retrato em vez de paisagem), então o vídeo deve ser cortado antes de adicioná-lo.
Além disso, preciso definir o vídeo do diretor como o fluxo "mestre". Então, digamos que a diretora tenha 3 segundos de bobagens no início do vídeo que não precisam estar lá. Eu quero começar o vídeo final imediatamente após esse absurdo. Então, se o membro do coro nº 1 iniciou seu vídeo 0,4 segundos depois do diretor, desejo descartar os primeiros 2,6 segundos de seu vídeo. Se o membro do coro nº 2 desconsiderou completamente as instruções e iniciou seu vídeo 4,3 segundos depois do diretor, preciso que seu painel fique em branco por 1,3 segundos no vídeo final.
E, finalmente, se alguns dos vídeos precisam ser cortados para que não tenham a forma correta, obtenho essa linda cor verde preenchendo os espaços em branco. Existe uma maneira de definir essa cor de fundo ou até mesmo ter algum tipo de imagem de fundo em que partes dela apareçam apenas onde os fluxos de vídeo não estão?
Eu tinha feito uma pergunta anterior e agora estou usando esta linha de comando:
ffmpeg -y -i "Director.MOV"
-itsoffset 5 -i "Member1.MOV"
-itsoffset 10 -i "Member2.mp4"
-filter_complex "
nullsrc=size=1920x1080 [base];
[0:v] scale=960x540 [clip0];
[0:a]volume=1[aud0];
[1:v] crop=1080:1000:0:920,scale=583x540 [clip1];
[1:a]volume=2,aresample=async=1:first_pts=0[aud1];
[2:v] scale=960x540 [clip2];
[2:a]volume=1.1,aresample=async=1:first_pts=0[aud2];
[base][clip0] overlay=shortest=1:x=0:y=0 [tmp0];
[tmp0][clip1] overlay=shortest=1:x=1148:y=0:enable='gt(t\,5)' [tmp1];
[tmp1][clip2] overlay=shortest=1:x=0:y=540:enable='gt(t\,10) [tmp2];
[aud0][aud1][aud2]amix=inputs=3[a]
" -map "[tmp2]" -map "[a]" -c:v libx264 output.mkv"
mas isso resulta no rosto da primeira pessoa aparecendo na tela por alguns segundos sozinha, e então os outros membros se juntando em momentos aleatórios e, finalmente, o diretor. Eu quero um bom "começo limpo", por favor.
Digamos que o deslocamento adicionado ao vídeo do Diretor seja de X segundos. E digamos que o absurdo na frente de seu vídeo é Y segundos. Em seguida, você adicionaria
-ss X+Y
(com o valor calculado substituído) após todas as entradas.Substitua
nullsrc
porcolor
. Para quadros de formato YUV, nullsrc se traduz em uma tela verde escura.color
o padrão é a cor preta.