Apenas vídeo
Você pode usar um filtro para toda a filtragem.
ffmpeg -loop 1 -i image0.png -i video1.m4v -i video2.m4v -filter_complex \
"[0:v]scale=1280:-2[bg]; \
[1:v]scale=140:-1,setpts=PTS-STARTPTS[fg1]; \
[2:v]scale=100:-1,setpts=PTS-STARTPTS[fg2]; \
[bg][fg1]overlay=70:70:shortest=1[ol]; \
[ol][fg2]overlay=300:70,format=yuv420p[v]" \
-map "[v]" -movflags +faststart output.mp4
-
O
movie
filtro de fonte de multimídia não é necessário. -
setpts
irá redefinir o registro de data e hora para que funcione melhor comoverlay
. -
Observe o
shortest=1
em um dos filtros de sobreposição. Caso contrário, a entrada da imagem fará um loop para sempre. Alternativamente, você pode usar o filtrotrim
na entrada da imagem. -
A ação "fim do arquivo" de
overlay
pode ser alterada comeof_action
. -
O
format
filter define a subamostragem de chroma compatível para o QuickTime e outros jogadores de baixa qualidade. / p> -
Quando a codificação terminar,
-movflags +faststart
realocará alguns dados para o início do arquivo. Isso é útil, por exemplo, se você estiver transmitindo para o MP4 e seus espectadores assistirem por download progressivo, como em um navegador.
com áudio
Assumindo que ambos os vídeos tenham áudio estéreo e você deseje combinar o áudio de cada vídeo em uma única saída estéreo.
Exemplo 1
Esteexemplocolocaráosdoiscanaisesquerdosdeentradanocanalesquerdodesaída,eambososcanaisdiretosdeentradanocanaldireitodesaída.
ffmpeg-loop1-iimage0.png-ivideo1.m4v-ivideo2.m4v-filter_complex\"[0:v]scale=1280:-2[bg]; \
[1:v]scale=140:-1,setpts=PTS-STARTPTS[fg1]; \
[2:v]scale=100:-1,setpts=PTS-STARTPTS[fg2]; \
[bg][fg1]overlay=70:70:shortest=1[ol]; \
[ol][fg2]overlay=300:70,format=yuv420p[v]; \
[1:a][2:a]amerge[a]" \
-map "[v]" -map "[a]" -ac 2 -movflags +faststart output.mp4
Exemplo 2
Esteexemplocolocaráosdoiscanaisdaprimeiraentradanocanalesquerdodasaída,eambososcanaisdasegundaentradanocanaldireitodasaída.
ffmpeg-loop1-iimage0.png-ivideo1.m4v-ivideo2.m4v-filter_complex\"[0:v]scale=1280:-2[bg]; \
[1:v]scale=140:-1,setpts=PTS-STARTPTS[fg1]; \
[2:v]scale=100:-1,setpts=PTS-STARTPTS[fg2]; \
[bg][fg1]overlay=70:70:shortest=1[ol]; \
[ol][fg2]overlay=300:70,format=yuv420p[v]; \
[1:a][2:a]amerge,pan=stereo|c0<c0+c2|c1<c1+c3[a]" \
-map "[v]" -map "[a]" -movflags +faststart output.mp4
Exemplo 3
Se você quiser apenas o áudio de uma entrada, basta adicionar uma opção -map
ao exemplo de vídeo acima (sem necessidade de amerge
e pan
):
-map 1:a -c:a copy