ffmpeg - juntar / unir um em cima do outro

1

Estou tentando juntar dois vídeos um sobre o outro. Eu já fiz estes dois comandos ffmpeg:

ffmpeg -i 2_Out_of_Control.VOB -aspect 16:9 \
-vf "yadif=0:-1:0,crop=w=714:h=476:x=6:y=0,scale=1280:720,boxblur=lp=13" \
-c:v libx264 -preset medium \
-c:a copy \
'2(blurred)Out_of_Control.mp4'

ffmpeg -i 2_Out_of_Control.VOB \
-vf "yadif=0:-1:0,crop=w=714:h=476:x=6:y=0,scale=1080:720" \
-c:v libx264 -preset medium \
-c:a copy \
'2(clear)Out_of_Control.mp4'

Atualmente estou empenhado em tornar a versão "clara" centralizada e no topo da versão "desfocada". Não tenho certeza de como fazer isso. Só consegui isso usando o OpenShot, mas sim, preferiria se houvesse um comando ffmpeg para mesclar os dois vídeos um sobre o outro.

Detalhes do arquivo de entrada:

$ ffmpeg -i 2_Out_of_Control.VOB 
ffmpeg version git-2013-10-03-c7fe2a3 Copyright (c) 2000-2013 the FFmpeg developers
  built on Oct  4 2013 05:22:06 with gcc 4.6 (Ubuntu/Linaro 4.6.3-1ubuntu5)
  configuration: --prefix=/home/username/ffmpeg_build --extra-cflags=-I/home/username/ffmpeg_build/include --extra-ldflags=-L/home/username/ffmpeg_build/lib --bindir=/home/username/bin --extra-libs=-ldl --enable-gpl --enable-libass --enable-libfdk-aac --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-nonfree --enable-x11grab
  libavutil      52. 46.100 / 52. 46.100
  libavcodec     55. 34.100 / 55. 34.100
  libavformat    55. 19.100 / 55. 19.100
  libavdevice    55.  3.100 / 55.  3.100
  libavfilter     3. 88.101 /  3. 88.101
  libswscale      2.  5.100 /  2.  5.100
  libswresample   0. 17.103 /  0. 17.103
  libpostproc    52.  3.100 / 52.  3.100
Input #0, mpeg, from '2_Out_of_Control.VOB':
  Duration: 00:05:00.01, start: 0.500000, bitrate: 4574 kb/s
    Stream #0:0[0x1e0]: Video: mpeg2video (Main), yuv420p(tv, smpte170m), 720x480 [SAR 8:9 DAR 4:3], max. 9334 kb/s, 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc
    Stream #0:1[0x80]: Audio: ac3, 48000 Hz, stereo, fltp, 384 kb/s
At least one output file must be specified
    
por AisIceEyes 17.10.2013 / 04:19

1 resposta

1

Sobreponha o vídeo normal a uma versão desfocada


Exemplodesobreposiçãodetamanhode1/2napartesuperiordooriginaldesfocado(oupoderepresentar2xfundodetamanhoatrásdasobreposiçãodetamanhooriginal)

Euincorporeiseusparâmetrosoriginais,masaculturaeoupscaleforçadopodemcausarumaaparênciaumpoucoembaçadaeesmagada(masnãotenhocerteza,nestecaso,comonãopossotestarnomomento).

ffmpeg-iinput-filter_complex\"[0:v]yadif=0:-1:0,crop=w=714:h=476:x=6:y=0,split[v1][v2]; \
 [v1]scale=1280:720,boxblur=lp=13[bg]; \
 [v2]scale=1080:720[fg]; \
 [bg][fg]overlay=main_w/2-overlay_w/2:main_h/2-overlay_h/2,setdar=16/9[video]" \
 -map "[video]" -c:v libx264 -preset medium -crf 20 -c:a copy \
 output.mp4

O filtro de filtros

  1. Desentrelaça com yadif , crop e, em seguida, split os resultados. Nomeie essas saídas como [v1] e [v2] .

  2. scale e boxblur [v1] . Nomeie a saída [bg] como em "background".

  3. scale [v2] . Nomeie a saída [fg] como em "primeiro plano".

  4. overlay [fg] na parte superior de [bg] . Faça-o centrado. Em seguida, defina a proporção de exibição com setdar . Nomeie essa saída como [video] para que você possa consultá-la com -map .

Veja também

por 20.10.2013 / 22:13

Tags