El vídeo de relleno de FFmpeg no es transparente

El vídeo de relleno de FFmpeg no es transparente

Lo estoy usando ffmpeg-pythoncomo envoltorio ffmpeg.

Tengo un video.mp4que estoy rellenando usando:

import ffmpeg

v = ffmpeg.input('video.mp4')
kwargs = {
      'w':'100', 
      'h':'100', 
      'x':'10', 
      'y':'10', 
      'color':'black@0'}
v_pad = ffmpeg.filter(v, filter_name='pad', **kwargs)
v_pad.output('out.mp4').run()

Sin embargo, el fondo es simplemente negro. ¿Cómo puedo hacerlo transparente?

Respuesta1

Debe utilizar un codificador que admita el canal alfa, como libvpx-vp9.

Para comprobar la compatibilidad con alfa, consulte el resultado de ffmpeg -h encoder=<encoder name>, consulte Supported pixel formatsy busque " a" en los resultados, como por ejemplo yuva420p.

Comando de ejemplo:

ffmpeg -i input.mp4 -filter_complex "[0]format=yuva420p,pad=iw+200:ih+200:(ow-iw)/2:(oh-ih)/2:black@0" -c:v libvpx-vp9 -crf 30 -b:v 0 output.webm

Para obtener más información sobre este codificador en particular, consulteWiki FFmpeg: VP9.

Si no funciona, asegúrese de que su reproductor o navegador también lo admita: ffmpeges posible que haya hecho su trabajo correctamente, pero el problema podría ser el reproductor en sí.

información relacionada