Nautilus script per un perfetto screencast

 

Volevo segnalare un ottimo script per Nautilus, che aiuta ad  eseguire in tutta comodità screencast video o audio/video, il tutto con una bella ed ordinata gui, fatta con zenity e sfruttando chiaramente ffmpeg. Questo script dal nome ZDesktopRecorder è stato creato da c2asr, in seguito ad un post da me fatto dal titolo "Screencast Perfetto di una singola finestra con FFmpeg", che dire, se non che questa è la classica ciliegina sulla torta 🙂 Quindi ringraziando per la collaborazione di nuovo c2asr invito a provarlo.

 

1) Download

2) Download

enjoy 😉

Debian Wheezy/Sid errore dipendenze xorg-video-abi-6.0

 

Facendo l'aggiornamento da Debian Squeeze a Debian Wheezy/Sid (Sid) ho avuto l'errore:

 

I seguenti pacchetti hanno dipendenze non soddisfatte:
 xserver-xorg-core : Rompe: xserver-xorg-input-7
                     Rompe: xserver-xorg-video-6

 

questo problema è dovuto alla versione di xserver-xorg-core, quindi per venirne fuori bisogna aggiungere i repository experimental, quindi:

 

# apt-get update
# apt-get install xserver-xorg-core -t experimental

 

successivamente reinstallare i driver Nvidia/Ati.

 

enjoy 😉

Repository Debian Squeeze/Wheezy/Sid Febbraio 2011

 

 

Repository per Debian Squeeze-Wheezy-Sid, ufficiali e di terze parti, aggiornati a febbraio 2011.

 

 

Debian Squeeze (stable):

 

################  Repo Debian Squeeze Ufficiali ############

deb https://ftp.it.debian.org/debian/ squeeze main contrib non-free
deb-src https://ftp.it.debian.org/debian/ squeeze main contrib non-free

deb https://security.debian.org/ squeeze/updates main contrib non-free
deb https://ftp.it.debian.org/debian/ squeeze-proposed-updates main contrib non-free

###############  Repo Debian Squeeze terze parti ##########

#### Debian Multimedia
deb  squeeze main
deb-src  squeeze main

#### E17
deb  squeeze main extras

#### Esmska
deb https://repo.palatinus.cz/stable /

#### Skype
deb  stable non-free

#### Opera
deb https://deb.opera.com/opera/ squeeze non-free

#### VirtualBox
deb https://download.virtualbox.org/virtualbox/debian squeeze contrib

#### Wine
deb https://www.lamaresh.net/apt squeeze main

#### aMule-AdunanzA i386-amd64
deb https://deb.matteobonora.it/debian squeeze main

####Hadret’s Debian
deb  unstable main

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

 

 

Debian Wheezy (testing):

 

################  Repo Debian Wheezy Ufficiali ############

deb https://ftp.it.debian.org/debian/ testing main contrib non-free
deb-src https://ftp.it.debian.org/debian/ testing main contrib non-free

deb https://security.debian.org/ testing/updates main contrib non-free

###############  Repo Debian Wheezy terze parti ##########

#### Debian Multimedia
deb  testing main

#### E17
deb  squeeze main extras

#### Esmska
deb https://repo.palatinus.cz/testing /

#### Skype
deb  stable non-free

#### Opera
deb https://deb.opera.com/opera/ squeeze non-free

#### VirtualBox
deb https://download.virtualbox.org/virtualbox/debian squeeze contrib

#### Wine
deb https://www.lamaresh.net/apt squeeze main

#### aMule-AdunanzA i386-amd64
deb https://deb.matteobonora.it/debian wheezy main

####Hadret’s Debian ppa
deb  unstable main

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

 

 

Debian Sid (unstable):

 

################  Repo Debian Sid Ufficiali ############

deb https://ftp.it.debian.org/debian/ sid main contrib non-free
deb-src https://ftp.it.debian.org/debian/ sid main contrib non-free

###############  Repo Debian Sid terze parti ##########

#### Debian Multimedia
deb  sid main

#### E17
deb  sid main extras

#### Esmska
deb https://repo.palatinus.cz/unstable /

#### Skype
deb  stable non-free

#### Opera
deb https://deb.opera.com/opera/ sid non-free

#### VirtualBox
deb https://download.virtualbox.org/virtualbox/debian squeeze contrib

#### Wine
deb https://www.lamaresh.net/apt sid main

#### aMule-AdunanzA i386-amd64
deb https://deb.matteobonora.it/debian sid main

####Hadret’s Debian ppa
deb  unstable main

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

 

 

Debian Experimental:

 

### Experimental
deb https://ftp.it.debian.org/debian experimental main

 

 

Importare chiavi GPG

 

Multimedia:

# apt-get update && apt-get install debian-multimedia-keyring && apt-get update

 

E17:

# wget -q  -O- | apt-key add -

 

Esmka:

# wget -q -O - https://repo.palatinus.cz/repo.key | apt-key add -

 

Skype:

# gpg --keyserver pgp.mit.edu --recv-keys 0xd66b746e
# gpg --export --armor 0xd66b746e  | apt-key add -

 

VirtualBox:

# wget -q https://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | apt-key add -

 

Wine:

# wget -O - https://www.lamaresh.net/apt/key.gpg | apt-key add -

 

Opera:

# wget -O - https://deb.opera.com/archive.key | apt-key add -
$ wget -O - https://deb.opera.com/archive.key | sudo apt-key add -

 

Hadret’s Debian ppa:

# wget -O -  | apt-key add -

 

aMule-AdunanzA i386-amd64:

$ gpg --keyserver hkp://subkeys.pgp.net --recv-key D45A244D
$ gpg -a --export D45A244D | apt-key add -

 

enjoy 😉

Errore Ignoring file 'google-chrome.list.save' in directory

 

Oggi facendo il passaggio da Debian Squeeze (stable) a Debian Wheezy (testing) ho ricevuto questo errore:

 

"Ignoring file 'google-chrome.list.save' in directory '/etc/apt/sources.list.d/' as it has an invalid filename extension"

 

questo errore succede poichè la directory sources.list.d non supporta estensioni .save o .distupgrade, si risolve il tutto con il comando:

 

# sh -c "echo 'Dir::Ignore-Files-Silently:: \"(.save|.distupgrade)$\";' > /etc/apt/apt.conf.d/99ignoresave"

 

enjoy 😉

Installare Gnome Shell su Debian Squeeze da Git

 

 

 

 

Ho voluto testare dopo un pò di tempo Gnome-Shell e quindi mi sono deciso a riprovarlo, facendo tutta la compilazione da Git. Ho avuto diversi problemi ma alla fine tutto è andato ok, grazie anche a San Google.

 

Requisiti:

 

 

 

Scaricare lo script:

 

$ curl -O https://git.gnome.org/browse/gnome-shell/plain/tools/build/gnome-shell-build-setup.sh

 

Esportare il Path:

 

$ export PATH=$PATH:/home/NOME-UTENTE/bin

 

da adesso in poi è meglio mettersi comodi, in quanto la compilazione prenderà un ora e mezza circa, almeno nel mio caso che ho dovuto risolvere 4 o 5 problemi:

 

Compilazione:

 

$ chmod +x gnome-shell-build-setup.sh

$ ./gnome-shell-build-setup.sh

$ jhbuild build

 

da questo momento in poi si verificheranno degli errori, che mostrerò nell'immagini.

 

Errore 1:

 

 

si risolve aprendo un'altra shell, andando ad aggiungere ad /etc/apt/sources.list i repository experimental:

 

# Experimental
deb https://ftp.it.debian.org/debian experimental main

 

quindi installare:

 

# apt-get install -t experimental libmozjs-dev

 

tornare alla shell principale, premere "6" e poi "yes" per ripartire.

 

Errore 2:

 

 

si risolve con:

 

# apt-get install -t experimental xulrunner-dev

 

Errore 3:

 

 

su Debian 32bit:

 

# nano /usr/lib/pkgconfig/libxklavier.pc

 

su Debian 64bit:

 

# nano /usr/lib64/pkgconfig/libxklavier.pc

 

e sostituire 5.0 con 5.1.

 

Errore 4:

 

 

c'è un problema con libnotify, si risolve con:

 

$ cd ~/bin
$ ./jhbuild shell
$ cd ~/gnome-shell/source
$ git clone git://git.gnome.org/libnotify
$ cd ./libnotify
$ ./autogen.sh –prefix $HOME/gnome-shell/install/
$ make && make install

 

a questo punto io non ho più avuto problemi per quanto riguarda la compilazione. Nel caso di ulteriori errori guardare quà.

 

Al momento di lanciare Gnome-Shell con:


$ cd ~/gnome-shell/source/gnome-shell/src

$ ./gnome-shell --replace

 

ho avuto il problema Cannot register the panel shell: there is already one running, risolto con:

 

$ rm ~/gnome-shell/install/lib64/gtk-3.0/modules/libcanberra-gtk-module.so


invece su Debian 32 bit:

 

$ rm ~/gnome-shell/install/lib/gtk-3.0/modules/libcanberra-gtk-module.so

 

Spero di non aver scordato niente, comunque Gnome-Shell non è male, anche se non mi entusiasma più di tanto e quindi vado cauto con i giudizi.

 

 

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 😉

Screencast Perfetto di una singola finestra con FFmpeg

 

Il titolo di questo post inizia con "Screencast Perfetto", e magari ad alcuni potrà sembrare un tantino esagerato, ma secondo me non lo è affatto. In Gnu/Linux esistono diversi programmi per fare uno screencast, ne cito uno per tutti, RecordmyDektop, anche se io ho sempre preferito utilizzare FFmpeg, Quello che ho notato in tutti i programmi è la "difficoltà" di centrare la finestra o il terminale in maniera precisa, certo nulla di grave, basta mettersi lì e perdere un pò di tempo per trovare il rettangolo perfetto. Però finalmente io ho trovato la soluzione che mi soddisfa completamente, e questo grazie a FFmpeg, che io amo molto, tanto è vero che gli ho dedicato una categoria esclusiva 🙂 Comunque andando al sodo la soluzione è la seguente:

$ xwininfo

digitando nel terminale xwininfo e successivamente toccando una finestra, avremo a disposizione molte informazioni:

xwininfo: Please select the window about which you
          would like information by clicking the
          mouse in that window.

xwininfo: Window id: 0x2424585 (has no name)

  Absolute upper-left X:  274
  Absolute upper-left Y:  219
  Relative upper-left X:  274
  Relative upper-left Y:  219
  Width: 654
  Height: 439
  Depth: 0
  Visual: 0x21
  Visual Class: TrueColor
  Border width: 0
  Class: InputOnly
  Colormap: 0x0 (not installed)
  Bit Gravity State: ForgetGravity
  Window Gravity State: NorthWestGravity
  Backing Store State: NotUseful
  Save Under State: no
  Map State: IsViewable
  Override Redirect State: yes
  Corners:  +274+219  -352+219  -352-366  +274-366
  -geometry 654×439+274+219
 

io ho preso queste informazioni toccando la finestra che mi interessava, e come si può vedere ci sono molti dati utili, tra cui il posizionamento-Corners-geometry. Adesso non bisogna fare altro che darle in pasto a FFmpeg. Quindi per prima cosa bisogna creare lo script record.sh, ed incollarci dentro:

 

#!/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 x11grab -r 25 -b 2000k -s $WIN_GEO -i :0.0+$WIN_XY /tmp/screencast.avi

 

in caso di problemi di formattazione si può scaricare da quà:

settare i permessi:

$ chmod +x record.sh

e lanciare:

$ ./record.sh

adesso non dobbiamo fare altro che toccare la finestra da registrare e lo script si occuperà in automatico della posizione precisa, salvando lo screencast in /tmp. Attenzione: per registrare il terminale bisogna toccare la barra della finestra, altrimente lo script non riesce a determinare l'esatta posizione, non so il motivo, per quanto riguarda tutto il resto, basta cliccare in un punto qualsiasi delle finestre.

FFmpeg ti amo!!!

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 😉

Inserire logo in un video con FFmpeg

 

Un pò di tempo fa c'era la possibilità di inserire un logo in un video con FFmpeg usando vhook, ma ho scoperto che adesso questo non è più possibile, o meglio, non è più possibile con vhook, ma si può fare lo stesso usando Soc e libavfilter, infatti nel mio post precedente, ho parlato di come installare FFmpeg da sorgenti, appunto per poter compilare ed utilizzare queste librerie. Diciamo che la possibilità di inserire un logo in un video può essere molto utile, specialmente per chi vuole marchiare i propri video per renderli unici, non proprio come il mio dove ho inserito tux-sioux gigante 🙂

Ed ecco di seguito un' altro dei comandi magici:

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

ps: per chi è pigro ed interessato a limite inserirò i pacchetti ffmpeg e x264 nel mio repository.

ps: la "cosa mancante" del post precedente è –enable-filter=movie

enjoy 😉