linux下ffmpeg編譯成so文件,一、ffmpeg編譯成android使用的so庫

1.在https://ffmpeg.org/中下載ffmpeg源碼(目前版本為ffmpeg-3.2.1)

2.下載ndk

3.分別解壓ffmpeg和ndk, 路徑如 :

ffmpeg路徑:

/home/lx/Downloads/ffmpeg-3.2.1

ndk路徑:

/home/lx/Downloads/android-ndk-r13b

4.替換ffmpeg-3.2.1/configure 中的

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)'

為 :

SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)'

LIB_INSTALL_EXTRA_CMD='$$(RANLIB)"$(LIBDIR)/$(LIBNAME)"'

SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)'

SLIB_INSTALL_LINKS='$(SLIBNAME)'

5.在ffmpeg-3.2.1/目錄下創建一個build_android文件,內容為

#!/bin/bash

NDK=/home/lx/Downloads/android-ndk-r13b

SYSROOT=$NDK/platforms/android-19/arch-arm/

TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64

CPU=arm

ARCH=arm

PREFIX=$(pwd)/android/$CPU

ADDI_CFLAGS="-marm"

export NDK

export SYSROOT

export TOOLCHAIN

#注意下面的 \ 后面不要帶空格

./configure \

--prefix=$PREFIX \

--arch=$ARCH \

--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \

--extra-ldflags="$ADDI_LDFLAGS" \

--sysroot=$SYSROOT \

--extra-cflags="-Os -fpic $ADDI_CFLAGS" \

--target-os=linux \

--enable-cross-compile \

--enable-gpl \

--enable-shared \

--disable-static \

--disable-doc \

--enable-small \

--disable-programs \

--disable-ffmpeg \

--disable-ffplay \

--disable-ffprobe \

--disable-ffserver \

$ADDITIONAL_CONFIGURE_FLAG

make

make install

6.在命令行下添加可執行權限 chmod +x ?build_android

7.在命令行下執行 ./build_android

8.生成的lib和include在?ffmpeg-3.2.1/如下 目錄下

lx@ubt:~/Downloads/ffmpeg-3.2.1/android/arm$ ls

include lib

lx@ubt:~/Downloads/ffmpeg-3.2.1/android/arm/include$ ls

libavcodec libavdevice libavfilter libavformat libavutil libpostproc libswresample libswscale

lx@ubt:~/Downloads/ffmpeg-3.2.1/android/arm/lib$ ls

libavcodec-57.so libavdevice-57.so libavfilter-6.so libavformat-57.so libavutil-55.so libpostproc-54.so libswresample-2.so libswscale-4.so pkgconfig

libavcodec.so libavdevice.so libavfilter.so libavformat.so libavutil.so libpostproc.so libswresample.so libswscale.so

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/287223.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/287223.shtml
英文地址,請注明出處:http://en.pswp.cn/news/287223.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

SpringMVC總結帖

SpringMVC是基于MVC設計理念的一款優秀的Web框架,是目前最流行的MVC框架之一,SpringMVC通過一套注解,讓POPJ成為處理請求的控制器,而無需實現任何接口,然后使用實現接口的控制器也完全沒問題;支持REST風格的…

Android之RxPermissions用kotlin寫沒反應

1 問題 用rxPermisssons下面的寫法沒反應 RequiresApi(Build.VERSION_CODES.N)fun test(){val rxPermissions RxPermissions(this)rxPermissions.requestEach(Manifest.permission.CAMERA,Manifest.permission.WRITE_EXTERNAL_STORAGE).subscribe {object : Consumer<Perm…

基于.NetCore開發博客項目 StarBlog - (7) 頁面開發之文章詳情頁面

系列文章基于.NetCore開發博客項目 StarBlog - (1) 為什么需要自己寫一個博客&#xff1f;基于.NetCore開發博客項目 StarBlog - (2) 環境準備和創建項目基于.NetCore開發博客項目 StarBlog - (3) 模型設計基于.NetCore開發博客項目 StarBlog - (4) markdown博客批量導入基于.N…

關 于 解 析 php 的 問 題

在搭建discuz論壇的時候出的問題&#xff0c;上次搭建用的是2.2版本&#xff0c;這次下了個2.4版的Apache發現有好多地方不一樣&#xff1b;比如在order deny allow 方面就變了Deny from all變成Require all deniedAllow from all變成Require all granted今天在配置完后開始在瀏…

【攝影測量原理】第三章:雙像立體測圖

本章主要內容: 第一節 人眼的立體視覺和立體觀測第二節 立體像對相對定向和核線幾何第三節 立體像對的前方交會第四節 單元模型的絕對定向第五節 雙像解析攝影測量 第一節 人眼的立體視覺和立體觀測 1.1 人眼的立體視覺 人用雙眼判斷景物可判斷其遠近,得到…

linux源碼編譯emqttd,emqtt編譯及簡單測試記錄

emqtt&#xff1a;在Erlang中實現的MQTT客戶端庫和命令行工具&#xff0c;支持MQTT v5.0 / 3.1.1 / 3.1。下載源碼編譯cd emqtt & make運行./rebar3 shell測試1、初始化{ok, ConnPid} emqtt:start_link([{clientid, "2020"},{keepalive, 0},{proto_ver, v5},{ho…

《看聊天記錄都學不會C語言?太菜了吧》(18)2分鐘搞結構體

若是大一學子或者是真心想學習剛入門的小伙伴可以私聊我&#xff0c;若你是真心學習可以送你書籍&#xff0c;指導你學習&#xff0c;給予你目標方向的學習路線&#xff0c;無套路&#xff0c;博客為證。 本系列文章將會以通俗易懂的對話方式進行教學&#xff0c;對話中將涵蓋…

【攝影測量原理】第四章:解析空中三角測量

第一節 概述第二節 航帶法解析空中三角測量第三節 獨立模型法解析空中三角測量第四節 光束法解析空中三角測量第五節 GPS輔助空中三角測量第六節 機載POS系統對地定位 第一節 概述 空中三角測量 是立體攝影測量中,根據少量的野外控制點,在室內進…

setInterval和setTimeout的使用區別

setTimeout和setInterval的使用 這兩個方法都可以用來實現在一個固定時間段之后去執行JavaScript。不過兩者各有各的應用場景。 方 法 實際上&#xff0c;setTimeout和setInterval的語法相同。它們都有兩個參數&#xff0c;一個是將要執行的代碼字符串&#xff0c;還有一個是以…

「System Design」設計一個短鏈接系統

短鏈接系統可以把比較長的 URL 網址轉換成簡短的網址字符串&#xff0c;短鏈接的優勢是方便傳播。適合在一些對字符串長度有要求的場景中使用&#xff0c;比如短信&#xff0c;微博等&#xff0c;比如https://www.cnblogs.com/myshowtime/p/16227260.html轉換成短鏈接為https:/…

Android之頁面有變化用onWindowFocusChanged來監聽權限是否開啟

1 問題 我們需要在Activity里面監聽網絡變化、熱點是否開啟和關閉、GPS服務是否開啟、位置權限是否開啟等一些列行為。 2 思路 方法一: 如果是需要啟動activity進行權限申請,我們可以用如下組合模式 var intent = Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS)startA…

iOS中 Animation 動畫大全 韓俊強的博客

每日更新關注:http://weibo.com/hanjunqiang 新浪微博&#xff01; iOS開發者交流QQ群&#xff1a; 4463102061.iOS中我們能看到的控件都是UIView的子類,比如UIButton UILabel UITextField UIImageView等等 2.UIView能夠在屏幕的顯示是因為在創建它的時候內部自動添加一個CALa…

IROS 2017上,這些廠商將會給我們展示什么樣的黑科技?

相比起大多數AI學術會議&#xff0c;機器人領域最具影響力的學術會議IROS要“好看”得多。在這個學術會議上不僅會有AI和機器人領域最新的研究成果的論文展示&#xff0c;更有不少來自于科研機構和機器人領域公司機器人&#xff0c;向我們展示著展示機器之美。 比如&#xff0c…

《看聊天記錄都學不會C#?太菜了吧》(3)變量:我大哥呢?$:小弟我罩著你!

本系列文章將會以通俗易懂的對話方式進行教學&#xff0c;對話中將涵蓋了新手在學習中的一般問題。此系列將會持續更新&#xff0c;包括別的語言以及實戰都將使用對話的方式進行教學&#xff0c;基礎編程語言教學適用于零基礎小白&#xff0c;之后實戰課程也將會逐步更新。 若…

linux block設備,Linux I/O Block--塊設備的表示

塊設備的分區信息由struct hd_struct結構描述&#xff0c;其中最重要的信息就是分區的起始扇區號和分區的大小。所有分區信息都一起保存在gendisk的part_tbl結構中&#xff0c;同時每個分區的block_device也可以通過bd_part來查詢對應的分區信息。下圖描述了block_device,gendi…

【搶鮮版】ArcGIS 10.7手把手經典圖文安裝教程(附安裝包下載地址)

軟件更新真是個快,ArcGIS10.7已經亮相了!回頭想想,作者追隨ArcGIS已經有11個年頭了(從ArcGIS 9.2到ArcGIS10.7,每個版本都搶鮮使用,先睹為快),本文演示10.7完美安裝過程(附下載地址),親測可用! 目 錄 一、系統環境要求 二、軟件安裝過程 三、軟件下載地址 一、…

Android之解決ViewPager2+PhotoView滑動圖片花屏問題

1 問題 用ViewPager2和開源框架PhotoView(com.github.chrisbanes.photoview.PhotoView)組合實現滑動預覽圖片, 但是部分機型出現花屏效果 2 原因 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas…

請來圍觀:WPF開發的微信客戶端!!!

本文經原作者授權以原創方式二次分享&#xff0c;歡迎轉載、分享。原文作者&#xff1a;眾尋原文鏈接&#xff1a;https://www.cnblogs.com/ZXdeveloper/p/6058206.html公司的同事離職了&#xff0c;接下來的日子可能會忙碌&#xff0c;能完善DEMO的時間也會少了&#xff0c;因…

C#字符串、字節數組和內存流間的相互轉換 - IT浪潮之巔

定義string變量為str,內存流變量為ms,比特數組為bt 1.字符串>比特數組 (1)byte[] btSystem.Text.Encoding.Default.GetBytes("字符串");(2)byte[] btConvert.FromBase64String("字符串"); 補充&#xff1a; System.Text.Encoding.Unicode.GetBytes(str)…

ios-新浪微博-下拉刷新獲取最新的消息(解決消息重復的問題)(五)

2019獨角獸企業重金招聘Python工程師標準>>> 第一步 在上一篇博文的基礎上&#xff0c;利用新浪提供的since_id進行判斷&#xff0c;在刷新監聽的方法中&#xff0c;引入下面的代碼 結果如下圖 轉載于:https://my.oschina.net/iOSliuhui/blog/520495