Copie la calidad del video en FFmpeg

Copie la calidad del video en FFmpeg

Quiero usar FFmpeg para agregar una marca de agua pero quiero que el video tenga la misma calidad. ¿Cómo puedo hacer eso?

Intenté usarlo -vcodec copy -acodec copypero no tenía marca de agua:

ffmpeg -y -i treino.mp4 -vf "movie=logo.png [watermark]; [in][watermark] overlay=10:main_h-overlay_h-10 [out]" -vcodec copy -acodec copy video2.mp4

Respuesta1

Estás usando un filtro y el filtrado requiere volver a codificarse, por lo que no puedes usarlo -vcodec copy.copia de flujoel video. Si desea la "misma calidad", deberá utilizar un codificador sin pérdidas:

ffmpeg -i video.mp4 -i image.png -filter_complex overlay -c:v libx264 -crf 0 -c:a copy -movflags +faststart output.mp4
  • El archivo resultante puede ser enorme: esto es lo que se espera de las salidas sin pérdidas.

  • Es posible que su reproductor o dispositivo no pueda reproducir el archivo sin pérdidas.

  • Si desea una salida "visualmente sin pérdidas", que técnicamente no tiene pérdidas pero parece casi serlo, utilice -crf 18en lugar de -crf 0.

  • No hay necesidad depelículafiltro de fuente. Simplemente agregue su imagen superpuesta como entrada como cualquier otro archivo como se muestra en mi ejemplo.

  • Como estás usando PHP, asumiré que presentarás los videos mediante descarga progresiva. Agregue -movflags +faststartpara que pueda comenzar la reproducción antes de que el archivo se descargue por completo.

información relacionada