2012-04-30 5 views
2

Je sais que cette question peut être double possible de nombreuses questions des autres, mais il n'y a pas de bonne réponse, ni un bon tutoriel disponible pour ceEn utilisant FFMPEG Android sur Windows

Je veux utiliser ffmpeg dans mon projet, je suis en utilisant Android ndk7 sur les fenêtres n'ont pas la moindre idée de ce que le code ffmpeg à télécharger, compiler tutoriel disponible est pour UBUNTU rien de beaucoup pour les fenêtres

J'apprécierais vraiment une très bonne réponse.

Répondre

1

Je n'ai jamais été capable de créer FFMPEG pour Android sous Windows mais j'ai réussi à le faire sous Ubuntu (après avoir eu quelques difficultés cependant).

J'ai utilisé le logiciel gratuit Oracle VM Virtual Box pour émuler la machine Ubuntu sous Windows.

J'ai ensuite construit FFMPEG en utilisant les scripts de bambuser http://bambuser.com/opensource.

je puis déplacé le répertoire résultant dans les fenêtres sous le dossier JNI de mon projet et renvoyé les libs de mon 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

comme j'ai eu votre réponse, je devrais utiliser ubuntu pour compiler ffmpeg http://bambuser.com/opensource. script en utilisant la méthode spécifiée ici http://www.roman10.net/how-to-build-ffmpeg-for-android/ et ensuite l'utiliser ??? –

+0

La méthode de roman10 n'a pas fonctionné pour moi. Je viens d'utiliser le script build.sh qu'ils ont dans leur distribution open-source (prenez la dernière version) –

+0

merci beaucoup pour vos efforts mais puisque je ne sais rien à ce sujet, j'ai du mal à comprendre vous j'ai installé ubuntu et téléchargé le code de bambuser que devrais-je faire ensuite dois-je télécharger ndk7 ou ndk 5 ?? et comment dois-je construire le script dans bambuser –

0

Vous pouvez l'utiliser comme build_android.sh je l'ai testé et il a travaillé avec moi

#!/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 

vous devez également exécuter cette commande:

dos2unix build_android.sh 
chmod +x build_android.sh 
./build_android.sh 

Utilisez this Tutorial comme référence

Questions connexes