How to convert video to animated gifs from a linux console

Hi,

Today I’m going to show you a very small script that allows you to convert any video (as long as it is supported by mplayer) to a GIF.

Required tools:

* mplayer

* convert

 

mplayer is popular media player available for multiple operating systems that support a wide range of video formats. The convert tool is an utility that lets you convert between multiple image formats among other definitions.  Since the mplayer takes screenshots using jpeg format, we need to use the convert tool to do the convertion to aGIF format.

 

Copy the following code, save it to a file and change its permissions (chmod a+x) and you are ready to roll :)

 

 

#!/bin/sh
TMPDIR=/tmp/animated
shopt -s nocaseglob
if [ ! -d "$TMPDIR" ]
then
        mkdir $TMPDIR
fi
 
\rm $TMPDIR/* &> /dev/null
 
if [ $# -lt 3 ]
then
        echo -e "Usage: $0    []\nExample:\n$0 00:15:11 10 myvideo.avi 320:240"
        exit 1
fi
 
if [ -n "$4" ]
then
        SCALE="scale=$4"
fi
 
echo "Generating screenshots. Please be patitent..."
mplayer -ao null -ss $1 -endpos $2 $3 -vo jpeg:outdir=$TMPDIR/ -vf $SCALE &> /dev/null
if [ -f $TMPDIR/00000001.jpg ]
then
        echo "Finished generating frames. Assembling the animated GIF..."
        convert -delay 5 $TMPDIR/*.jpg $TMPDIR/output.gif
        echo "Done! Please check the $TMPDIR/output.gif"
        exit 0
else
        echo -e "Oops\! Something went wrong and the frames were not generated. Check your parameters\!"
        exit 1
fi

Just try it and let me know ;-)

Problems using nvidia drivers under Ubuntu

After upgrading my HTPC to Ubuntu 10.04, nvidia drivers stopped working without any reason. After googling a bit, all the answers pointed to a problem related with Ubuntu upgrade system not updating restricted drivers. I have tried manually to update and use all the available versions, but without any success…until I found the cause and solution.

It happens that Ubuntu does not remove old drivers correctly, leaving you with multiple versions which were confusing the operating system. The solution was to purge the system from all nvidia drivers and reinstall just one of them.

You can run the following commands to clean the system:

sudo dpkg --get-selections | grep nvidia | grep -v deinstall | awk '{print $1}' | xargs sudo apt-get remove -y
sudo apt-get install nvidia-current
sudo nvidia-xconfig

sudo reboot

The system will then reboot and if everything is OK, Ubuntu will be as good as new.

As belas das placas gigabit da Asus…

Para quem está a pensar em adquirir uma placa de rede gigabit da Asus para utilizar em sistemas operativos *nix que pense duas vezes em fazê-lo.

O chipset utilizado é o IP1000 que além de não ser suportado directamente pelo kernel e os drivers fornecidos no cd de instalação são tão antigos que é impossível compilar com um kernel relativamente recente (2.6.22 e superiores pelo menos).

Se mesmo assim vão comprar uma placa destas, usem a ultima versão dos drivers que está no site do fabricante do chipset, descomprimam para uma pasta  e executem os seguintes comandos :

make all

cp ipg.ko /lib/modules/`uname -r`/kernel/drivers/net

depmod

modprobe ipg

Podem sacar a ultima versão aqui.

Compilar php-4.4.9 no Fedora Core 9 64 bits

O PHP4 já foi descontinuado à muito tempo mas infelizmente ainda é necessário em algumas plataformas que não são actualizadas e necessitam desta versão para não ficarem quebradas no PHP5.

A última versão do PHP4 lançada foi a 4.4.9 e é impossível instalar esta versão em conjunto com o Fedora Core 9.

Depois de satisfeitas as dependências, a configuração do php-4.4.9 continua à procura das algumas libs no sitio errado, ou seja, /usr/lib ao contrario de /usr/lib64.

Para agravar o problema, as flags –libdir ou –with-libdir não parecem surtir efeito pois apesar de se indicar o directório /lib64 a configuração continua à procura das libs na pasta /lib.

Para se corrigir isto convém pode-se optar por duas opções :

1ª Copiar todas as bibliotecas que o PHP não encontra e que se encontram em /usr/lib64 e que são necessárias em /usr/lib (podem usar o utilitário strace para saber exactamente o caminho completo necessário).
2ª Instalar a versão de 32 bits das mesmas bibliotecas e criar links simbólicos para a versão base de cada biblioteca (ex. /usr/lib/libjpeg.so.5.2 -> /usr/lib/libjpeg.so).

Só depois de insto corrigido é que será possível. Em alternativa podem optar por uma versão mais antiga que não terá este problemas (por ex, a 4.4.4).

Ubuntu: Auto-login + wifi

Quem usa Ubuntu como base para um HTPC já deve ter passado por esta dor de cabeça :

Como é que posso fazer login automático no Gnome e ligar-me automaticamente numa rede wireless ?

Os forums do ubuntu estão repletos de dúvidas semelhantes, mas a verdade é que no karmic nenhuma delas funciona (pelo menos no que toca a autenticação automática na rede wireless). Todos aqueles truques de acrescentar algumas linhas ao PAM são ignoradas pelo porta-chaves do gnome nesta versão. A dica para conseguir autenticar numa rede wifi passa por criar um novo porta-chaves sem password.

 

0º Utilizem o gdmsetup para configurar o login automático no Ubuntu.

 

1º Eliminem (ou movam se quiserem guardar de backup) todas as entradas dentro da pasta .gnome2/keyrings/ que se encontra na vossa home.

 

2º Reiniciem o computador. No próximo boot já será feito o login automático no Ubuntu. Depois deste login, irá aparecer uma caixa a pedir a password da rede wireless. Insiram-na normalmente e cliquem em OK. Após isto, irá aparecer novamente a caixa do gnome-keyring para criar um novo porta chaves. O segredo está aqui. Criem um porta chaves sem password e desta forma nunca mais vos vai chatear. A partir de agora o Ubuntu efectuará login automático incluindo a vossa rede wireless favorita.

 

PS: Tenham em atenção que desta forma as passwords armazenadas neste porta chaves serão guardadas sem encriptação, por isso cuidado com os conteúdos sensíveis.

Instalar uma EasyCap DC60 em linux

A EasyCap DC60 é uma placa de captura de vídeo super económica. Quem anda nas andanças do ebay sabe perfeitamente que a pode comprar por uma pechincha (algo tipo 10 euros).  A grande chatice é que pode ser uma verdadeira dor de cabeça colocar a funcionar em sistemas operativos *nix. Depois de muitas dores de cabeça,  isto foi o que funcionou comigo :

1º Fazer o download da ultima versão disponível via SVN:

svn co https://syntekdriver.svn.sourceforge.net/svnroot/syntekdriver syntekdriver 

 

2º Entrar na pasta driver e compilar  :

cd syntekdriver/trunk/driver && make

 

3º Copiar o driver para a respectiva pasta :

cp stk11xx.ko /lib/modules/$(uname -r)/kernel/drivers/media/video/

 

4º Actualizar os módulos

depmod -a

 

5º Inicializar o modulo e começar a utilizar. Aconselho a passar os seguintes parâmetros (norm=1 fps=25) pois a mim não me funcionou sem eles.

modprobe stk11xx norm=1 fps=25

 

Finalizado !

Para testarem podem usar o mplayer :

 

mplayer tv:// -tv driver=v4l2:width=720:height=576:fps=25:outfmt=rgb24:device=/dev/video0