![Android용 Freetype2를 사용하여 FFmpeg를 빌드하는 방법](https://rvso.com/image/1438147/Android%EC%9A%A9%20Freetype2%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20FFmpeg%EB%A5%BC%20%EB%B9%8C%EB%93%9C%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
OSX Yosemite에서 freetype 라이브러리가 포함된 FFmpeg를 빌드하려고 합니다(drawtext 필터에 필요합니다). 불행히도 ffmpeg를 제대로 구성할 수 없으며 모든 시도가 "freetype notfound" 오류로 끝납니다.
- 자유형 없이 일반 FFmpeg-2.5.3을 빌드하는 것은 완벽하게 잘 작동합니다.이것지도 시간)
- Freetype-2.5.3 빌드도 잘 작동합니다.이것지도 시간)
- 내장형 프리타입이 있는 추가 라이브러리 위치가 포함되어 있습니다.
이와 같이:
--extra-ldflags="-L$PREFIX/lib"
--extra-cflags="-I$PREFIX/include -I$PREFIX/include/freetype2"
./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
config.log의 마지막 3줄:
require_libfreetype
false --exists --print-errors freetype2
ERROR: freetype2 not found
미리 감사드립니다. (그리고 영어가 서툴러서 죄송합니다.)
추신: 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로 옮겨야 한다는 것을 의미합니까? OSX에 pkg-config가 설치되어 있지 않습니까?
algakzru$ pkg-config --version
0.28
답변1
ffmpeg 빌드의 Guardian 프로젝트 버전(명령줄 출력용)에서 작동하도록 했습니다. 여기에서 내 포크를 확인하세요.
https://github.com/touchlab/android-ffmpeg
기본적으로 fake-pkg-config를 사용하려면 ffmpeg 구성을 가져와서 매개변수 2(내 포크에 있음) 대신 매개변수 3을 보도록 수정해야 합니다. 포크 버전 상단에 몇 가지 지침이 있습니다. 방금 테스트 빌드를 실행해 보았는데, 그에 따르면 ffmpeg/libavutil/arm/intmath.h에 있는 주석 수정 부분은 무시하셔도 됩니다. ffmpeg/configure 변경을 수행하십시오.
원래 ffmpeg/configure 변경은 config_ffmpeg.sh의 패치로 이루어졌는데, 패치를 완전히 제거하고 새로 만들지는 않았습니다. 하위 모듈 버전을 업데이트한 후에는 패치가 더 이상 유효하지 않습니다.
그리고 참고로 저는 ndk r10c 버전을 사용하고 있습니다.
ffmpeg, freetype2 및 x264는 오늘(2015년 2월 8일) 기준으로 모두 마스터가 되어야 합니다. 결국에는 특정 버전에 고정할 수도 있지만 우선순위 목록에서는 그리 높지 않습니다. 그래서...