sexta-feira, 28 de maio de 2010

MeeGo 1.0

Versão 1.0 do Meego já se encontra disponível para download.
http://meego.com/downloads


De momento é possível instalar o MeeGo nos seguintes equipamentos:
* Asus EeePC 901, 1000H, 1005HA, 1008HA, EeePC 1005PE, Eeetop ET1602
* Dell mini10v, Inspiron Mini 1012
* Acer Aspire One D250, AO532-21S, Revo GN40, Aspire 5740-6025
* Lenovo S10
* MSI U130, AE1900
* HP mini 210-1044
* Toshiba NB302
Fonte: http://meego.com/

Procedimento para instalar:
http://meego.com/devices/netbook/installing-meego-your-netbook
O Projecto Meego foi anunciado à cerca de dois 3 meses atrás. Em pouco tempo, fizeram um bom trabalho. O site do projecto está muito bem organizado e documentado. E o MeeGo tem um aspecto muito atractivo, e intuitivo.

quarta-feira, 26 de maio de 2010

Compilar o ffmpeg com codec VP8

Nota: 16/06/2010 A nova versão do FFmpeg (0.6) já tem suporte a VP8. Já não é necessário usar este script para aplicar o patch.

Como já sabem, o Google liberou o codec VP8.
Eu fiz o dowload do código fonte do codec e apliquei o patch para o ffmpeg que está no site do WebM. O libvpx compilou... mas o "make install" não instalou os executáveis e "lib's", nas pastas do sistema. Tive de copiar os "executáveis" do libvpx para a raiz do sistema. Para contornar este problema criei um pacote deb "manualmente". (O checkinstall também dá erro.)

Por isso fiz um script para ser mais fácil o processo de instalação do ffmpeg no Ubuntu (9.10 ou 10.09) com suporte a x264 e libvpx_vp8.

Algumas considerações:
  • O script usa versões "snapshot" do ffmpeg x264 e libvpx_vp8, para reduzir a possibilidade de ocorrem incompatibilidades e erros.
  • Se o seu processador for de 64bit, o script optimiza o comando "./configure".
  • Só testei o script no Ubuntu 9.10 mas deve funcionar sem problemas no Ubuntu 10.04. A única diferença é o "pacote" libxvidcore4-dev que mudou de nome para libxvidcore-dev no Ubuntu 10.04.
  • Este script é provisório, é apenas para instalar o libvpx nesta fase de integração com o ffmpeg. Futuramente não será necessário aplicar "patches" no ffmpeg.
  • Utilize o script por sua própria conta e risco. Recomendo a sua utilização num VM ou através do liveCD.



#!/bin/bash
#tuxmind.blogspot.com
#Licença:
#http://creativecommons.org/licenses/by-nc-sa/3.0/
##########################################################
#Recompilar ffmpeg (vp8 x264) Ubuntu 10.04 / 9.10.
##########################################################


rec_ffmpeg() {

erro() {
echo "ERRO. Não foi possível aceder ao servidor. Tente mais tarde."
exit
}

cd ~

if [ -e recomp_ffmpeg ]
then
echo "recomp_ffmpeg já existe"
else
mkdir recomp_ffmpeg
fi
cd recomp_ffmpeg

#adicionar repositorios e pacotes necessários
dependencias() {
VERSAO=`cat /etc/lsb-release | grep DISTRIB_RELEASE | cut -d= -f 2`
case $VERSAO in
9.10 ) LIBXVIDCORE_DEV="libxvidcore4-dev" ;;
10.04 ) LIBXVIDCORE_DEV="libxvidcore-dev" ;;
*) echo "ERRO! O script só funciona no Ubuntu, nas versões 9.10 e 10.04"; exit ;;
esac
#adicionando repositorios universe multiverse
sudo software-properties-gtk -e universe
sudo software-properties-gtk -e multiverse
sudo apt-get update

#purge libvpx :P
sudo apt-get purge -y ffmpeg x264 libx264-dev libvpx
sudo apt-get update
#Nome do pacote alterado no ubuntu 10.04 é "libxvidcore-dev", ubuntu 9.10 era "libxvidcore4-dev"
sudo apt-get install -y build-essential subversion checkinstall yasm texi2html libfaac-dev libfaad-dev libmp3lame-dev libtheora-dev $LIBXVIDCORE_DEV libsdl1.2-dev libvorbis-dev libopencore-amrwb-dev libopencore-amrnb-dev git-core libx11-dev libxfixes-dev zlib1g-dev || erro
echo "dependencias-ok" > dep.log
}

if [ -e dep.log ]
then
echo "dependencias-ok"
else
dependencias
fi

#x264
if [ -e x264-snapshot-20100524-2245.tar.bz2 ]
then
echo "x264-ok"
else


#git clone git://git.videolan.org/x264.git
wget -t 10 -w 20 ftp://ftp.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-20100524-2245.tar.bz2 || erro
tar xjf x264-snapshot-20100524-2245.tar.bz2
mv x264-snapshot-20100524-2245 x264
cd x264

#./configure
#64bit ou 32bit?
if [ `uname -m` == x86_64 ]
then
./configure --enable-pic
else
./configure
fi

#./configure --enable-pic
make
sudo checkinstall --fstrans=no --install=yes --pkgname=x264 --pkgversion "2:0.96.1602+git69588a7" --default

cd ..
fi


#libvpx
if [ -e libvpx-0.9.0.tar.bz2 ]
then
echo "libvpx-0.9.0-ok"
else


#VP8 Google :)
#a versão no git nem sempre é estável :P
#git clone git://review.webmproject.org/libvpx.git
wget -t 10 -w 20 http://webm.googlecode.com/files/libvpx-0.9.0.tar.bz2 || erro
tar xjf libvpx-0.9.0.tar.bz2
cd libvpx-0.9.0

#./configure
#64bit ou 32bit?
if [ `uname -m` == x86_64 ]
then
./configure --disable-install-docs --target=x86_64-linux-gcc --enable-pic --enable-vp8
#./configure --disable-install-docs --target=x86_64-linux-gcc --enable-pic --enable-install-bins=/usr/local/bin --enable-install-libs=/usr/local/lib --enable-install-srcs=/usr/local/src -enable-VP8
#DEBIAN/control
ARQ="amd64"
VPX="vpx-vp8-nodocs-x86_64-linux-v0.9.0/*"
else
./configure --disable-install-docs --target=x86-linux-gcc --enable-vp8
#DEBIAN/control
ARQ="i386"
VPX="vpx-vp8-nodocs-x86-linux-v0.9.0/*"
fi

make install
#criar deb, porque o parametro "install" não instalou o libvpx. bug no makefile? :P
mkdir -p PACKAGE/{usr/local,}
cp -r $VPX PACKAGE/usr/local/
#libvpx-src :P
#rm -rf PACKAGE/usr/local/build/
#rm -rf PACKAGE/usr/local/src/
rm -rf PACKAGE/usr/local/md5sums.txt
mkdir PACKAGE/DEBIAN

cat > PACKAGE/DEBIAN/control << EOF
Package: libvpx
Priority: extra
Maintainer: tuxmind.blogspot.com
Architecture: $ARQ
Version: 0.9.0
Depends:
Provides: libvpx
Description: codecVP8
EOF

sudo dpkg-deb -b PACKAGE/ libvpx-ubuntu.deb
sudo dpkg -i libvpx-ubuntu.deb

cd ..
fi


svn_ffmpeg() {

#svn checkout svn://svn.ffmpeg.org/ffmpeg/trunk ffmpeg
svn checkout -r 23165 svn://svn.ffmpeg.org/ffmpeg/trunk ffmpeg || erro

}

if [ -e ffmpeg ]
then
echo "ffmpeg-ok"
else
svn_ffmpeg
fi

#Patch ffmpeg
if [ -e mplayer-vp8-encdec-support-r2.tar.bz2 ]
then
echo "ffmpeg-patch-ok"
exit
else
wget -t 10 -w 20 http://webm.googlecode.com/files/mplayer-vp8-encdec-support-r2.tar.bz2 || erro
tar xjf mplayer-vp8-encdec-support-r2.tar.bz2
cp -r mplayer-vp8-encdec-support/*.diff ffmpeg
cp -r mplayer-vp8-encdec-support/ffmpeg-only/*.diff ffmpeg
cd ffmpeg
for patchs in *.diff; do patch -p0 < $patchs ;done
echo "Patch ok"
fi

#./configure
#64bit ou 32bit?
if [ `uname -m` == x86_64 ]
then
./configure --enable-gpl --enable-nonfree --enable-pthreads --enable-libfaac --enable-libfaad --enable-libmp3lame --enable-libtheora --enable-libx264 --enable-libxvid --enable-avfilter --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvorbis --enable-x11grab --enable-version3 --enable-libvpx-vp8 --arch=x86_64
else
./configure --enable-gpl --enable-nonfree --enable-pthreads --enable-libfaac --enable-libfaad --enable-libmp3lame --enable-libtheora --enable-libx264 --enable-libxvid --enable-avfilter --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvorbis --enable-x11grab --enable-version3 --enable-libvpx-vp8
fi

make
sudo checkinstall --fstrans=no --install=yes --pkgname=ffmpeg --pkgversion "4:SVN-r23165" --default

}

##########################################################
#INICIAR SCRIPT
##########################################################

rec_ffmpeg xargs sudo
echo "O script terminou :P"
exit



Importante: Para ter a certeza que o script "chegou ao fim" aguarde pela mensagem: "O script terminou :P".

Depois de instalar faça um teste:

ffmpeg -i entrada.mp4 -sameq -vcodec libvpx_vp8 -acodec libvorbis saida.webm

Para ver o resultado use o ffplay:

ffplay saida.webm

Nos testes que realizei, achei a relação qualidade/compressão muito boa. É a minha opinião pessoal. Porque não fiz uma comparação com base cientifica.
Outra coisa que notei é que o "encoder" é muito lento. Talvez a integração com o ffmpeg, ainda não esteja perfeita.

Sugestões são bem vindas. Também gostaria de saber se posso fazer alguma coisa para melhorar o desempenho do libvpx no ffmpeg, ou se estou a esquecer de alguma coisa.

EDIT: Já fiz um teste no Ubuntu 10.04 versão i386, e funcionou.

quinta-feira, 20 de maio de 2010

Google libera o codec vp8

EDIT: (26 de maio de 2010) Veja aqui como compilar o ffmpeg com vp8

O Google Liberou ontem o Codec VP8. O codec de vídeo VP8 é agora open-source, e utiliza a licença BSD.
São boas noticias para o html5. A Google, Mozilla e Opera lançaram um projecto com o nome de WebMproject, que já tem o apoio e a participação de algumas empresas de "peso". (AMD, ARM, Nvidia, Skype etc...) O WebM utiliza o codec VP8 para compressão de vídeo, e o Vorbis para a compressão do áudio, e usa um "contentor" baseado no Matroska.

Eu ontem já estive a testar o codec VP8 no ffmpeg (Ubuntu).
Na página do WebMproject está disponível um patch para o ffmpeg. http://code.google.com/p/webm/downloads/list
Só que ocorreu um erro durante a instalação do libvpx. Ao que parece o problema está no Makefile. Porque o "configure" funciona, mas depois não instala o libvpx com o comando "Make Install". Tive de copiar manualmente os executáveis e livrarias do libvpx para as pasta /usr/local/bin, lib e include. Só assim é que consegui compilar o ffmpeg com êxito.
Mas futuramente esse problema será resolvido, porque o libvpx poderá ser incluído em futuras versões do ffmpeg. E claro... vão ser feitas melhorias na integração com a libvpx.

quinta-feira, 13 de maio de 2010

Ubuntu Light

A Canonical lançou uma nova versão do Ubuntu, com nome de "Ubuntu Light". O objectivo é ser usado por OEMs em dual boot com Windows. O Ubuntu Light é um sistema muito leve que usa um interface optimizada (Unity), e apenas demora 7 segundos a iniciar.

Será que a "base" deste novo "sistema" tem alguma coisa do Chome OS, que a Canonical está a ajudar a desenvolver? http://tuxmind.blogspot.com/2009/11/parceria-google-canonical.html

Saiba mais sobre o Ubuntu Light http://www.canonical.com/products/unity