O vídeo de preenchimento do FFmpeg não é transparente

O vídeo de preenchimento do FFmpeg não é transparente

Estou usando ffmpeg-pythoncomo wrapper ffmpeg.

Eu tenho um video.mp4que estou preenchendo 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()

No entanto, o fundo é apenas preto. Como posso torná-lo transparente?

Responder1

Você precisa usar um codificador que suporte canal alfa, como libvpx-vp9.

Para verificar o suporte alfa, veja a saída de ffmpeg -h encoder=<encoder name>, consulte Supported pixel formatse procure por " a" nos resultados, como yuva420p.

Comando de exemplo:

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 obter mais informações sobre este codificador específico, consulteWiki FFmpeg: VP9.

Se não funcionar, certifique-se de que seu player ou navegador também seja compatível: ffmpegpode ter feito seu trabalho corretamente, mas o próprio player pode ser o problema.

informação relacionada