3

x264を使用して、iPhoneカメラからキャプチャした生データをエンコードしています..しかし、エンコードは非常に遅いです.エンコード速度を加速するのを手伝ってくれる人はいますか.

次の設定を使用して x264 lib をビルドしました。

//armv6 の場合

CC=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc ./configure --host=arm-apple-darwin --sysroot=/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3 .sdk --prefix='dist' --extra-cflags='-arch armv6' --extra-ldflags=-L/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/usr/lib /system/ --extra-ldflags='-arch armv6' --enable-pic --disable-asm

//armv7 の場合

CC=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc ./configure --host=arm-apple-darwin --sysroot=/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3 .sdk --prefix='dist' --extra-cflags='-arch armv7' --extra-ldflags=-L/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/usr/lib /system/ --extra-ldflags='-arch armv7' --enable-pic

次のようなデフォルトのプリセットを使用しています。

x264_param_default_preset(param, "slow", "zerolatency");

そして、いくつかのパラメータを設定します:

param->i_bframe = 0;
param->analyse.i_me_method = X264_ME_HEX;
param->analyse.i_subpel_refine = 2;
param->i_frame_reference = 1;
param->analyse.b_mixed_references = 0;
param->analyse.i_trellis = 0;
param->rc.b_mb_tree = 0;
param->analyse.i_weighted_pred = X264_WEIGHTP_NONE;


param->rc.i_bitrate = 180;
param->rc.i_qp_min = 20; 
param->rc.i_qp_max = 26; 

param->i_keyint_max = 15; 
param->i_keyint_min = 15;


param->i_width = w;
param->i_height = h;

x264_param_apply_profile(param, "baseline");
x264_picture_alloc( &(enc->pic), X264_CSP_I420, param->i_width, param->i_height );
4

1 に答える 1

0

デフォルトのプリセットを次のように使用する場合:

x264_param_default_preset(param, "veryfast", "zerolatency");

おそらく速度がいくらか向上するでしょう。それでも、iPhoneがx264でビデオを非常に高速にエンコードできるとは思いません。私はiPhone用に何も開発したことはありませんが、通常、これらの組み込みシステムには、APIを使用してアプリケーションで使用できるハードウェアエンコーダーがあります。

于 2012-08-07T20:48:47.437 に答える