Comprimere video avi mp4 con FFmpeg

 

Quello della compressione di file video di grosse dimensioni è un bel problema, ed il giusto compromesso per una qualità accettabile è abbastanza difficile da trovare. Certo il tutto dipende dall'uso che se ne fà di quel video, ma se ci si accontenta di una piccola perdità di qualità per un abbattimento della dimensione che va dal  50 al 70%, allora come al solito bisogna scomodare FFmpeg. La situazione descritta l'ho sperimentata su due video, uno in avi l'altro in mp4.

 

avi:

$ ffmpeg -i video.avi -s 320×240 -vcodec msmpeg4v2 compresso.avi

 

mp4:

$ ffmpeg -i video.mp4 -acodec mp2 compresso.mp4

 

 

enjoy 😉

Aggiunto FFmpeg con –enable-filter=movie nel repository

 

 

Avevo in passato fatto una guida su come compilare ffmpeg con l'opzione –enable-filter=movie, indispensabile per poter inserire in un video un'immagine personale. Dato che mi è stato chiesto da più utenti la condivisione del pacchetto .deb, ho quindi deciso di inserirlo nel mio repository. Insieme ad ffmpeg ho anche inserito x264. Una volta installato, il comando da eseguire è il seguente:

 

$ ffmpeg -i video.avi  -vf "movie=0:png:immagine.png [logo]; [in][logo] overlay=10:10:1" output.avi

 

 

enjoy 😉

Convertire da terminale pagina web in PNG o PDF

 

 

 

 

Questo è un trucchetto molto utile per ottenere la conversione di una pagina web in un file immagine PNG o PDF. Per ottenere ciò, per prima cosa serve un addons per Iceweasel/Firefox, dal nome, Command Line Print, che non si trova nella pagina ufficiale. Una volta installato, andare in Strumenti-Componenti aggiuntivi-preferenze di Command Line Print, e scegliere il formato di default per la conversione. La sintassi per la conversione è la seguente:

 

$ firefox -print https://www.example.com/ -printfile ~/prova.png

 

oppure:

 

$ firefox -print https://www.example.com/ -printfile ~/prova.pdf

 

 

enjoy 😉

Come ottenere un Terminale animato

 

 

Trucchetto divertente per ottenere un terminale animato in ASCII, nello specifico trattasi di un acquario. Come requisito fondamentale bisogna installare Perl:

 

$ sudo apt-get install libcurses-perl

 

e Term-Animation-2.4, il pacchetto .deb per le architetture amd64 e i386 si trova anche nel mio repository:

 

#### Edmond's repository
deb https://www.edmondweblog.com/repo/ binary/

 

quindi installarlo con:


$ sudo apt-get install term-animation

e passare ad installare ASCIIQuarium, altrimenti  compilare con questi passi:
 

$ cd /tmp

$ wget https://bo.mirror.garr.it/mirrors/CPAN/authors/id/K/KB/KBAUCOM/Term-Animation-2.4.tar.gz

$ tar -zxvf Term-Animation-2.4.tar.gz

$ cd Term-Animation-2.4/

$ perl Makefile.PL

$ make test

$ sudo make install

poi serve scaricare ASCIIQuarium:

 

$ cd /tmp

$ wget https://www.robobunny.com/projects/asciiquarium/asciiquarium.tar.gz

$ tar -zxvf asciiquarium.tar.gz

$ cd asciiquarium_1.0/

$ sudo cp asciiquarium /usr/local/bin

$ sudo chmod +x  /usr/local/bin/asciiquarium

 

per avviarlo:
 

$ /usr/local/bin/asciiquarium

oppure:
 

$ perl /usr/local/bin/asciiquarium

 

 

enjoy 😉
 

Wikipedia via terminale con host dig ed espeak

 

Questo comando serve ad interrogare il DNS di Wikipedia, e quindi ottenere un output su un termine specifico di ricerca.

 

 

$ dig +short txt debian.wp.dg.cx | espeak -s 120

 

oppure:

 

$ host -t txt debian.wp.dg.cx | espeak -s 120

 

 

enjoy 😉

Guardare Al Jazeera con mplayer e rtmpdump

 

 

 

Anche in questi momenti difficili, sopratutto per i popoli coinvolti, ecco un piccolo trucchetto per visualizzare AL JAZEERA da terminale, usando mplayer e rtmpdump:

 

$ rtmpdump -v -r rtmp://livestfslivefs.fplive.net/livestfslive-live/ -y "aljazeera_en_high" -a "aljazeeraflashlive-live" -o -| mplayer –

 

enjoy 😉

Cambiare misure default del terminale

 

 

Il terminale di Gnome di default ha una determinata misura, ma se si volesse più grande o più piccolo non ci sono grandi problemi, basta solo uno step:

 

$ sudo nano /usr/share/vte/termcap/xterm

 

e modificare questa stringa:

 

:co#80:it#8:li#24:\

 

per esempio con questa:

 

:co#100:it#8:li#28:\

 

 

enjoy 😉

Screencast audio-video ad alta qualità con FFmpeg

 

Ed eccomi ancora quà con l'ennesima guida su FFmpeg, sì lo sò, sono fissato, ma come sapete è uno dei tools che amo di più, per questo ho deciso di scrivere il più possibile su ogni esperimento che faccio, sia per quanto riguarda l'utilizzo dello screencast, sia per quanto riguarda le opzioni di conversione in generale. Ho già dedicato diversi post allo screencast con FFmpeg, ma adesso ho voluto farne uno cercando la migliore qualità audio/video possibile. La base di partenza è sempre lo script record.sh del post precedente, ma modificato per migliorare sensibilmente la qualità dello screencast:

 

#!/bin/sh

INFO=$(xwininfo -frame)

WIN_GEO=$(echo $INFO | grep -oEe 'geometry [0-9]+x[0-9]+' | grep -oEe '[0-9]+x[0-9]+')
WIN_XY=$(echo $INFO | grep -oEe 'Corners:\s+\+[0-9]+\+[0-9]+' | grep -oEe '[0-9]+\+[0-9]+' | sed -e 's/\+/,/' )

ffmpeg -f alsa -ac 2 -i hw:0,0 -f x11grab -r 30 -s $WIN_GEO -i :0.0+$WIN_XY -acodec pcm_s16le -vcodec libx264 \
-vpre lossless_ultrafast -threads 0 -y screencast.mkv

 

per chi usa PulseAudio, sostituire:

 

-f alsa -ac 2 -i hw:0,0

con:

-f alsa -ac 2 -i pulse

 

c'è da dire che questa soluzione ha il "difetto" di creare screencast di grosse dimensioni, quindi nel caso di upload su youtube bisogna prepararsi all'ottimizzazione, cercando sempre di mantenere lo standard alto. Quindi il comando seguente oltre ad ottimizzare il file per youtube, ne riduce sensibilmente le dimensioni:

 

 

quello sopra anche se lunghino è un solo comando. Credo che il tutto sia ancora migliorabile, dato che ho notato delle piccole imperfezioni.

 

ps: il video sopra è volutamente muto.

 

enjoy 😉

Copiare con cp e barra di progresso

 

 

 

 

Advanced Copy è una mod per i tools cp e mv, e si occupa di far apparire nel terminale una barra di progresso che rende visibile il tempo e la % di una copia di un file. Per abilitare questa mod, bisogna seguire pochi semplici passi:

 

 

$ wget https://ftp.gnu.org/gnu/coreutils/coreutils-8.4.tar.gz
$ tar xvzf coreutils-8.4.tar.gz
$ cd coreutils-8.4/
$ wget
$ patch -p1 -i advcpmv-0.3-8.4.patch
$ ./configure
$ make
$ sudo cp src/cp /usr/bin/cp
$ sudo cp src/mv /usr/bin/mv

 

per avere la barra di progresso basta usare le opzioni cp -g e mv -g, senza andare a cambiare il comportamento solito di cp e mv. Per rendere definitivo il cambiamento invece aggiungere a .bashrc  gli alias:

 

alias cp='cp -g'
alias mv='mv -g'

 

Il comando dell' immagine sopra è:

 

$ cp -g debian-squeeze-di-beta1-amd64-netinst.iso /home/edmond/

 

 

enjoy 😉