sábado, 12 de julho de 2014

Compilando libass com FFmpeg no CentOS 6.x

Neste post iremos ver como compilar a biblioteca para renderização de legendas libass ( ASS/SSA Advanced Substation Alpha/Substation Alpha ) para ser utilizada com o FFmpeg. Para este post eu utilizei a distribuição CentOS 6.x

Este post é uma continuação do post Compilando o FFmpeg no CentOS 6.x. O esquema de diretórios e compilação são os mesmos, se tiver dúvidas ao seguir esse guia certifique-se de ler o post anterior

Dependencias


Para compilar o libass precisaremos instalar os pacotes necessários, vejamos:

autoconf 2.64 ou superior

O pacote autoconf 2.64 ou superior é necessário para a compilação do fribidi logo abaixo.
cd ~/ffmpeg_sources
wget ftp://ftp.gnu.org/gnu/autoconf/autoconf-2.68.tar.xz
cd autoconf-2.68
./configure
make
# make install

fribidi

O GNU FriBidi é uma implamentação do Unicode Bidirectional Algorithm (bidi) necessário para a compilação do libass
cd ˜/ffmpeg_sources
git clone git://anongit.freedesktop.org/fribidi/fribidi
cd fribidi
./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin"
make
make install

fontconfig

O pacote fontconfig é necessário para a compilação da biblioteca libass.
# yum install fontconfig fontconfig-devel

libass

cd ~/ffmpeg_sources
git clone https://github.com/libass/libass.git
cd libass
PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin"
make
make install

FFmpeg

Agora que temos o libass com todas as dependencias resolvidas, iremos habilitar o libass no FFmpeg
cd ~/ffmpeg_sources
cd ffmpeg
./configure --prefix="$HOME/ffmpeg_build" --extra-cflags="-I$HOME/ffmpeg_build/include" --extra-ldflags="-L$HOME/ffmpeg_build/lib" --bindir="$HOME/bin" --extra-libs=-ldl --enable-gpl --enable-nonfree --enable-libfdk_aac --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libass
make
make install

Utilizando o FFmpeg

Como a compilação do ffmpeg é local e privada quando chamar-mos o ffmpeg não será possível localizar a biblioteca libass nos caminhos do sistema. Para utilizar o ffmpeg com libass ativado precisaremos apontar a variável de ambiente LD_LIBRARY_PATH para o diretório onde o libass foi compilado. Adicione as seguintes linhas ao seu arquivo .bashrc
LD_LIBRARY_PATH=$HOME/ffmpeg_build/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
Assim o seu shell saberá onde as bibliotecas libass foi instalada.
Ao chamar o ffmpeg na sua linha de comando deverá aparecer a opção --enable-libass no resultado do comando
ffmpeg version git-2014-07-12-66558fe Copyright (c) 2000-2014 the FFmpeg developers
  built on Jul 12 2014 19:30:58 with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-4)
  configuration: --prefix=/home/rafael.baena/ffmpeg_build --extra-cflags=-I/home/rafael.baena/ffmpeg_build/include --extra-ldflags=-L/home/rafael.baena/ffmpeg_build/lib --bindir=/home/rafael.baena/bin --extra-libs=-ldl --enable-gpl --enable-nonfree --enable-libfdk_aac --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libass
Postar um comentário