Akagi201
9/28/2014 - 5:45 AM

ffmpeg-compile.md

manual hack cross compile variables

libfaac

ffmpeg on dm365

ffmpeg on RPi

libuv

  • sh autogen.sh
  • ./configure --enable-shared --enable-static --host=arm-none-linux-gnueabi --prefix=/home/akagi201/libs-a5s

json-c

  • ./configure --host=arm-none-linux-gnueabi --enable-static --enable-shared --prefix=/home/akagi201/libs-a5s

curl

  • CPPFLAGS="-I/home/akagi201/libs-a5s/include" LDFLAGS="-L/home/akagi201/libs-a5s/lib" LIBS="-lssl -lcrypto" ./configure --host=arm-none-linux-gnueabi --enable-static --with-ssl --with-zlib --prefix=/home/akagi201/libs-a5s
  • AR=arm-none-linux-gnueabi-ar AS=arm-none-linux-gnueabi-as LD=arm-none-linux-gnueabi-ld RANLIB=arm-none-linux-gnueabi-ranlib CC=arm-none-linux-gnueabi-gcc CM=arm-none-linux-gnueabi-nm CPPFLAGS="-I/home/akagi201/libs-a5s/include" LDFLAGS="-L/home/akagi201/libs-a5s/lib" LIBS="-lssl -lcrypto" ./configure --host=arm-none-linux-gnueabi --target=arm-none-linux-gnueabi --enable-static --with-ssl --with-zlib --prefix=/home/akagi201/libs-a5s ssl support failed.

libaacplus

  • https://trac.ffmpeg.org/wiki/How%20to%20quickly%20compile%20libaacplus
  • ./autogen.sh --with-parameter-expansion-string-replace-capable-shell=/bin/bash --host=arm_v5t_le-unknown-linux-uclibceabi --enable-static --prefix=/home/akagi201/libs-dm365
  • ./autogen.sh --with-parameter-expansion-string-replace-capable-shell=/bin/bash --host=arm-none-linux-gnueabi --enable-static --enable-shared --prefix=/home/akagi201/libs-a5s

libx264

alsa-lib

  • ftp://ftp.alsa-project.org/pub/lib/alsa-lib-1.0.28.tar.bz2

LONG_BIT definition appears wrong for platform (bad gcc/glibc config?).

  • failed.

zlib

  • CC=arm_v5t_le-unknown-linux-uclibceabi-gcc ./configure --prefix=/home/akagi201/libs-dm365

openssl

  • ./Configure --cross-compile-prefix=arm_v5t_le-unknown-linux-uclibceabi- linux-elf no-asm no-idea no-mdc2 no-rc5 --prefix=/home/akagi201/libs-dm365

librtmp

ffmpeg

  • ./configure --enable-cross-compile --cross-prefix=arm_v5t_le-unknown-linux-uclibceabi- --arch=armel --target-os=linux --prefix=/home/akagi201/libs-dm365 --enable-gpl --enable-libx264 --enable-nonfree --enable-libaacplus --extra-cflags="-I/home/akagi201/libs-dm365/include" --extra-ldflags="-L/home/akagi201/libs-dm365/lib" --extra-libs=-ldl
  • 精简编译: ./configure --enable-cross-compile --cross-prefix=arm_v5t_le-unknown-linux-uclibceabi- --arch=armel --target-os=linux --prefix=/home/akagi201/libs-dm365 --enable-static --enable-shared --extra-cflags="-I/home/akagi201/libs-dm365/include" --extra-ldflags="-L/home/akagi201/libs-dm365/lib" --extra-libs=-ldl
  • WARNING: arm-none-linux-gnueabi-pkg-config not found, library detection may fail.
  • 手动修改config.mk中LDFLAG, 添加-lrtmp -lssl -lcrypto -lz
  • http://blog.csdn.net/glcdw/article/details/7558303
  • 注释掉了下面部分, 否则编译不通过.
static av_always_inline av_const float fminf(float x, float y)
{
    //Note, the NaN special case is needed for C spec compliance, it should be
    //optimized away if the users compiler is configured to assume no NaN
    return x > y ? y : (x == x ? x : y);
}

dlopen