Lo estoy usando ffmpeg
para superponer una imagen en una película. El requisito es rotar la imagen en un ángulo arbitrario. Usando filter_complex
, ahora puedo superponer la imagen girada. Sin embargo, el área de salida de la imagen está rellena de negro y no es transparente. revisé eldocumentos, dice que puede especificar el color de relleno, segúneste, pero no lo hice. ¿Algunas ideas?
Copio mi línea de comando aquí:
./ffmpeg -i mersyvideo.mp4 -i avatar.jpg -filter_complex "[1:v] rotate=-30*PI/180:c=black@'0x00':ow=rotw(iw):oh=roth(ih) [rotate];[0:v][rotate] overlay=40:10" -codec:a copy output/overlayavatar.mp4
Respuesta1
Para rellenar las áreas no cubiertas con transparente, utilice la opción c=none
:
ffmpeg \
-i mersyvideo.mp4 \
-i avatar.jpg \
-filter_complex "
[1:v]rotate=-30*PI/180:c=none:ow=rotw(iw):oh=roth(ih)[rotate];
[0:v][rotate]overlay=40:10
" \
-codec:a copy \
output/overlayavatar.mp4
Ver elrotate
filtrar ayuda:
fillcolor
,c
Establezca el color utilizado para rellenar el área de salida no cubierta por la imagen girada. Para conocer la sintaxis general de esta opción, consulte la sección (ffmpeg-utils)"Color" en el manual de ffmpeg-utils. Si se selecciona el valor especial "ninguno", entonces no se imprime ningún fondo (útil, por ejemplo, si el fondo nunca se muestra).
El valor predeterminado es "negro".