X264& Android上的ARM编码

时间:2013-01-20 15:03:49

标签: android encoding ffmpeg arm x264

我最近构建了一个使用ffmpeg和本机代码在Android上运行的视频编码类。我对编码视频所需的时间感到惊讶,最多约1帧/秒。我尝试过使用x264和针对速度优化的设置以及mpeg - 没有真正的区别。

x264库现在支持ARM架构,并且在这些编码速度超过20fps的情况下非常高效。我不确定我是否正确使用它。这里是我用来编译的脚本:

./configure --prefix=$PREFIX \
--enable-shared \
--enable-static \
--disable-gpac \
--enable-debug \
--extra-cflags=" -I$ARM_INC -fPIC -DANDROID -fpic -mthumb-interwork -ffunction-sections -funwind-tables -fno-short-enums -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__ -Wno-psabi -march=armv5te -msoft-float -mthumb -O3 -fomit-frame-pointer -fno-strict-aliasing -finline-limit=64 -DANDROID -Wa,--noexecstack -MMD -MP " \
--extra-ldflags=" -nostdlib -Bdynamic -Wl,--no-undefined -Wl,-z,noexecstack -Wl,-z,nocopyreloc -Wl,-soname,/usr/lib/libz.so -Wl,-rpath-link=$ARM_LIB,-dynamic-linker=/system/bin/linker -L$ARM_LIB -lc -lm -ldl -lgcc" \
--cross-prefix=${ARM_PRE}- \
--disable-asm \
--host=arm-linux \

我相信最后一行应该是我所追求的,即启用ARM优化。也许我错过了什么。

有关信息,我在Nexus 7平板电脑上编码640x480视频。这是我的编码器设置(x264)

c->gop_size       = 12;
c->pix_fmt        = PIX_FMT_YUV420P;
c->max_b_frames   = 0;
c->scenechange_threshold = 0;
c->rc_buffer_size = 0;

由于

1 个答案:

答案 0 :(得分:0)

您应该启用asm并禁用调试。为避免讨厌的warnimgs,请运行

 make STRIP=