0

我最近使用 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;

谢谢

4

1 回答 1

0

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

 make STRIP=
于 2013-01-20T21:29:24.567 回答