(FFmpeg) Filtro Frei0r per distorsioni e cambio prospettiva

 

Continuando con FFmpeg ed i suoi filtri, segnalo Frei0r, che da la possibilità di ottenere degli effetti interessanti. Nel caso specifico ho utilizzato gli effetti distorsione e prospettiva. Come al solito per poter utilizzare i filtri bisogna aver compilato FFmpeg con l'opzione –enable-filter=frei0r, oppure scaricare il pacchetto dal mio repository. Come video per l'esperimento ho usato una delle migliori interpretazioni di Salma Hayek nel film ideato ed interpretato da Quentin Tarantino "Dal Tamonto all' alba", credo che sia uno dei più sensuali table dance mai visto in un film. La performance è stata divisa in due video………consiglio la visione di tutti e due i "filtri" 🙂

Comandi:

$ ffmpeg -i input_video -vf "frei0r=distort0r:0.1:0.01" output_video

$ ffmpeg -i input_video -vf "frei0r=perspective:0.2/0.2:0.8/0.2" output_video

 

 

 

enjoy 😉

(FFmpeg) Video in Slow Motion e Fast Motion

 

Un bel po di tempo fa, avevo fatto una guida su come rallentare un video con FFmpeg, dal titolo un po ambiguo :). Alla luce dei miei ultimi esperimenti sempre con FFmpeg, ho notato che esiste un modo molto più facile e veloce, per ottenere un video in Slow Motion oppure in Fast Motion.

Slow Motion:

$ ffmpeg -i input.avi -vf "setpts=5.0*PTS" output.avi

 

Fast Motion:

$ ffmpeg -i input.avi -vf "setpts=0.2*PTS" output.avi

ps: i video in fast motion non erano visivamente interessanti.

enjoy 😉

(FFmpeg) filtri ed effetti da "mutante"

 

Ho giocato un po con FFmpeg, e sono venuti fuori due video particolari…..uno con un effetto "mutante". Diciamo che non sono nulla di particolare, ma fanno capire la potenza e la flessibilità di questo strumento. Il video in originale, è quello che ho usato in una guida precedente.

$ ffmpeg -i input.avi -vf "[in] split [1], fifo, [2] overlay=0:H/280 [out]; [1] fifo, crop=iw:ih/2:2:ih/2, vflip [2]" output.avi

$ ffmpeg -i input.avi -vf "[in] split [1], fifo, [2] overlay=0:H/2 [out]; [1] fifo, crop=iw:ih/2:2:ih/32, vflip [2]" output.avi

 

enjoy 😉

(FFmpeg) Inserire un video in un video

 

Per ottenere un video come sopra entrano in gioco una serie di filtri con FFmpeg ( movie, scale, setpts, overlay ). La finestra con il video più piccolo ha un anticipo di 3.6 secondi sul video principale, settato dall' opzione seek_point. Le misure si riferiscono a questo video specifico. FFmpeg……J'Adore 🙂

 

$ ffmpeg -i input.avi -vf "movie=input.avi:seek_point=3.6, scale=120:-1, setpts=PTS-STARTPTS [movie]; [in] setpts=PTS-STARTPTS, [movie] overlay=330:220 [out]" output.avi

 

enjoy 😉

(Update) Ruotare video di 90-180-270 gradi con FFmpeg

 

Aggiornamento al post fatto qualche tempo fa, su come riuscire a ruotare un video di 90-180-270 gradi, usando FFmpeg. Nell'esempio precedente si usava il filtro rotate, che adesso non c'è più, ed al suo posto c'è transpose:

 

Filters:
aconvert         Convert the input audio to sample_fmt:channel_layout:packed_fmt.
aformat          Convert the input audio to one of the specified formats.
anull            Pass the source unchanged to the output.
aresample        Resample audio data.
ashowinfo        Show textual information for each audio frame.
earwax           Widen the stereo image.
pan              Remix channels with coefficients (panning)
volume           Change input volume.
abuffer          Buffer audio frames, and make them accessible to the filterchain.
aevalsrc         Generate an audio signal generated by an expression.
amovie           Read audio from a movie source.
anullsrc         Null audio source, return empty audio frames.
abuffersink      Buffer audio frames, and make them available to the end of the filter graph.
anullsink        Do absolutely nothing with the input audio.
blackframe       Detect frames that are (almost) black.
boxblur          Blur the input.
copy             Copy the input video unchanged to the output.
crop             Crop the input video to width:height:x:y.
cropdetect       Auto-detect crop size.
delogo           Remove logo from input video.
deshake          Stabilize shaky video.
drawbox          Draw a colored box on the input video.
drawtext         Draw text on top of video frames using libfreetype library.
fade             Fade in/out input video
fieldorder       Set the field order.
fifo             Buffer input images and send them when they are requested.
format           Convert the input video to one of the specified pixel formats.
frei0r           Apply a frei0r effect.
gradfun          Debands video quickly using gradients.
hflip            Horizontally flip the input video.
hqdn3d           Apply a High Quality 3D Denoiser.
lut              Compute and apply a lookup table to the RGB/YUV input video.
lutrgb           Compute and apply a lookup table to the RGB input video.
lutyuv           Compute and apply a lookup table to the YUV input video.
mp               libmpcodecs wrapper.
negate           Negate input video.
noformat         Force libavfilter not to use any of the specified pixel formats for the input to the next filter.
null             Pass the source unchanged to the output.
overlay          Overlay a video source on top of the input.
pad              Pad input image to width:height[:x:y[:color]] (default x and y: 0, default color: black).
pixdesctest      Test pixel format definitions.
scale            Scale the input video to width:height size and/or convert the image format.
select           Select frames to pass in output.
setdar           Set the frame display aspect ratio.
setpts           Set PTS for the output video frame.
setsar           Set the pixel sample aspect ratio.
settb            Set timebase for the output link.
showinfo         Show textual information for each video frame.
slicify          Pass the images of input video on to next video filter as multiple slices.
split            Pass on the input to two outputs.
transpose        Transpose input video.
unsharp          Sharpen or blur the input video.
vflip            Flip the input video vertically.
yadif            Deinterlace the input image
buffer           Buffer video frames, and make them accessible to the filterchain.
color            Provide an uniformly colored input, syntax is: [color[:size[:rate]]]
frei0r_src       Generate a frei0r source.
mandelbrot       Mandelbrot fractal renderer
movie            Read from a movie source.
mptestsrc        Generate various test pattern.
nullsrc          Null video source, return unprocessed video frames.
rgbtestsrc       Generate RGB test pattern.
testsrc          Generate test pattern.
buffersink       Buffer video frames, and make them available to the end of the filter graph.
nullsink         Do absolutely nothing with the input video.
 

 

Ruotare video a sinistra:

 

$ ffmpeg -i input.avi -vf "transpose=2" -sameq -y output.avi

 

Ruotare video verso destra:



$ ffmpeg -i input.avi -vf "transpose=3" -sameq -y output.avi

 

Ruotare sotto sopra:

 

$ ffmpeg -i input.avi -vf vflip -y output.avi

 

oppure:

 

$ avconv -i input.avi -vf "vflip" output.avi

 

enjoy 😉

(FFmpeg + Filtri) Deb per Debian Squeeze/Sid

 

 

 

Condivido pacchetti deb i386 e amd64, per Debian Squeeze/Sid, di FFmpeg compilato con l'aggiunta di molti filtri. Avendo fatto alcune guide, ed altre ne farò, sui filtri di FFmpeg, mi è sembrato giusto condividerli, con quei pochi che mi leggono 🙂

 

Debian Squeeze:

nella cartella ffmpeg-squeeze si trovano i 2 pacchetti, i386 ed amd64. Leggere il file README all'interno.

 

./configure –enable-libdc1394 –prefix=/usr –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 –disable-altivec –disable-armv5te –disable-armv6 –disable-vis –enable-vdpau –enable-bzlib –enable-frei0r –enable-libfreetype –enable-libvo-aacenc –enable-libaacplus –enable-filter=delogo –enable-filter=boxblur –enable-filter=frei0r –enable-filter=drawtext –enable-filter=gradfun

 

Debian Sid:

nella cartella ffmpeg-sid, si trova solo il pacchetto per i386

 

configuration: –prefix=/usr –enable-vdpau –enable-bzlib –enable-libmp3lame –enable-gpl –enable-nonfree –enable-libdirac –disable-decoder=libdirac –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-libschroedinger –disable-encoder=libschroedinger –enable-version3 –enable-libopenjpeg –enable-libvpx –enable-librtmp –enable-avfilter –enable-frei0r –enable-libfreetype –enable-libvo-aacenc –disable-decoder=amrnb –enable-libvo-amrwbenc –enable-libaacplus –enable-libdc1394 –disable-altivec –disable-armv5te –disable-armv6 –disable-vis –enable-filter=delogo –enable-filter=boxblur –enable-filter=frei0r –enable-filter=drawtext –enable-filter=gradfun
  libavutil    51. 30. 0 / 51. 30. 0
  libavcodec   53. 40. 0 / 53. 40. 0
  libavformat  53. 24. 0 / 53. 24. 0
  libavdevice  53.  4. 0 / 53.  4. 0
  libavfilter   2. 50. 0 /  2. 50. 0
  libswscale    2.  1. 0 /  2.  1. 0
  libpostproc  51.  2. 0 / 51.  2. 0
Hyper fast Audio and Video encoder
usage: ffmpeg [options] [[infile options] -i infile]… {[outfile options] outfile}…
 

(FFmpeg) e filtro drawbox

 

 

Continuando con FFmpeg ed i suoi filtri, oggi tocca a drawbox, che serve ad inserire un box colorato in un video. Di seguito il comando che ho usato per il video sopra, da usare come base di partenza.

 

$ ffmpeg -i input.mp4 -vf "drawbox=150:90:320:180:red@0.8" -sameq -y output.mp4

 

ps: il video scelto serve come stimolo…..all'apprendimento 🙂

 

enjoy 😉

(FFmpeg) Applicare filtri drawtext + fade in un solo comando

 

           

   

 

Un altro filtro che si può usare con FFmpeg oltre a quelli gia visti, è l'effetto dissolvenza (fade). Nel secondo  video ho unito in un solo comando il filtro drawtext e fade.

 

$ ffmpeg -i input.avi -vf drawtext="fontfile=/usr/share/fonts/truetype/freefont/FreeSerif.ttf: text='TESTO':fontcolor=white@0.8:, fade=in:0:80" -y output.avi

 

enjoy 😉

Ruotare video di 90-180-270 gradi con FFmpeg

 

Ultimamente ho avuto la necessità di ruotare un video fatto da me di 180 gradi, per intenderci la visione era sotto-sopra. Per una semplice visione del video non ci sono problemi, basta usare VLC, ed andare in: Strumenti-Effetti_Filtri-Effetti_Video-Geometria-Rotazione, e da qui possiamo ruotare il nostro video a piacimento. Per ruotare e quindi salvare il video, io come sempre mi sono affidato ad FFmpeg. Come prima cosa bisogna verifica se si hanno i filtri abilitati:

 

$ ffmpeg -filters

 

nel mio caso l'output restituisce:


Filters:
anull            Pass the source unchanged to the output.
anullsrc         Null audio source, never return audio frames.
anullsink        Do absolutely nothing with the input audio.
blackframe       Detect frames that are (almost) black.
copy             Copy the input video unchanged to the output.
crop             Crop the input video to width:height:x:y.
cropdetect       Auto-detect crop size.
drawbox          Draw a colored box on the input video.
fade             (null)
fifo             Buffer input images and send them when they are requested.
format           Convert the input video to one of the specified pixel formats.
fps              (null)
gradfun          Debands video quickly using gradients.
hflip            Horizontally flip the input video.
hqdn3d           Apply a High Quality 3D Denoiser.
negate           (null)
noformat         Force libavfilter not to use any of the specified pixel formats for the input to the next filter.
null             Pass the source unchanged to the output.
overlay          Overlay a video source on top of the input.
pad              Pad input image to width:height[:x:y[:color]] (default x and y: 0, default color: black).
pixdesctest      Test pixel format definitions.
rotate           (null)
scale            Scale the input video to width:height size and/or convert the image format.
setdar           Set the frame display aspect ratio.
setpts           Set PTS for the output video frame.
setsar           Set the pixel sample aspect ratio.
settb            Set timebase for the output link.
slicify          Pass the images of input video on to next video filter as multiple slices.
split            (null)
transpose        Transpose input video.
unsharp          Sharpen or blur the input video.
vflip            Flip the input video vertically.
yadif            Deinterlace the input image
buffer           Buffer video frames, and make them accessible to the filterchain.
color            Provide an uniformly colored input, syntax is: [color[:size[:rate]]]
movie            (null)
nullsrc          Null video source, never return images.
nullsink         Do absolutely nothing with the input video.

altrimenti bisogna ricompilare FFmpeg come in questa mia guida, oppure usare quello presente nel mio repository. Comunque i comandi sono i seguenti:

 

$ ffmpeg -i input.avi -vf vflip output.avi

 

oppure:



$ ffmpeg -vf "rotate=90" -i input.avi output.avi

$ ffmpeg -vf "rotate=180" -i input.avi output.avi

 

e così via, basta cambiare solo i gradi.

 

enjoy 😉