• ffmpeg交叉


    #include <jni.h>
    #include <string>
    #include <unistd.h>
    #include <android/native_window_jni.h>
    
    
    
    extern "C" {
       // #include "libavutil/avutil.h"
        #include <libavcodec/avcodec.h>
    
    }
    
    char StrLine[1024]={0};
    extern "C" JNIEXPORT jstring JNICALL
    Java_com_example_testnativecpp_MainActivity_stringFromJNI(
            JNIEnv* env,
            jobject /* this */) {
        std::string hello = "Hello from C++";
       //av_version_info(
       // return env->NewStringUTF(StrLine);
        return env->NewStringUTF(av_version_info());
    }
    cmake_minimum_required(VERSION 3.4.1)
    
    
    
    #include_directories()
    
    #看来这个Set还是有用的
    set(DIR ../../../../libs)
    
    INCLUDE_DIRECTORIES(
            E:/andprogram/andpro/NDKPROS/TestNativeCpp/app/libs/include/
            )
    
    
    add_library( # Sets the name of the library.
                 native-lib
                 SHARED
                 native-lib.cpp )
    set_property(TARGET native-lib PROPERTY IMPORTED_NO_SONAME 1)
    
    find_library( # Sets the name of the path variable.
            log-lib
            log )
    find_library( # Sets the name of the path variable.
            android-lib
            android )
    #
    add_library(avcodec
            SHARED
            IMPORTED)
    set_target_properties(avcodec
            PROPERTIES IMPORTED_LOCATION
            ${DIR}/armv7-a/libavcodec.so)
    
    add_library(avformat
            SHARED
            IMPORTED)
    set_target_properties(avformat
            PROPERTIES IMPORTED_LOCATION
            ${DIR}/armv7-a/libavformat.so)
    
    add_library(avutil
            SHARED
            IMPORTED)
    set_target_properties(avutil
            PROPERTIES IMPORTED_LOCATION
            ${DIR}/armv7-a/libavutil.so)
    
    add_library(postproc
            SHARED
            IMPORTED)
    set_target_properties(postproc
            PROPERTIES IMPORTED_LOCATION
            ${DIR}/armv7-a/libpostproc.so)
    
    add_library(swresample
            SHARED
            IMPORTED)
    set_target_properties(swresample
            PROPERTIES IMPORTED_LOCATION
            ${DIR}/armv7-a/libswresample.so)
    
    add_library(swscale
            SHARED
            IMPORTED)
    set_target_properties(swscale
            PROPERTIES IMPORTED_LOCATION
            ${DIR}/armv7-a/libswscale.so)
    
    add_library(avfilter
            SHARED
            IMPORTED)
    set_target_properties(avfilter
            PROPERTIES IMPORTED_LOCATION
            ${DIR}/armv7-a/libavfilter.so)
    
    #
    
    target_link_libraries( # Specifies the target library.
                           native-lib
                           avfilter
                           avcodec
                           avformat
                           avutil
                           postproc
                           swresample
                           swscale
                           ${log-lib}   ${android-lib})


    #!/bin/bash
    NDK=/home/wang/program/android-ndk-r19c
    #ADDI_LDFLAGS="-fPIE -pie"
    #ADDI_CFLAGS="-fPIE -pie -march=armv7-a -mfloat-abi=softfp -mfpu=neon"
    #CPU=armv7-a
    #ARCH=arm
    #CPU=x86
    ARCH=x86
    #HOST=arm-linux
    SYSROOT=$NDK/toolchains/llvm/prebuilt/linux-x86_64/sysroot
    TOOLCHAIN=$NDK/toolchains/llvm/prebuilt/linux-x86_64/bin
    PREFIX=$(pwd)/android/$ARCH

    configure()
    {
        ./configure
        --prefix=$PREFIX
        --toolchain=clang-usan
        --enable-cross-compile
        --target-os=android
        --arch=$ARCH
        --sysroot=$SYSROOT
        #--cc=$TOOLCHAIN/armv7a-linux-androideabi21-clang
        #--cxx=$TOOLCHAIN/armv7a-linux-androideabi21-clang++
         --cc =$TOOLCHAIN/i686-linux-android21-clang
        --cxx=$TOOLCHAIN/i686-linux-android21-clang++ 
     #   --strip=$TOOLCHAIN/arm-linux-androideabi-strip
       --strip=$TOOLCHAIN/i686-linux-android-strip
     #   --extra-cflags="$ADDI_CFLAGS"
     #   --extra-ldflags="$ADDI_LDFLAGS"
        --disable-encoders
        --disable-decoders
        --disable-avdevice
        --disable-static
        --disable-doc
        --disable-ffplay
        --disable-network
        --disable-doc
        --disable-symver
        --disable-ffprobe
        --enable-neon
        --enable-shared
        --enable-gpl
        --enable-pic
        --enable-jni
        --enable-pthreads
        --enable-mediacodec
        --enable-encoder=aac
        --enable-encoder=gif
        --enable-encoder=libopenjpeg
        --enable-encoder=libmp3lame
        --enable-encoder=libwavpack
        --enable-encoder=mpeg4
        --enable-encoder=pcm_s16le
        --enable-encoder=png
        --enable-encoder=mjpeg
        --enable-encoder=srt
        --enable-encoder=subrip
        --enable-encoder=yuv4
        --enable-encoder=text
        --enable-decoder=aac
        --enable-decoder=aac_latm
        --enable-decoder=libopenjpeg
        --enable-decoder=mp3
        --enable-decoder=mpeg4_mediacodec
        --enable-decoder=pcm_s16le
        --enable-decoder=flac
        --enable-decoder=flv
        --enable-decoder=gif
        --enable-decoder=png
        --enable-decoder=srt
        --enable-decoder=xsub
        --enable-decoder=yuv4
        --enable-decoder=vp8_mediacodec
        --enable-decoder=h264_mediacodec
        --enable-decoder=hevc_mediacodec
        --enable-bsf=aac_adtstoasc
        --enable-bsf=h264_mp4toannexb
        --enable-bsf=hevc_mp4toannexb
        --enable-bsf=mpeg4_unpack_bframes

    }

    build()
    {
        configure
        make clean
        make -j4
        make install
    }

    build

  • 相关阅读:
    剑指 Offer 53
    Visual Studio Ultimate 2013
    手把手教你如何把java代码,打包成jar文件以及转换为exe可执行文件
    DirectX的Vertex Buffer顶点缓冲的理解和应用 Shader必知必会
    Qt5.2中的android环境搭建
    JavaScript的基础学习篇
    九月十月百度,迅雷,华为,阿里巴巴最新校招笔试面试三十题(10.18)
    十月下旬腾讯,网易游戏,百度迅雷校园招聘笔试题集锦(第271-330题)
    九月十月百度人搜,阿里巴巴,腾讯华为笔试面试八十题(第331-410题)
    十月上旬百度,阿里巴巴,迅雷搜狗最新面试七十题(第201-270题)
  • 原文地址:https://www.cnblogs.com/cnchengv/p/15182856.html
Copyright © 2020-2023  润新知