九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
使用 NDK r9 編譯ffmpeg

1. 環(huán)境 ubuntu 我的是13.10  ndk r9 64位

2. 下載ffmpeg http://www.ffmpeg.org/download.html  找到 

FFmpeg 2.1.3 "Fourier"

2.1.3 was released on 2014-01-15. It is the latest stable FFmpeg release from the 2.1 release branch, which was cut from master on 2013-10-28. Amongst lots of other changes, it includes all changes from ffmpeg-mt, libav master of 2013-10-27, libav 9 as of 2013-10-27.

It includes the following library versions:

  libavutil      52. 48.101  libavcodec     55. 39.101  libavformat    55. 19.104  libavdevice    55.  5.100  libavfilter     3. 90.100  libswscale      2.  5.101  libswresample   0. 17.104  libpostproc    52.  3.100

Download bzip2 tarball  下載

下載之后 解壓到 $NDK/sources   文件夾下面,這是因?yàn)榫幾g快捷以及方便使用

3.  找到 ffmpeg-xxx/configure 找到如下幾行:

Java代碼  
  1. SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)'  
  2. LIB_INSTALL_EXTRA_CMD='$$(RANLIB) "$(LIBDIR)/$(LIBNAME)"'  
  3. SLIB_INSTALL_NAME='$(SLIBNAME_WITH_VERSION)'  
  4. SLIB_INSTALL_LINKS='$(SLIBNAME_WITH_MAJOR) $(SLIBNAME)'  

 上面幾行會(huì)導(dǎo)致libavcodec.so.<version> (e.g. libavcodec.so.55),不會(huì)被android承認(rèn) ,修改為;

Java代碼  
  1. SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)'  
  2. LIB_INSTALL_EXTRA_CMD='$$(RANLIB) "$(LIBDIR)/$(LIBNAME)"'  
  3. SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)'  
  4. SLIB_INSTALL_LINKS='$(SLIBNAME)'  

 4. 復(fù)制下面的代碼到文本中 并命名為 build_android.sh,注意這個(gè)文件應(yīng)該保存到 ffmpeg-xxx/configure 同一個(gè)文件夾下

Java代碼  
  1. #!/bin/bash  
  2. NDK=$HOME/Desktop/adt/android-ndk-r9  
  3. SYSROOT=$NDK/platforms/android-9/arch-arm/  
  4. TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64  
  5. function build_one  
  6. {  
  7. ./configure \  
  8.     --prefix=$PREFIX \  
  9.     --enable-shared \  
  10.     --disable-static \  
  11.     --disable-doc \  
  12.     --disable-ffmpeg \  
  13.     --disable-ffplay \  
  14.     --disable-ffprobe \  
  15.     --disable-ffserver \  
  16.     --disable-avdevice \  
  17.     --disable-doc \  
  18.     --disable-symver \  
  19.     --cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \  
  20.     --target-os=linux \  
  21.     --arch=arm \  
  22.     --enable-cross-compile \  
  23.     --sysroot=$SYSROOT \  
  24.     --extra-cflags="-Os -fpic $ADDI_CFLAGS" \  
  25.     --extra-ldflags="$ADDI_LDFLAGS" \  
  26.     $ADDITIONAL_CONFIGURE_FLAG  
  27. make clean  
  28. make  
  29. make install  
  30. }  
  31. CPU=arm  
  32. PREFIX=$(pwd)/android/$CPU   
  33. ADDI_CFLAGS="-marm"  
  34. build_one  

 注意修改 NDK=$HOME/Desktop/adt/android-ndk-r9 這行  

5. 執(zhí)行 

Java代碼  
  1. sudo chmod +x build_android.sh  
  2.   
  3. ./build_android.sh  

 6.輸出  $NDK/sources/ffmpeg-xxx/android,  arm/lib 和arm/include 

注意 arm/lib包含了兩個(gè) library files (e.g.: libavcodec-55.so) 和 symbolic links (e.g.: libavcodec.so) 我們需要?jiǎng)h掉 symbolic links .

7. 讓ffmpeg Libraries用在我們的工程下

為了使ffmpeg libraries 可以作為 reusable modules, 需要添加一個(gè)文件 $NDK/sources/ffmpeg-xxx/android/arm/Android.mk 使用如下內(nèi)容,

Java代碼  
  1. include $(CLEAR_VARS)  
  2. LOCAL_MODULE:= libavcodec  
  3. LOCAL_SRC_FILES:= lib/libavcodec-55.so  
  4. LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include  
  5. include $(PREBUILT_SHARED_LIBRARY)  
  6.    
  7. include $(CLEAR_VARS)  
  8. LOCAL_MODULE:= libavformat  
  9. LOCAL_SRC_FILES:= lib/libavformat-55.so  
  10. LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include  
  11. include $(PREBUILT_SHARED_LIBRARY)  
  12.    
  13. include $(CLEAR_VARS)  
  14. LOCAL_MODULE:= libswscale  
  15. LOCAL_SRC_FILES:= lib/libswscale-2.so  
  16. LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include  
  17. include $(PREBUILT_SHARED_LIBRARY)  
  18.    
  19. include $(CLEAR_VARS)  
  20. LOCAL_MODULE:= libavutil  
  21. LOCAL_SRC_FILES:= lib/libavutil-52.so  
  22. LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include  
  23. include $(PREBUILT_SHARED_LIBRARY)  
  24.    
  25. include $(CLEAR_VARS)  
  26. LOCAL_MODULE:= libavfilter  
  27. LOCAL_SRC_FILES:= lib/libavfilter-3.so  
  28. LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include  
  29. include $(PREBUILT_SHARED_LIBRARY)  
  30.    
  31. include $(CLEAR_VARS)  
  32. LOCAL_MODULE:= libwsresample  
  33. LOCAL_SRC_FILES:= lib/libswresample-0.so  
  34. LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include  
  35. include $(PREBUILT_SHARED_LIBRARY)  

 這就是為什么我們把源碼放在source文件夾下,ndk會(huì)自動(dòng)尋找

8.使用

 使用 libraries在Android project’s jni/Android.mk file,

Java代碼  
  1. LOCAL_PATH := $(call my-dir)  
  2.    
  3. include $(CLEAR_VARS)  
  4.    
  5. LOCAL_MODULE    := tutorial03  
  6. LOCAL_SRC_FILES := tutorial03.c  
  7. LOCAL_LDLIBS := -llog -ljnigraphics -lz -landroid  
  8. LOCAL_SHARED_LIBRARIES := libavformat libavcodec libswscale libavutil  
  9.    
  10. include $(BUILD_SHARED_LIBRARY)  
  11. $(call import-module,ffmpeg-2.0.1/android/arm)  

 這里你就會(huì)發(fā)現(xiàn) 我們用到了source中調(diào)用了 import-module 使用相對(duì)路徑去調(diào)用。

 

 

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
FFMPEG移植到Android(ubuntu環(huán)境下)
android使用mk文件的進(jìn)階
AndroidStudio 中使用FFMPEG
終于把freetype移植到android下了!
編譯FFmpeg+x264移植到安卓(一)
FFmpeg: Encoding/Decoding Library
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服