ffmpeg comando gera nunca pára

1

Eu estou cobrindo 2 séries de imagens em um vídeo, mas o comando nunca para a execução até que eu force o processo de parada, meu comando é como abaixo

    ffmpeg -y -i vid.mp4 -loop 1 -i img_%d.png -loop 1 -i img1_%d.png -strict -2 -filter_complex "[0:v][1:v]overlay=0:0 [tmp];[tmp][2:v] overlay=50:50:shortest=1:enable='between(t,1,5)'"-codec:a copy out.mp4

Eu não entendo onde está o erro no comando que apenas corre para sempre, suponha que eu dê 3 minutos de vídeo como entrada, em seguida, comande o outpot show length após 3 minutos como 4 mintues e maior e nunca pare a execução

    
por user3269550 28.02.2016 / 15:44

1 resposta

3

Você precisa adicionar shortest=1 à sua primeira sobreposição porque [1:v] tem uma duração infinita devido ao uso de -loop 1 :

ffmpeg -y -i vid.mp4 -loop 1 -i img_%d.png -loop 1 -i img1_%d.png -filter_complex \
"[0:v][1:v]overlay=shortest=1[tmp]; \
 [tmp][2:v]overlay=50:50:shortest=1:enable='between(t,1,5)',format=yuv420p" \
-codec:a copy out.mp4
  • Eu removi 0:0 da sua primeira sobreposição porque esses são os valores padrão para x e y placement.

  • Eu removi -strict -2 porque não vejo uso de codificadores experimentais aqui.

  • Eu adicionei format=yuv420p no final do seu filtro de filtro para garantir que a saída H.264 usa a subamostragem de croma YUV 4: 2: 0 para que ele seja reproduzido no QuickTime, WMP e outros players danificados.

por 28.02.2016 / 20:45