Inserire audio in immagine statica con ffmpeg

 

 

 

 

 

 

 

Mi sono trovato nella situazione di voler inserire in una singola immagine una musica, e quindi come al solito senza pensarci troppo mi sono rivoltto a ffmpeg. La "difficoltà " sta nel fatto che essendo una singola immagine e volendo inserire una musica che dura 3 minuti, mi sono trovato di fronte al problema di ripetere l'immagine per gli stessi minuti dell'audio. Ho provato il tutto con un file.ogg ed un immagine.jpg, ma chiaramente funziona anche con altri formati. Le opzioni che ho usato sono le seguenti:

 

$ ffmpeg -i file.ogg -loop_input -f image2 -i file.jpg -t 188 file.avi

 

-loop_input:

indica di ripetere l'immagine in maniera indefinita.

-f image2 -i file.jpg:

indica di creare un video da un immagine statica .jpg

-t 188:

è la durata dell'audio in secondi che possiamo far coincidere con la fine del video.

enjoy 😉

Migliorare prestazioni Adobe Flash in Linux

 

 

Si dice chè………sarà vero?……bho!!!! che con Windows i filmati su youtube, specialmente quelli in hd scorrono molto più fluidi che con Linux, e tutto questo perchè su Linux ( di proposito o forse no ) viene sfruttata di più la cpu a discapito della Gpu, come invece avviene con Windows. Leggenda metropolitana o cosa, comunque se questo è vero bisogna mettere mano al file mms.cfg:

# mkdir /etc/adobe

# cd /etc/adobe

# echo OverrideGPUValidation=true >> mms.cfg

la prima cosa che si nota è senza altro un utilizzo inferiore della cpu, per quanto riguarda la fluidità mi sembra che effettivamente ci sia un miglioramento, ma su questo per una questione non solo statistica spero che qualcuno faccia dei test e posti le proprie impressioni, giusto per avere ulteriori riscontri. Per tornare eventualmente indietro basta un semplice:

# rm /etc/adobe/mms.cfg

ps: compiz deve essere disabilitato

Controllare il mouse da remoto con iphone e linux

 

 

RemotePad è un'applicazione open source per il controllo del mouse della nostra Linuxbox direttamente dall' iphone. Quello che serve è l'installazione di RemotePad sia su Linux che su Iphone. Testato su Debian Squeeze con iphone 3g Jailbroken con firmware 4.1

 

# apt-get install libxtst-dev

$ mkdir remotepad
$ cd remotepad
$ wget
$ tar zxvf RemotePadServer-1.10-X11-Source.tgz
$ cd RemotePad\ Server/
$ cd X11
$ ./configure
$ make
# make install

 

lanciamo il server con:

$ remotepad

 

 

avviare RemotePad su iphone, ed inserire l'indirizzo ip indicato dal server.

Login e autenticazione facciale in Linux

 

PFA ovvero Pluggable Authentication Module for Face Authentication, provvede in maniera veloce all'autenticazione tramite una serie di scansioni fatti in precedenza del nostro viso. Io l'ho provato sul mio netbook Acer Aspire One, equipaggiato con Easy Peasy e devo dire che mi ha felicemente stupito, anche se un bug in fase di autenticazione l'ho già notato. Comunque lasciando perdere il discorso sulla sicurezza e sull'usabilità, diciamo che fa scena.

A vostro rischio e pericolo 🙂

Pacchetti necessari:

# apt-get install build-essential cmake qt4-qmake libx11-dev libcv-dev
# apt-get install libcvaux-dev libhighgui4 libhighgui-dev libqt4-dev libpam0g-dev

 

Installazione:

$ cd /tmp
$ wget
$ tar zxf pam-face-authentication-0.3.tar.gz
$ cd pam-face-authentication-0.3
$ mkdir build
$ cd build
$ cmake -D CMAKE_INSTALL_PREFIX=/usr ..
$ make
# make install

Configurazione

$ qt-facetrainer

si aprirà una finestra dove partirà il processo di acquisizione di più immagini del nostro viso, ne consiglio almeno 8. Abilitiamo PFA per sudo il login manager e GDM:

sudo sed -i '1i auth sufficient pam_face_authentication.so enableX' /etc/pam.d/sudo

sudo sed -i '1i auth sufficient pam_face_authentication.so enableX' /etc/pam.d/gdm

sudo sed -i '1i auth sufficient pam_face_authentication.so enableX' /etc/pam.d/gnome-screensaver

per chi usa KDE:

sudo sed -i '1i auth sufficient pam_face_authentication.so enableX' /etc/pam.d/kde

 

riavviamo e siamo pronti al login " facciale " 🙂

 

Benchmark bash dash ksh csh zsh

 

PoisonBit per lavori che sta facendo a voluto fare dei test per decidere quale shell usare, a questo proposito ha fatto un test per verificarne le performance. Io ho modificato questo script aggiungendo ulteriori shell. Lo script è il seguente:

 

#!/bin/bash

testdir=$HOME/test
mkdir -p "$testdir"
printf '#!/bin/dash --\n\n' > "$testdir/dash"
printf '#!/bin/bash --\n\n' > "$testdir/bash"
printf '#!/bin/ksh --\n\n'  > "$testdir/ksh"
printf '#!/bin/csh --\n\n'  > "$testdir/csh"
printf '#!/bin/zsh --\n\n'  > "$testdir/zsh"
chmod +x "$testdir"/*

for i in 1 10 100 1000 10000
do
    for shell in 'bash' 'dash' 'ksh' 'csh' 'zsh'
    do
        result=''
        printf "$shell\t$i\t"
        result="$(
            (time for ((x=0; x < $i; x++));
             do
                 "$testdir/$shell";
             done) 2>&1 | awk -F\  '/real/{print $2}'
        )"
        printf "$result\n"
    done
    printf -- '-------------------------\n'
done

 

salviamo come test-shell.sh

$ chmod a+x test-shell.sh

 

lo lanciamo con:

$ ./test-shell.sh

 

come si può vedere dai risultati il più performante è dash, ma questo era prevedibile, quello che è interessante sono proprio le differenze in termini numerici tra di loro.

 

edmond@debianbox:~$ ./testshell.sh
bash    1    0m0.002s
dash    1    0m0.001s
ksh    1    0m0.002s
csh    1    0m0.004s
zsh    1    0m0.003s
————————-
bash    10    0m0.021s
dash    10    0m0.009s
ksh    10    0m0.019s
csh    10    0m0.039s
zsh    10    0m0.032s
————————-
bash    100    0m0.202s
dash    100    0m0.088s
ksh    100    0m0.181s
csh    100    0m0.380s
zsh    100    0m0.294s
————————-
bash    1000    0m1.900s
dash    1000    0m0.867s
ksh    1000    0m1.793s
csh    1000    0m3.759s
zsh    1000    0m3.078s
————————-
bash    10000    0m19.689s
dash    10000    0m8.577s
ksh    10000    0m17.453s
csh    10000    0m36.365s
zsh    10000    0m29.948s

il vincitore è  Debian Almquist Shell (dash)

Linux Slot Machine in flash

 

 

 

 

 

                                                                         Premere spin

 

Poco tempo fa avevo parlato di Swftools, una serie di tools in grado di leggere e creare file.swf (flash), e come già detto in precedenza è un pò che lo conosco, ed in quel poco di tempo libero che mi rimane cerco  d'apprendere  qualche segreto in più. E proprio nella ricerca di ulteriori guide per la compilazione di un file.swf e le sue più svariate opzioni,, mi sono imbattuto in Distro Slot.e quindi l'ho scaricato per cercare di studiarlo. Ho fatto delle piccole modifiche e lo si può scaricare da qua. Quindi una volta installato Swftools:

$ tar xjvf Linux-slot-machine.tar.bz2

$ cd Linux-slot-machine

quindi compiliamo con:

$ swfc -o distro_slot.swf distro_slot.sc

e possiamo goderci la Linux Slot Machine in Flash 😉 per chi volesse solamente il file .swf può scaricarlo quà.

Il primo che riesce a fare un tris di Debian o altro è pregato di postare uno screenshot 🙂

Video installazione Debian Gnu/kFreeBsd

 

 

 

 

 

Ho voluto fare un video di installazione di Debian Gnu/kFreeBsd su virtualbox per far conoscere la semplicità del nuovo debian installer, ma soprattutto far vedere che funziona :). Diciamo che adesso a differenza della guida che ho fatto tempo fa alcuni bug sono stati risolti e a differenza di allora non dobbiamo mettere mano a xorg.conf aggiungendo delle  opzioni per farlo funzionare. Adesso rifacendo una nuova installazione su hard disk non ho avuto grossi problemi, la mini.iso che ho usata è questa  ed una volta finito l'installazione e riavviato, tutto è andato bene o quasi. Se al riavvio abbiamo lo schermo nero e vediamo soltanto il mouse, entriamo in ttyv1 o successive e comandiamo un:

# rm /tmp/.X0-lock

sinceramente non ho ancora provato a capire dove è il problema.

quindi:

$ startx

se all'avvio su dektop appare questo errore:

andare in /etc/fstab e commentare questa riga;

#fdesc           /dev/fd         fdescfs rw              0       0

ed aggiungiamo anche le nostre partizioni linux/dati inserendo qualcosa di simile, adattandolo alle vostre esigenze.

/dev/ad0s6     /mnt/dati       ext2fs   rw              0       1

Gnu/Linux……un sentimento reciproco 🙂 ….generazione morta 🙂

Converseen-convertire 100+ formati

 

 

Ho scoperto da poco Converseen, e devo dire che è un ottimo programma, anche se, come dice lo stesso autore italiano, c'è ancora qualche bug da sistemare. Comunque può risultare molto utile nell'ottimizzazione, conversione ( oltre 100 formati) e ridimensione di un gruppo di immagini. Io l'ho installato su Debian Squeeze/Sid con:

# apt-get install qt4-qmake imagemagick libmagick++3 libmagick++-dev

$ wget https://sourceforge.net/projects/converseen/files/Converseen/Converseen%200.3/converseen_0.3.tar.bz2/download

$ tar -xvf converseen_0.3.tar.bz2

$ cd converseen_0.3

$ qmake && make

# make install

Conoscere chi usa la memoria con lo script ps_mem.py

 

 

 

 

 

 

Questo script in pyton, ps_mem.py, può risultare molto utile ogni qual volta si ha bisogno di sapere quanta memoria ogni singolo programma occupa. Per chi volesse provarlo:

$ wget https://www.pixelbeat.org/scripts/ps_mem.py

# mv ps_mem.py /usr/local/sbin/

# chmod 755 /usr/local/sbin/ps_mem.py

lo lanciamo con:

# ps_mem.py

il risultato è una lista minuziosa.

root@debianbox:/home/edmond# ps_mem.py
 Private  +   Shared  =  RAM used    Program

112.0 KiB +  30.5 KiB = 142.5 KiB    portmap
128.0 KiB +  22.5 KiB = 150.5 KiB    gnome-pty-helper
140.0 KiB +  12.0 KiB = 152.0 KiB    sh
144.0 KiB +  22.0 KiB = 166.0 KiB    atd
144.0 KiB +  23.0 KiB = 167.0 KiB    acpid
164.0 KiB +  19.5 KiB = 183.5 KiB    init
160.0 KiB +  33.5 KiB = 193.5 KiB    hald-addon-rfkill-killswitch
164.0 KiB +  33.5 KiB = 197.5 KiB    hald-addon-leds
164.0 KiB +  34.5 KiB = 198.5 KiB    hald-addon-input
168.0 KiB +  35.5 KiB = 203.5 KiB    hald-addon-acpi
192.0 KiB +  53.5 KiB = 245.5 KiB    rpc.statd
256.0 KiB +  14.0 KiB = 270.0 KiB    ssh-agent
220.0 KiB +  50.5 KiB = 270.5 KiB    cron
240.0 KiB +  44.5 KiB = 284.5 KiB    hald-addon-usb-csr
268.0 KiB +  30.5 KiB = 298.5 KiB    hald-runner
272.0 KiB +  29.5 KiB = 301.5 KiB    dbus-launch
332.0 KiB +  14.0 KiB = 346.0 KiB    hddtemp
332.0 KiB +  48.5 KiB = 380.5 KiB    kerneloops
364.0 KiB +  48.0 KiB = 412.0 KiB    usbmuxd
336.0 KiB + 103.0 KiB = 439.0 KiB    gvfsd-burn
352.0 KiB + 119.5 KiB = 471.5 KiB    su
448.0 KiB +  43.0 KiB = 491.0 KiB    exim4
444.0 KiB +  65.5 KiB = 509.5 KiB    gvfsd-metadata
516.0 KiB +  17.0 KiB = 533.0 KiB    dhclient
460.0 KiB +  89.0 KiB = 549.0 KiB    gvfs-gphoto2-volume-monitor
468.0 KiB + 108.0 KiB = 576.0 KiB    getty (6)
480.0 KiB + 105.5 KiB = 585.5 KiB    gdm3
472.0 KiB + 126.5 KiB = 598.5 KiB    bluetoothd
464.0 KiB + 156.0 KiB = 620.0 KiB    gvfs-afc-volume-monitor
664.0 KiB +  71.5 KiB = 735.5 KiB    modem-manager
504.0 KiB + 252.0 KiB = 756.0 KiB    avahi-daemon (2)
592.0 KiB + 186.0 KiB = 778.0 KiB    gdm-session-worker
676.0 KiB + 236.0 KiB = 912.0 KiB    wpa_supplicant
792.0 KiB + 156.5 KiB = 948.5 KiB    bonobo-activation-server
820.0 KiB + 169.0 KiB = 989.0 KiB    gvfs-gdu-volume-monitor
968.0 KiB +  52.5 KiB =   1.0 MiB    rsyslogd
868.0 KiB + 206.0 KiB =   1.0 MiB    gdm-simple-slave
352.0 KiB + 741.0 KiB =   1.1 MiB    udevd (3)
904.0 KiB + 225.0 KiB =   1.1 MiB    hald-addon-storage (6)
  1.0 MiB +  94.0 KiB =   1.1 MiB    gvfsd
980.0 KiB + 176.5 KiB =   1.1 MiB    console-kit-daemon
728.0 KiB + 436.5 KiB =   1.1 MiB    upowerd
  1.1 MiB + 105.0 KiB =   1.2 MiB    gnome-keyring-daemon
  1.0 MiB + 203.0 KiB =   1.2 MiB    gvfsd-trash
  1.0 MiB + 162.5 KiB =   1.2 MiB    polkitd
944.0 KiB + 303.5 KiB =   1.2 MiB    udisks-daemon (2)
904.0 KiB + 439.5 KiB =   1.3 MiB    gvfsd-afc
  1.0 MiB + 322.0 KiB =   1.3 MiB    kerneloops-applet
  1.2 MiB + 281.5 KiB =   1.5 MiB    NetworkManager
  1.5 MiB + 210.0 KiB =   1.7 MiB    cupsd
  1.3 MiB + 457.5 KiB =   1.8 MiB    gdu-notification-daemon
  1.4 MiB + 368.0 KiB =   1.8 MiB    seahorse-agent
  1.5 MiB + 324.0 KiB =   1.8 MiB    dbus-daemon (2)
  1.5 MiB + 425.5 KiB =   1.9 MiB    gnome-screensaver
  1.8 MiB + 748.0 KiB =   2.6 MiB    multiload-applet-2
  1.9 MiB + 804.5 KiB =   2.7 MiB    trashapplet
  1.9 MiB + 796.5 KiB =   2.7 MiB    polkit-gnome-authentication-agent-1
  2.3 MiB + 721.0 KiB =   3.0 MiB    nm-applet
  2.2 MiB + 866.0 KiB =   3.0 MiB    update-notifier
  2.3 MiB + 803.5 KiB =   3.0 MiB    gtk-window-decorator
  2.3 MiB + 806.0 KiB =   3.1 MiB    x-session-manag
  3.1 MiB +  65.5 KiB =   3.2 MiB    hald
  3.3 MiB +  96.0 KiB =   3.4 MiB    gconfd-2
  3.0 MiB + 722.0 KiB =   3.7 MiB    bash (2)
  3.3 MiB + 805.0 KiB =   4.1 MiB    gnome-terminal
  3.5 MiB + 936.5 KiB =   4.4 MiB    gnome-settings-daemon
  4.4 MiB +   1.1 MiB =   5.5 MiB    mixer_applet2
 11.9 MiB + 847.0 KiB =  12.7 MiB    coherence
 17.3 MiB +   2.1 MiB =  19.4 MiB    rhythmbox
 17.4 MiB +   2.5 MiB =  19.9 MiB    gnome-panel
 34.2 MiB +   5.5 MiB =  39.7 MiB    nautilus
 47.1 MiB +   2.5 MiB =  49.6 MiB    compiz
 46.3 MiB +   4.8 MiB =  51.0 MiB    Xorg
244.8 MiB +   2.6 MiB = 247.4 MiB    firefox-bin

———————————
                        524.4 MiB
=================================

 Private  +   Shared  =  RAM used    Program

Swftools su Debian Squeeze/Sid

 

 

 

 

 

 

 

Swftools include una serie di strumenti che servono per leggere file.swf  (Adobe Flash), e riesce a creare,  tra l'altro partendo da delle  immagini, o da pdf ,  un file in flash. Comunque qua c'è la documentazione dei vari tools. Io è un pò che lo conosco e se non ricordo male prima si trovava nei repo, ma adesso non so come mai, ma non esiste più…va bè. Comunque ho voluto installarlo e dopo qualche problema di librerie mancanti ed errori vari, sono riuscito a compilarlo.

Requisiti:

apt-get install libgif-dev xpdf libfreetype6 libfreetype6-dev libjpeg62 libjpeg8 libjpeg8-dev

verificare se manca qualcos'altro.

Scaricare compilare installare

$ wget https://www.swftools.org/swftools-0.9.1.tar.gz

$ tar -zvxf swftools-0.9.1.tar.gz

$ cd swftools-0.9.1

$ ./configure --prefix=/usr/local

$ make

se c'è un errore come questo:

jpeg.c:463: error: conflicting types for ‘jpeg_load_from_mem’
jpeg.h:15: error: previous declaration of ‘jpeg_load_from_mem’

risolvere editando il file jpeg.c e modificarlo da così:

int jpeg_load_from_mem(unsigned char*_data, int size, unsigned char*dest, int width, int height)

a così:

int jpeg_load_from_mem(unsigned char*_data, int _size, unsigned char**dest, int*width, int*height)

un altro errore che potrebbe verificarsi è il seguente:

make[2]: *** No rule to make target `xpdf-*tar.gz', needed by `xpdf/Gfx.cc'.  Stop.

si risolve con:

$ cd lib/pdf

$ wget

$ perl inject-xpdf.pl xpdf-3.02.tar.gz

se alla fine non ci sono errori siamo pronti per l'installazione, in caso di altri errori postare:

# make install oppure make checkinstall

a questo punto siamo pronti ad ottenere un immagine in flash come sopra ,creando un file.sc ed inserendo all'interno:

.flash filename="file.swf" version=5 fps=25
   
    .jpeg s1 "file.jpeg" quality=80%

    .put s1 x=50 y=50 scalex=110 scaley=110
    .frame 50
    .change s1 x=0 y=0 scalex=210 scaley=210 red=-1+255 green=-1+255 blue=-1+255 #invert
    .frame 100
    .change s1 x=100 y=50 scalex=110 scaley=110 red=0 green=+0 blue=+0 #remove red
    .frame 150
    .change s1 x=0 y=0 scalex=210 scaley=210 red=+0 green=2 blue=-1+255 #amplify green, invert blue
    .frame 200
    .change s1 x=50 y=100 scalex=110 scaley=110 red=2-128 green=-2+255 blue=+0.7+40 #alien glow
    .frame 250
    .change s1 x=0 y=0 scalex=210 scaley=210 red=8-1024 green=8-1024 blue=8-1024 #palette reduce
    .frame 300
    .change s1 x=0 y=0 scalex=210 scaley=210 red=+0 green=+0 blue=+0 #back to normal
    .frame 350
    .change s1 x=105 y=105 scalex=0 scaley=0 luminance=0 #fadeout
.end

quindi diamo il comando: comando:

$ swfc file.sc

Invece se vogliamo convertire un file.pdf in file .swf utilizziamo l'utility pdf2sw:

$ pdf2swf file.pdf -o file.swf

 

Comunque sul sito si trovano vari esempi di utilizzo per i vari strumenti.