Você está usando um filtro, e a filtragem requer recodificação. Por isso, não é possível usar -vcodec copy
para stream copie o vídeo. Se você quiser a "mesma qualidade", precisará usar um codificador sem perdas:
ffmpeg -i video.mp4 -i image.png -filter_complex overlay -c:v libx264 -crf 0 -c:a copy -movflags +faststart output.mp4
-
O arquivo resultante pode ser enorme: isso é esperado para saídas sem perdas.
-
Seu player ou dispositivo talvez não consiga reproduzir o arquivo sem perdas.
-
Se você deseja uma saída "visualmente sem perdas", que não é tecnicamente sem perdas, mas parece ser quase isso, use
-crf 18
em vez de-crf 0
. -
Não há necessidade do filtro de origem filme . Basta adicionar sua imagem de sobreposição como na entrada como qualquer outro arquivo, como mostrado no meu exemplo.
-
Como você está usando PHP, eu suponho que você vai apresentar os vídeos via download progressivo. Adicione
-movflags +faststart
para que possa iniciar a reprodução antes que o arquivo seja completamente baixado.