この質問は他の多くの質問と重複している可能性があることは知っていますが、適切な回答もチュートリアルもありません。
プロジェクトでffmpegを使用したいWindowsでandroidndk7を使用していますダウンロードするffmpegコードがわからない、利用可能なコンパイルチュートリアルはUBUNTU用ですWindows用はあまりありません
本当に良い答えをいただければ幸いです。
この質問は他の多くの質問と重複している可能性があることは知っていますが、適切な回答もチュートリアルもありません。
プロジェクトでffmpegを使用したいWindowsでandroidndk7を使用していますダウンロードするffmpegコードがわからない、利用可能なコンパイルチュートリアルはUBUNTU用ですWindows用はあまりありません
本当に良い答えをいただければ幸いです。
WindowsでAndroid用のFFMPEGをビルドすることはできませんでしたが、Ubuntuでビルドすることはできました(ただし、少し苦労した後)。
Oracle VM Virtual Boxフリーウェアを使用して、WindowsでUbuntuマシンをエミュレートしました。
次に、bambuserhttp : //bambuser.com/opensourceのスクリプトを使用してFFMPEGをビルドしました。
次に、結果のディレクトリをプロジェクトのjniフォルダーの下のウィンドウに移動し、Android.mkからライブラリを参照しました。
FFMPEG_DIR := ffmpeg
ifeq ($(TARGET_ARCH_ABI), armeabi)
FFMPEG_DIR := $(FFMPEG_DIR)/armeabi
else
ifeq ($(TARGET_ARCH_ABI), armeabi-v7a)
FFMPEG_DIR := $(FFMPEG_DIR)/armeabi-v7a
endif
endif
include $(CLEAR_VARS)
LOCAL_MODULE := libavcodec
LOCAL_SRC_FILES := $(FFMPEG_DIR)/lib/$(LOCAL_MODULE).a
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libavcore
LOCAL_SRC_FILES := $(FFMPEG_DIR)/lib/$(LOCAL_MODULE).a
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libavdevice
LOCAL_SRC_FILES := $(FFMPEG_DIR)/lib/$(LOCAL_MODULE).a
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libavfilter
LOCAL_SRC_FILES := $(FFMPEG_DIR)/lib/$(LOCAL_MODULE).a
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libavformat
LOCAL_SRC_FILES := $(FFMPEG_DIR)/lib/$(LOCAL_MODULE).a
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libavutil
LOCAL_SRC_FILES := $(FFMPEG_DIR)/lib/$(LOCAL_MODULE).a
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libswscale
LOCAL_SRC_FILES := $(FFMPEG_DIR)/lib/$(LOCAL_MODULE).a
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include
include $(PREBUILT_STATIC_LIBRARY)
あなたはこれをbuild_android.shとして使うことができます私はそれをテストしましたそしてそれは私と一緒に働きました
#!/bin/bash
NDK=D:/android/ndk/android-ndk-r10d
SYSROOT=$NDK/platforms/android-8/arch-arm/
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/windows
function build_one
{
./configure \
--prefix=$PREFIX \
--disable-shared \
--enable-static \
--disable-doc \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-ffserver \
--disable-avdevice \
--disable-doc \
--disable-symver \
--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
--target-os=linux \
--arch=arm \
--enable-cross-compile \
--sysroot=$SYSROOT \
--extra-cflags="-Os -fpic $ADDI_CFLAGS" \
--extra-ldflags="$ADDI_LDFLAGS" \
$ADDITIONAL_CONFIGURE_FLAG
make clean
make
make install
}
CPU=arm
PREFIX=$(pwd)/android/$CPU
ADDI_CFLAGS="-marm"
build_one
次のコマンドも実行する必要があります。
dos2unix build_android.sh
chmod +x build_android.sh
./build_android.sh
このチュートリアルを参照として使用する