Faça um efeito caleidoscópio com ffmpeg
Exemplodecomando
ffmpeg-ivideo.mkv-loop1-imask.png-filter_complex\"[1:v]alphaextract,split[a1][a2]; \
[0:v][a1]alphamerge,transpose=1[e]; \
[0:v][a2]alphamerge,transpose=2[w]; \
[0:v]vflip,hflip[s]; \
[0:v]pad=ih*2:ih*2:x=(ow-iw)/2[n]; \
[n][s]overlay=W/2-w/2:W/2[bg]; \
[bg][e]overlay=W/2:H/2-h/2[bg2]; \
[bg2][w]overlay=0:H/2-h/2" \
-codec:a copy output.mkv
Filtros FFmpeg usados
-
alphaextract
ealphamerge
para o componente alfa -
split
para fazer várias cópias do componente alfa -
transpose
/vflip
/hflip
ou qualquer combinação de filtros semelhantes de sua preferência -
pad
para tornar o plano de fundo "tela" -
overlay
para colocar cada vídeo na tela
Notas
-
Use um
ffmpeg
recente. Ou faça o download de uma compilação Linux deffmpeg
ou siga um passo a passo guide para compilarffmpeg
. -
Você precisará criar uma imagem que contenha uma máscara alfa. Ele precisa ter o mesmo tamanho de quadro da entrada de vídeo, portanto, se
video.mkv
for 1920x1080,mask.png
também precisará ser 1920x1080. Você pode baixar a máscara alfa deste exemplo. -
split
foi usado porque não consegui reutilizar com êxito o mesmo rótulo de link para a saídaalphaextract
, e nunca usei os filtrosalpha*
antes, portanto, o exemplo poderia ser encurtado. -
A cor de fundo preta do filtro
pad
é visível nos cantos. O filtrocrop
pode ser usado para removê-lo, se você preferir. -
O áudio é copiado em fluxo em vez de ser recodificado.
-
Consulte o FFmpeg e o x264 Encoding Guide para obter informações adicionais sobre como controlar a qualidade da saída.