Vários filtros de vídeo no FFmpeg

2

Eu quero adicionar uma marca d'água PNG e dimensionar meu vídeo. Eu posso adicionar mais filtros. Este é o meu comando FFmpeg.

sweb@sweb-laptop:/tmp$ ffmpeg -i Wildlife.wmv -sn -acodec libvorbis -vcodec libvpx -b:a 128k -ar 44100 -b:v 384k -r 25 -vf "movie=/tmp/icon.png [watermark]; [in][watermark] overlay=main_w/2-overlay_w/2:main_h/2-overlay_h/2 [out], scale=480:-1" video.webm

... mas isso me deu um erro:

Simple filtergraph 'movie=/tmp/icon.png [watermark]; [in][watermark] overlay=main_w/2-overlay_w/2:main_h/2-overlay_h/2 [out], scale=480:-1' does not have exactly one input and output.
Error opening filters!
    
por sweb 05.02.2013 / 19:24

1 resposta

5
[in][watermark] overlay=main_w/2-overlay_w/2:main_h/2-overlay_h/2 [out], scale=480:-1"

.. tem [out] no lugar errado, o que torna o filtro sem sentido. Deve ser:

[in][watermark] overlay=main_w/2-overlay_w/2:main_h/2-overlay_h/2, scale=480:-1[out]"
Pessoalmente eu não gosto do filtro de filme, por razões puramente estéticas (acho que isso deixa a linha de comando menos clara). Eu faria isso usando filter_complex:

ffmpeg -i Wildlife.wmv -i /tmp/icon.png \
-filter_complex '[0:v][1]overlay=W/2-w/2:H/2-h/2,scale=480:-1[outv]' \
-map [outv] -map 0:a -c:a libvorbis -b:a 128k -c:v libvpx -b:v 384k output.webm

Observe que o filter_complex é incompatível com [in] , pois, por sua natureza, são necessárias várias entradas.

Eu removi -ar 44100 e -r 25 , pois você provavelmente não precisa deles - se sua origem de entrada tiver uma taxa de quadros de 25 fps e uma taxa de áudio de 44100, a saída herdará essas configurações por padrão. E se isso não acontecer, você provavelmente não ganhará nada mudando-as.

Para dimensionar o vídeo primeiro e adicionar uma marca d'água, você pode usar algo assim:

-vf 'movie=/tmp/icon.png[wm];[in]scale=480:-1[int];[int][wm]overlay=W/2-w/2:H/2-h/2[out]'

Não tenho certeza se isso funcionaria; pessoalmente, eu usaria o filter_complex, como acima:

ffmpeg -i Wildlife.wmv -i /tmp/icon.png \
-filter_complex '[0:v]scale=480:-1[int];[int][1]overlay=W/2-w/2:H/2-h/2[outv]' \
-map [outv] -map 0:a -c:a libvorbis -b:a 128k -c:v libvpx -b:v 384k output.webm
    
por 05.02.2013 / 20:06