php - que - imagen autoajustable html
FFMPEG: agregue una imagen de tamaƱo fijo en un video, independientemente del ancho y alto del video(resoluciĆ³n) (1)
Este es mi código que agrega una imagen a los videos, que se ejecuta a través de PHP:
exec(''ffmpeg -i input.mp4 -i logo.png -filter_complex
"[0:v][1:v] overlay=10:10" -pix_fmt yuv420p -c:a copy output.mp4'');
Funciona bien, pero el problema es que la imagen se reduce o aumenta en la resolución de video. Por ejemplo, en las siguientes imágenes, el ancho del logotipo es de 50px
pero la resolución de los videos es diferente:
y éste
¿Cómo puedo evitar que la imagen se reduzca o disminuya?
Actualizar
Gracias a Mulvya , propuso estos códigos.
ffmpeg -i input.mp4 -i logo.png -filter_complex
"[1:v][0:v]scale2ref=(W/H)*ih/8:ih/8[wm][base];[base][wm]overlay=10:10"
-pix_fmt yuv420p -c:a copy output.mp4
y
ffmpeg -i input.mp4 -i logo.png -filter_complex
"[1:v][0:v]scale2ref=(W/H)*ih/8:ih/8[wm][base];[wm]setsar=1[wmsar];
[base][wmsar]overlay=10:10"
-pix_fmt yuv420p -c:a copy output.mp4
Eso funciona muy bien, pero no mantiene la relación de aspecto del logotipo. Probé este código en dos videos con diferente resolución y este es el resultado
y éste
¿Es posible mejorar esta solución?
Puedes usar el filtro scale2ref.
ffmpeg -i input.mp4 -i logo.png -filter_complex
"[1:v][0:v]scale2ref=(W/H)*ih/8/sar:ih/8[wm][base];[base][wm]overlay=10:10"
-pix_fmt yuv420p -c:a copy output.mp4
Esto cambiará el tamaño de la altura del logotipo a 1/8 de la altura del video.
Debe reemplazar W/H
con los valores de la imagen, por ejemplo, si el PNG es 320x270, debe ser scale2ref=(320/270)*ih/8:ih/8