FFmpegのコンパイルNDK(R20)を使用します

二日前にフォーラムで質問を見て、効果がUBUNTUの下にFFmpegコンパイルNDK-R20を使用する方法です。私の最初の反応はR20に想定されていない私はNDKの以前のバージョンなしのgccを使用したため、私は多くの問題がすぐにコンパイルするために使用R12Bに反応し、コンパイルすることはできません発見しました。私はNDKでコンパイルした最新のFFmpegがそれをR20たい場合、私は、一瞬のために自宅罰金考えを得ましたか。なぜ我々はダウントスする瞬間を取ることはありません。

NDKは、また、(キーがルートディレクトリにNDKをグーグルsysroot-間違っSYSROOTを構築することです)に変更打ち鳴らすのコンパイルに使用されるバージョンの徹底的な改革が、これはSYSROOTで新しいNDKで最も重要ではないのか分かりませんこれはFFmpegのは検出できない上-CCにつながります。Crtbegin_so.o一般的なエラーが接続されていないか、図書館システムを見つけることができません。

私たちが扱いやすい右SYSROOTすべてのものを使用している場合のでSYSROOTは、実際に犯人です。私は、コードの一部が意図的に間違っている、ASでのC ++プロジェクトをビルド、SYSROOTを表示するには、トリッキーな方法を使用したログの等級は/構築済みの使用/ LinuxのSYSROOT($ NDK /ツールチェーン/ LLVMをマークはっきり内部見ることができます-x86_64 / SYSROOT)それは我々が必要とするものです。

ログを見て学びます

多くの学生は、コンパイルの問題は実際には、ffbuild / conf.logにおける真のログは、何が間違っているの詳細な説明があり、ターミナルをキャプチャします遭遇します。

正しい設定

1 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
NDK =エクスポート/ホーム/ fgodt /アンドロイド/ SDK / NDK bundle- 
輸出= 22は、APIである
輸出ARCH = aarch64
エクスポートPLATFORM = aarch64
TARGET =エクスポート$ Androidプラットフォーム-Linux-
=エクスポートツールチェーンを$ NDK /ツールチェーン/ LLVM /構築済み/ Linux- x86_64版/ binに
#正しいSYSROOT
輸出SYSROOT = $ NDK /ツールチェーン/ LLVM /構築済み/ Linuxの-x86_64版/ SYSROOT
CPUをエクスポート= aarch64
エクスポートPREFIX = /ホーム/ fgodt / FFmpegの/アンドロイド/ $ CPU
エクスポートCFLAG = 「-D__ANDROID_API __ = $ -Os -fPIC -DANDROID API「\
######################################### #############
他のCPUは、以下の文章追加する場合#のaarch64は、--cpuを必要としません
。# - CPU = $プラットフォーム\を
############ ##########################################
は./configure \
--prefix = $ PREFIX \
--cc = $ツールチェーン/ $ TARGETの$のAPI-打ち鳴らす\
--cxx = $ツールチェーン/ $ TARGETの$のAPI-打ち鳴らす++ \
--ld = $ツールチェーン/ $ TARGETの$ API-打ち鳴らすの\
- -target-OS =アンドロイド\
--arch = $ ARCH \
--crossプレフィックス= $ツールチェーン/ $ ARCH-linuxの-android- \
- 無効-ASMの\
- 有効クロスコンパイル\
- 無効共有\
- 無効-docの\
- 有効-ランタイムcpudetect \
- 無効-ffmpegのの\
- 無効-ffplay \
- 無効-ffprobeの\
-\デコーダを無効にする
- 無効-エンコーダ\
- 無効-デバイス\
--sysroot = $ SYSROOT \
--extra-CFLAGS = " $ CFLAG" \
--extra-LDFLAGS = ""

注意を払います

ここで設定すると、単にコンパイルが、あなたは、ハードウェアアクセラレーションなどの機能が必要な場合もJNI構成とオープンMediaCodecを追加する必要があり、自分のニーズに応じてのFFmpegをカットする必要があるかどうかを確認します。

Iを使用しているもののルートにSYSROOTとして、私たちはそれSYSROOT 1以上に頼ることができない理由もなく、白、細かい勉強していません。

最後に、私はまだコンパイルされていない学生のために有用願っています

おすすめ

転載: www.cnblogs.com/fgodt/p/ffmpegforndk.html