FFmpeg Padding Video ist nicht transparent

FFmpeg Padding Video ist nicht transparent

Ich verwende es ffmpeg-pythonals Wrapper darum ffmpeg.

Ich habe eins video.mp4, das ich mit Folgendem auffülle:

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()

Der Hintergrund ist jedoch einfach nur schwarz. Wie kann ich ihn transparent machen?

Antwort1

Sie müssen einen Encoder verwenden, der Alphakanäle unterstützt, beispielsweise libvpx-vp9.

Um die Alpha-Unterstützung zu überprüfen, sehen Sie sich die Ausgabe von an ffmpeg -h encoder=<encoder name>, beziehen Sie sich auf Supported pixel formatsund suchen Sie ain den Ergebnissen nach " ", z. B. yuva420p.

Beispielbefehl:

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

Weitere Informationen zu diesem speziellen Encoder finden Sie unterFFmpeg Wiki: VP9.

Wenn es nicht funktioniert, stellen Sie sicher, dass Ihr Player oder Browser es ebenfalls unterstützt: ffmpegMöglicherweise hat es seine Aufgabe ordnungsgemäß erfüllt, aber das Problem könnte beim Player selbst liegen.

verwandte Informationen