web-dev-qa-db-fra.com

Android: Comment configurer la dernière version de FFMPEG dans Android studio?

Je veux configurer FFMPEG dans Android studio mais je ne peux pas obtenir de document ou de lien pour cela. Github sur de nombreuses FFMPEG lib disponibles pour Android mais qui sont tous avec l'ancienne version. Et comment exécuter la commande dans android? Et je veux savoir après configurer FFMPEG alors comment pouvons-nous exécuter les commandes FFMPEG. Aidez-moi pour merci d'avance.

J'ai utilisé les liens ci-dessous, mais sans succès pour la dernière version.

http://writingminds.github.io/ffmpeg-Android-Java

https://github.com/WritingMinds/ffmpeg-Android-Java

https://github.com/havlenapetr/FFMpeg

https://github.com/appunite/AndroidFFmpeg

https://github.com/WritingMinds/ffmpeg-Android

47
Ravi Vaghela

La dernière version de FFMPEG est 3.1.1, vient de sortir avant 12 jours. Je pense donc qu'il n'y a pas démo facilement disponible comme celle-ci un.

Nous devons construire la bibliothèque FFMPEG par nous-mêmes. J'ai trouvé quelques questions à coller ici qui pourraient vous aider. (Pas testé)

Comment construire FFmpeg pour Android

  1. Compilation FFmpeg 2.3 avec Android NDK r1
  2. Comment compiler ffmpeg-2.5.3 sur Windows avec Android-ndk-r10d
  3. Comment compiler ffmpeg-2.2.2 sur windows avec cygwin et Android ndk r9c
  4. Comment créer ffmpeg avec Android-ndk-r10d dans Windows

Vous devez le compiler vous-même en téléchargeant Android NDK & Dernière version de FFMPEG .

Un tutoriel est également là: Comment construire FFmpeg pour Android . Ceci est assez ancien, il vous suffit donc de changer les versions mentionnées ici. Pour FFMPEG ce sera 3.1.1 & NDK ce sera r12b.


Construction FFMPEG avec NDK r12b:

  1. Télécharger Android NDK : la dernière version de Android NDK peut être téléchargée sur site Web Android NDK . Au moment d'écrire cette réponse, la dernière version est NDK r12. Décompressez simplement l'archive

  2. Télécharger le code source ffmpeg : Le code source FFMPEG peut être téléchargé à partir du site Web ffmpeg . La dernière version stable est 3.1.1 (au moment de la rédaction). Téléchargez le code source et décompressez-le dans le dossier $ NDK/sources.

  3. Mettre à jour le fichier de configuration: Ouvrez le fichier ffmpeg-3.1.1/configure avec un éditeur de texte et recherchez les lignes suivantes.

    SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)'
    LIB_INSTALL_EXTRA_CMD='$$(RANLIB) "$(LIBDIR)/$(LIBNAME)"'
    SLIB_INSTALL_NAME='$(SLIBNAME_WITH_VERSION)'
    SLIB_INSTALL_LINKS='$(SLIBNAME_WITH_MAJOR) $(SLIBNAME)'
    

    Cela provoque la compilation des bibliothèques partagées ffmpeg dans libavcodec.so. (par exemple, libavcodec.so.55), qui n'est pas compatible avec Android build system. Par conséquent, nous devrons remplacer les lignes ci-dessus par les lignes suivantes.

    SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)'
    LIB_INSTALL_EXTRA_CMD='$$(RANLIB) "$(LIBDIR)/$(LIBNAME)"'
    SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)'
    SLIB_INSTALL_LINKS='$(SLIBNAME)
    
  4. Construisez ffmpeg: Copiez le texte suivant dans un éditeur de texte et enregistrez-le en tant que build_Android.sh dans le dossier ffmpeg_3.1.1.

        #!/bin/bash
        NDK=$HOME/Desktop/adt/Android-ndk-r9
        SYSROOT=$NDK/platforms/Android-9/Arch-arm/
        TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64
        function build_one
        {
            ./configure
                --prefix=$PREFIX
                --enable-shared
                --disable-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
    

    Une fois le fichier enregistré, allez dans le répertoire où se trouve ce fichier et exécutez la commande ci-dessous,

    Sudo chmod +x build_Android.sh
    

    Exécutez ensuite le script par la commande,

    ./build_Android.sh
    
  5. Sortie de la construction: La construction peut prendre un certain temps pour se terminer en fonction de la vitesse de votre ordinateur. Une fois cela fait, vous devriez pouvoir trouver un dossier $ NDK/sources/ffmpeg-3.1.1/Android, qui contient les dossiers arm/lib et arm/include.

  6. Rendez les bibliothèques ffmpeg disponibles pour vos projets

Les étapes ci-dessus sont entièrement testées et je les ai effectuées sur ma machine et la construction a été réussie. Pour écrire cette réponse, j'ai pris la référence de cet article Comment construire ffmpeg avec NDK r9 mais comme c'était le cas pour les anciennes versions, j'ai fait quelques corrections par moi-même.

Ouvert pour poser des doutes.

36
Janki Gadhiya
13
parik dhakan

Avez-vous vu ce lien La bibliothèque FFmpeg de Writingminds a fourni toutes les explications à ce sujet dans ce lien

La dernière version de cette bibliothèque writingmind est ici https://github.com/WritingMinds/ffmpeg-Android-Java/releasesenter image description here

Si vous souhaitez utiliser la dernière version d'une bibliothèque, vous pouvez le faire directement dans build.gradle Car si une bibliothèque n'est pas mise à jour, elle peut être vue et peut être mise à jour à partir de build.gradle, Je le fais toujours pour de nombreuses bibliothèques pour la dernière version disponible.

Pour gradle dans FFMpeg, utilisez ceci

compile 'com.writingminds:FFmpegAndroid:0.3.2'

Plus de bibliothèques similaires à celle-ci sont données sur ce lien https://Android-arsenal.com/details/1/925

Je vous suggère également de lire ce que , et ce que

Si vous souhaitez utiliser la dernière version de la bibliothèque d'origine, allez ici: FFmpeg [la dernière version sera ici ]

d'ajouter avec du code natif, ces blogs peuvent vous aider

http://ffmpeg-Android.blogspot.in/ et

http://www.roman10.net/2011/07/07/17/how-to-build-Android-applications-based-on-ffmpeg-by-an-example/

5
TapanHP

Je connais ffmpeg depuis Android depuis quelques semaines.

La bibliothèque appelée FFmpeg4Android et peut être trouvée ici à WarZone .

Je sais que le titre le dit du 6 décembre 2011, mais je l'ai testé et travaillé avec et tout se déroule sans problème. Vous n'avez pas mentionné quel est votre besoin exact avec cette bibliothèque, mais vous pouvez lire sur les capacités de ffmpeg sur le site officiel .

Le FFmpeg4Android a un exemple de projet qui peut être une excellente référence, et leur support est également immédiat et clair.

Les commandes s'exécutent en fonction de votre entrée de chaîne, par exemple:

ffmpeg -y -i /sdcard/videokit/in.mp4 -strict experimental -s 160x120 -r 25 -vcodec mpeg4 -b 150k -ab 48000 -ac 2 -ar 22050/sdcard/videokit /out.mp4

faites-moi savoir si vous avez besoin d'aide, je serai heureux de vous aider.

1
Juvi