Как собрать FFmpeg с Freetype2 для Android

0

На OSX Yosemite я пытаюсь собрать FFmpeg с включенной библиотекой freetype (она мне нужна для фильтра drawtext). К сожалению, я не могу правильно настроить ffmpeg, и каждая попытка заканчивается ошибкой «freetype not found».

  1. Строительная равнина FFmpeg-2.5.3 без freetype работает отлично (следуют этот руководство)
  2. Сборка Freetype-2.5.3 тоже отлично работает (следил этот руководство)
  3. Включены дополнительные места в библиотеках, где расположен встроенный тип freetype,

как это:

--extra-ldflags="-L$PREFIX/lib" 
--extra-cflags="-I$PREFIX/include -I$PREFIX/include/freetype2"
  1. ./build_android.sh заканчивается ERROR: 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

Последние 3 строки config.log:

require_libfreetype
false --exists --print-errors freetype2
ERROR: freetype2 not found

Заранее спасибо (и извините за мой плохой английский)

PS: я проверил источники патчей в Guardian-Project и нашел это:

# 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.

Значит ли это, что я должен перейти на Linux? Разве pkg-config не установлен в OSX?

algakzru$ pkg-config --version
0.28
阿尔曼
источник

Ответы:

0

Я получил это для работы с версией проекта Guardian сборки ffmpeg (для вывода из командной строки). Смотрите мою вилку здесь:

https://github.com/touchlab/android-ffmpeg

По сути, вам нужно настроить ffmpeg на использование fake-pkg-config и изменить его так, чтобы он смотрел на параметр 3 вместо параметра 2 (который находится в моем форке). В верхней части раздвоенной версии есть несколько инструкций. Я только что выполнил тестовую сборку, и в соответствии с этим вы можете игнорировать часть о исправлении комментариев в ffmpeg / libavutil / arm / intmath.h. Просто внесите изменения в ffmpeg / configure.

Первоначально изменение ffmpeg / configure было сделано с помощью патча в config_ffmpeg.sh, но я полностью удалил патчи и не сделал нового. Патчи перестали действовать после обновления версий субмодулей.

Также, для справки, я использую версию ndk r10c.

ffmpeg, freetype2 и x264 должны быть основными с сегодняшнего дня (08.02.2015). Я могу со временем прикрепить их к версии, но это не очень высоко в моем списке приоритетов, так что ...

Kevin Galligan
источник