[Soci SLIP] come aggiungere un logo ad un video con ffmpeg

llcfree llcfree a gmail.com
Dom 17 Giu 2012 19:10:53 CEST


Magari lo sapete fare tutti, ma io ci ho impiegato una vita a scoprire
come aggiungere il logo della licenza creative common ad un filmato.

Da terminale, su una sola riga:

ffmpeg -sameq -i test_noaudio.mp4 -vf "movie='88x31.png' [logo];
[in][logo] overlay=10:10 [out]" out.mp4
^^^
questo comando produce un video (out.mp4) della stessa qualita' (-sameq)
del file di input (test_noaudio.mp4) dopo aver aggiunto il logo
(88x31.png) in alto a sinistra, con un margine di 10 pixel in
orizzontale e in verticale rispetto al bordo.

ffmpeg2theora out.mp4
^^^
questo comando genera out.ogv a partire da out.mp4

Per piazzare il logo in una posizione diversa, bisogna pensare un
momentino, tenendo conto che main_w e main_h si riferiscono,
rispettivamente, alla larghezza (Width) e all'altezza (Height) della
finestra del video, mentre overlay_w, overlay_h si riferiscono alla
larghezza e all'altezza del logo.

In alto a destra:

ffmpeg -i test.mp4 -vf "movie='88x31.png' [logo]; [in][logo]
overlay=main_w-overlay_w-10:10 [out]" out.mp4

In basso a sinistra:

ffmpeg -i test.mp4 -vf "movie='88x31.png' [logo]; [in][logo]
overlay=10:main_h-overlay_h-10 [out]" out.mp4

In basso a destra:

ffmpeg -i test.mp4 -vf "movie='88x31.png' [logo]; [in][logo]
overlay=main_w-overlay_w-10:main_h-overlay_h-10 [out]" out.mp4

In tutti i casi, con un margine di 10x10 pixel dal relativo bordo.


Occhio che io sono impazzita perche' usavo una versione di ffmpeg che
non aveva i filtri (-vf) e continuava a darmi errore. Il bello di ffmpeg
e' che ad ogni versione cambia quasi tutto e i suggerimenti in rete si
sognano ben dal dire a quale versione si riferiscono, come se
quest'informazione fosse un optional... Comunque, la versione che sto
usando io e' quella di debian squeeze (dopo aver aggiunto non-free,
ahime' ...):

ffmpeg version , Copyright (c) 2000-2011 the FFmpeg developers
  built on Nov 23 2011 10:04:36 with gcc 4.4.5
  configuration: --enable-libdc1394 --prefix=/usr --extra-cflags='-Wall
-g ' --cc='ccache cc' --enable-shared --enable-libmp3lame --enable-gpl
--enable-libvorbis --enable-pthreads --enable-libfaac --enable-libxvid
--enable-postproc --enable-x11grab --enable-libgsm --enable-libtheora
--enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libx264
--enable-libspeex --enable-nonfree --disable-stripping --enable-avfilter
--enable-libdirac --disable-decoder=libdirac --enable-libschroedinger
--disable-encoder=libschroedinger --enable-version3 --enable-libopenjpeg
--enable-libvpx --enable-librtmp --extra-libs=-lgcrypt --disable-altivec
--disable-armv5te --disable-armv6 --disable-vis
  libavutil    50. 43. 0 / 50. 43. 0
  libavcodec   52.123. 0 / 52.123. 0
  libavformat  52.111. 0 / 52.111. 0
  libavdevice  52.  5. 0 / 52.  5. 0
  libavfilter   1. 80. 0 /  1. 80. 0
  libswscale    0. 14. 1 /  0. 14. 1
  libpostproc  51.  2. 0 / 51.  2. 0
Hyper fast Audio and Video encoder
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile
options] outfile}...

Loredana




Maggiori informazioni sulla lista Soci