Linux下NDK編譯FFMPEG包含neon參數

来源:http://www.cnblogs.com/HuangWj/archive/2016/05/17/5502049.html
-Advertisement-
Play Games

FFMPEG編譯成Android庫已經有很多案例了,編譯優化neon的也很多,以下是我通過實踐成功的案例,這裡主要講編譯的配置文件,其他設置可結合Linux下使用NDK編譯FFMPEG(libstagefright)進行配置。 config_android.sh 關鍵的幾個參數是 有一篇博客的參數" ...


FFMPEG編譯成Android庫已經有很多案例了,編譯優化neon的也很多,以下是我通過實踐成功的案例,這裡主要講編譯的配置文件,其他設置可結合Linux下使用NDK編譯FFMPEG(libstagefright)進行配置。

config_android.sh

NDK=/opt/android/android-ndk-r9
PLATFORM=$NDK/platforms/android-14/arch-arm/  
PREBUILT=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64
LOCAL_ARM_NEON=true  
CPU=armv7-a  
OPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=neon"
PREFIX=$(pwd)/android/$CPU

./configure --target-os=linux \
    --prefix=$PREFIX \
    --enable-cross-compile \
    --arch=arm \
    --enable-nonfree \
    --enable-asm \
    --cpu=armv7-a \
    --enable-neon \
    --cc=$PREBUILT/bin/arm-linux-androideabi-gcc \
    --cross-prefix=$PREBUILT/bin/arm-linux-androideabi- \
    --nm=$PREBUILT/bin/arm-linux-androideabi-nm \
    --sysroot=$PLATFORM \
    --extra-cflags="-fpic -DANDROID $OPTIMIZE_CFLAGS " \
    --enable-shared \
    --disable-static \
    --extra-ldflags="-Wl,-rpath-link=$PLATFORM/usr/lib -L$PLATFORM/usr/lib  -nostdlib -lc -lm -ldl -llog" \
    --disable-ffmpeg \
    --disable-ffplay \
    --disable-ffprobe \
    --disable-ffserver \
    --enable-avformat \
    --enable-avcodec \
    --disable-optimizations \
    --disable-debug \
    --disable-doc \
    --disable-stripping \
    --enable-pthreads \
    --disable-yasm \
    --enable-zlib \
    --enable-pic \
    --enable-small

關鍵的幾個參數是

    --enable-asm \
    --cpu=armv7-a \
    --enable-neon \
    --arch=arm \
    --enable-cross-compile \
    --extra-ldflags="-Wl,-rpath-link=$PLATFORM/usr/lib -L$PLATFORM/usr/lib  -nostdlib -lc -lm -ldl -llog" \
  --extra-cflags="-fPIC -DANDROID -mfpu=neon -mfloat-abi=softfp -I$NDKROOT/platforms/android-9/arch-arm/usr/include" \

有一篇博客的參數"--extra-ldflags"是一大串的,而且還很多人copy,不知道他們是不是真的都成功了,反正我是沒成功

--extra-ldflags="-Wl,-T,$PREBUILT/arm-linux-androideabi/lib/ldscripts/armelf_linux_eabi.x -Wl,-rpath-link=$NDKROOT/platforms/android-9/arch-arm/usr/lib -L$NDKROOT/platforms/android-9/arch-arm/usr/lib -nostdlib $PREBUILT/lib/gcc/arm-linux-androideabi/4.6/crtbegin.o $PREBUILT/lib/gcc/arm-linux-androideabi/4.6/crtend.o -lc -lm -ldl"

把黃色背景這部分去掉就可以了,也沒弄懂這部分是幹嘛用的,如果有知道的大神,有不嗇這一點時間的,請留言指點一下,先收下我的膝蓋!

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 我不喜歡那些泛泛而談的去講那些形而上學的道理,更不喜歡記那些既定的東西。靠記憶去彌補思考的人,容易陷入人云亦云的境地,最後必定被記憶所圍困,而最終消亡的是創造力。希望這個高手之路系列能夠記錄我學習安卓的點點滴滴。從而匯成流,聚為江,成為海。 下麵就結合代碼分析一下ClassLoader這個東西。 安 ...
  • OC NSFileManager(文件路徑操作) 初始化 獲取當前目錄 更改當前目錄 創建新目錄 拷貝目錄(文件) 移動目錄(文件) 刪除目錄(文件 通過遞歸枚舉目錄下所有文件及目錄 獲取當前目錄下的文件及目錄 創建文件 判斷文件是否存在 獲取文件屬性 從文件讀二進位流 ` ` ...
  • 前言:對Rx不瞭解的朋友可以先看我的第一篇博文 RxJava 和 RxAndroid ,是對Rxjava的基本介紹 1、merge操作符,合併觀察對象 運行結果 ...
  • LoginViewController * loginVC = [[LoginViewController alloc]init]; 找window的三種方式 1、// UIWindow * window = [UIApplication sharedApplication].delegate.wi ...
  • 1. 避免界面在處理耗時(讀取資料庫,網路請求)操作時卡死,在另外一條線程中處理這些操作,然後在主線程中更新UI。代碼比NSThread NSOperation簡潔很多,而且GCD會自動根據任務在多核處理器上分配資源,優化程式。 dispatch_async(dispatch_get_global_ ...
  • UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, KScreenHeight-64)]; webView.backgroundColor=YYCToothWashViewBgCol ...
  • 通過這張圖,我們可以知道一個MediaPlayer對象有以下的狀態:1)當一個MediaPlayer對象被剛剛用new操作符創建或是調用了reset()方法後,它就處於Idle狀態。當調用了release()方法後,它就處於End狀態。這兩種狀態之間是MediaPlayer對象的生命周期。1.1) ...
  • 最近做的一個項目,伺服器為Java,採用SSH框架,客戶端為Android和IOS。當用戶登錄時,從客戶端向伺服器提交用戶名和密碼。這就存在一個問題,如果數據包在網路上被其他人截取了,密碼就有可能泄露。 可以採用Base64對密碼編碼,但是Base64要進行解碼是很容易的事。 另一種方法是對密碼進行 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...