Filtro FFMPEG a boxblur e grigio scala un video utilizzando la maschera alfa

Qualcuno può mostrare come migliorare l'esempio trovato qui: FFmpeg – Applica sfocatura sul viso

Per eseguire le seguenti operazioni:

  1. Utilizzare una maschera alpha di input PNG anziché una regione rettangular dichiarata
  2. sia la sfocatura che la grigio scala della regione mascherata

Questo è un altro esempio – mostrando come utilizzare una maschera di maschera alfa Ritaglia l'area triangular con FFMPEG

Grazie

Ecco un metodo che utilizza alphaextract , alphamerge , hue , boxblur e overlay .

originalesfocatomaschera

Ingresso originale, output filtrata, image maschera.

Esempio:

 ffmpeg -i input -loop 1 -i mask.png -filter_complex \ "[1:v]alphaextract[alf]; \ [0:v][alf]alphamerge,hue=s=0,boxblur=5[fg]; \ [0:v][fg]overlay[v]" -map "[v]" -map 0:a -c:a copy output 
  • La maschera dovrebbe essere la stessa dimensione dell'ingresso. Se non è ansible utilizzare la scale o scale2ref per ridimensionarla.

  • L'audio viene copiato in streaming per evitare codifica non necessaria.