Вы используете фильтр, а фильтрация требует перекодирования, поэтому вы не можете использовать -vcodec copy
для потокового копирования видео. Если вы хотите «того же качества», вам нужно использовать кодировщик без потерь:
ffmpeg -i video.mp4 -i image.png -filter_complex overlay -c:v libx264 -crf 0 -c:a copy -movflags +faststart output.mp4
Полученный файл может быть огромным: это ожидается для выходных данных без потерь.
Ваш плеер или устройство может не воспроизводить файл без потерь.
Если вы хотите получить «визуально без потерь» вывод, который не является технически без потерь, но кажется почти таким, то используйте
-crf 18
вместо-crf 0
.Нет необходимости в фильтре исходного фильма . Просто добавьте свое наложенное изображение, как во входном файле, как и любой другой файл, как показано в моем примере.
Поскольку вы используете PHP, я предполагаю, что вы собираетесь представлять видео через прогрессивную загрузку. Добавьте,
-movflags +faststart
чтобы воспроизведение могло начаться до полной загрузки файла.