![Como construir FFmpeg com Freetype2 para Android](https://rvso.com/image/1438147/Como%20construir%20FFmpeg%20com%20Freetype2%20para%20Android.png)
No OSX Yosemite estou tentando construir o FFmpeg com a biblioteca freetype incluída (preciso dela para o filtro drawtext). Infelizmente não consigo configurar o ffmpeg corretamente e cada tentativa termina com o erro "freetype não encontrado".
- Construir FFmpeg-2.5.3 simples sem freetype funciona perfeitamente bem (seguidoessetutorial)
- Construir o Freetype-2.5.3 também funciona bem (seguidoessetutorial)
- Locais de biblioteca extras incluídos, onde o freetype construído está localizado,
assim:
--extra-ldflags="-L$PREFIX/lib"
--extra-cflags="-I$PREFIX/include -I$PREFIX/include/freetype2"
./build_android.sh
acaba comERROR: freetype2 not found
build_android.sh:
#!/bin/bash
NDK=$HOME/Desktop/adt/android-ndk-r10d
SYSROOT=$NDK/platforms/android-9/arch-arm/
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/darwin-x86_64
function build_one
{
./configure \
--prefix=$PREFIX \
--enable-shared \
--disable-static \
--enable-libfreetype \
--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
--target-os=linux \
--arch=arm \
--enable-cross-compile \
--sysroot=$SYSROOT \
--extra-cflags="-Os -fpic $ADDI_CFLAGS" \
--extra-ldflags="$ADDI_LDFLAGS" \
$ADDITIONAL_CONFIGURE_FLAG
make clean
make
make install
}
CPU=arm
PREFIX=$(pwd)/android/$CPU
ADDI_CFLAGS="-marm -I$PREFIX/include"
ADDI_LDFLAGS="-L$PREFIX/lib"
build_one
Últimas 3 linhas de config.log :
require_libfreetype
false --exists --print-errors freetype2
ERROR: freetype2 not found
Agradecemos antecipadamente (e desculpe pelo meu péssimo inglês)
PS: Verifiquei as fontes de patch no projeto Guardian e encontrei isto:
# this is a fake pkg-config since ffmpeg requires pkg-config if you want to
# include external libraries like libfreetype or libass. The Android NDK does
# not provide any kind of pkg-config.
Isso significa que tenho que mudar para o Linux? O pkg-config não está instalado no OSX?
algakzru$ pkg-config --version
0.28
Responder1
Consegui que isso funcionasse com a versão do projeto Guardian do ffmpeg build (para uma saída de linha de comando). Veja meu garfo aqui:
https://github.com/touchlab/android-ffmpeg
Essencialmente, você precisa configurar o ffmpeg para usar o fake-pkg-config e modificá-lo para ver o parâmetro 3 em vez do parâmetro 2 (que está no meu fork). Existem algumas instruções no topo da versão bifurcada. Acabei de executar uma compilação de teste e, de acordo com isso, você pode ignorar a parte sobre como corrigir os comentários em ffmpeg/libavutil/arm/intmath.h. Basta fazer a alteração ffmpeg/configure.
Originalmente, a alteração do ffmpeg/configure foi feita com um patch em config_ffmpeg.sh, mas removi totalmente os patches e não fiz um novo. Os patches não eram mais válidos após a atualização das versões do submódulo.
Além disso, para referência, estou usando a versão ndk r10c.
ffmpeg, freetype2 e x264 devem ser master a partir de hoje (08/02/2015). Posso eventualmente fixá-los em uma versão, mas não está no topo da minha lista de prioridades, então...