Substitua partes do vídeo por outro com ffmpeg

2

Eu tenho algumas horas de vídeo MP4 (h264 + AAC) e preciso substituir pequenas partes dele por outro vídeo (ou somente áudio). O motivo é que o arquivo é uma gravação de uma sessão ao vivo e eu preciso bloquear / ocultar partes dele antes de publicar.

Eu gostaria de usar o ffmpeg. Eu encontrei muita informação sobre o filtro complexo, concat, etc ... mas eu gostaria de saber se existe alguma maneira mais simples antes de me debruçar sobre tudo isso. Ou pelo menos uma dica de qual funcionalidade do filter_complex eu deveria usar.

Até agora, faço isso manualmente no Premiere Elements, onde pego o vídeo principal e coloco outro clipe na segunda faixa. E eu gostaria de automatizar todo o processo ...

    
por Radek Hladík 28.06.2016 / 11:49

1 resposta

3

Supondo que você deseja desativar o vídeo e silenciar o áudio quando necessário, seu modelo de comando básico seria

ffmpeg -i video.mp4 -f lavfi -i "color=black:s=1280x720:r=25" -filter_complex \
"[0:v][1]overlay=enable='between(t,25,35)'[a]; \
 [a][1]overlay=enable='between(t,80,90)'[b]; \
 [b][1]overlay=enable='between(t,94,115)'[c]; \
 ...
 [n][1]overlay=enable='between(t,4805,4821)'[video]; \
 [0:a]volume=0:enable='between(t,25,35)', \
      volume=0:enable='between(t,80,90)', \
      volume=0:enable='between(t,94,115)', \
      ...
      volume=0:enable='between(t,4805,4821)'[audio]" \
-map "[video]" -map "[audio]"  output.mp4

O tamanho e a taxa da cor devem ser os mesmos do seu vídeo.

Se você quiser substituir a tela preta por uma imagem, remova a expressão -f lavfi e a cor e adicione -loop 1 antes de -i image.jpg .

    
por 28.06.2016 / 14:11