2012-04-30 2 views
2

Я знаю, что этот вопрос может быть возможным дубликатом многих других вопросов, но нет хорошего ответа, ни хороший учебник доступен для негоИспользования FFMPEG андроида на ОС Windows

Я хочу использовать FFmpeg в моем проекте я использую андроид ndk7 на окнах не имеют понятия, какой код ffmpeg для загрузки, компилировать учебное пособие доступно для UBUNTU ничего для окон

Я бы очень признателен за действительно хороший ответ.

ответ

1

Я никогда не мог построить FFMPEG для Android под Windows, но успешно сделал это под Ubuntu (после некоторого трудного времени).

Я использовал бесплатную версию виртуальной машины Oracle VM для эмуляции машины Ubuntu под Windows.

Я тогда построил FFMPEG, используя скрипты от bambuser http://bambuser.com/opensource.

Затем я переехал получившийся каталог в окна под папкой 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) 
+0

Как я получил ваш ответ, я должен использовать ubuntu для компиляции ffmpeg http://bambuser.com/opensource. скрипт с использованием метода, указанного здесь http://www.roman10.net/how-to-build-ffmpeg-for-android/, а затем использовать его ??? –

+0

метод roman10 не работает для меня. Я только что использовал скрипт build.sh, который они на сайте bambuser имеют в своем дистрибутиве с открытым исходным кодом (возьмите последнюю версию) –

+0

благодарите много за ваши усилия, но поскольку я ничего не знаю об этом, мне трудно понять вы, я установил ubuntu и загрузил код bambuser, что мне делать дальше, я должен загрузить ndk7 или ndk 5 ?? и как мне создать скрипт в bambuser –

0

Вы можете использовать это как 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 

Используйте this Tutorial в качестве ссылки

Смежные вопросы