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 に答える