Android中使用FFmpeg(一)

2021-08-09 07:24:51 字數 2079 閱讀 9940

1、編譯環境

2、準備工作

3、編譯ffmpeg

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

編寫指令碼檔案

新建指令碼檔案ffmpeg-3.3.4/build_android_ffmpeg.sh並儲存

新建ffmpeg-3.3.4/ffmepgtemp資料夾作為ffmpeg編譯後生成的檔案目錄

在ffmpeg-3.3.4/build_android_ffmpeg.sh中新增如下內容

#!/bin/bash

export tmpdir=/users/mumu/desktop/ffmpeg-3.3.4/ffmpegtemp #這句很重要,不然會報錯 unable to create temporary file in

# ndk的路徑,根據自己的安裝位置進行設定

ndk=/users/mumu/library/android/sdk/ndk-bundle

# 編譯針對的平台,可以根據自己的需求進行設定

# 這裡選擇最低支援android-14, arm架構,生成的so庫是放在

# libs/armeabi資料夾下的,若針對x86架構,要選擇arch-x86

platform=$ndk/platforms/android-14/arch-arm

# 工具鏈的路徑,根據編譯的平台不同而不同

# arm-linux-androideabi-4.9與上面設定的platform對應,4.9為工具的版本號,

# 根據自己安裝的ndk版本來確定,一般使用最新的版本

toolchain=$ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64

function build_one

# arm v7vfp

cpu=armv7-a# 編譯生成的cpu型別

optimize_cflags="-mfloat-abi=softfp -mfpu=vfp -marm -march=$cpu "

prefix=./android/$cpu-vfp

additional_configure_flag=

build_one

執行build_android_ffmpeg.sh

等待10分鐘左右

編譯完成後在ffmpeg-3.3.4/android/armv7-a-vfp/lib生成相應的so

Android中使用全屏

在開發android研發時,最開始一般都會有個全屏顯示的閃屏,下面提供實現全屏的兩種方法 1 通過 實現 去掉標題欄 this.requestwindowfeature window.feature no title 全屏顯示 this.getwindow setflags windowmanage...

Ubuntu19 10安裝及使用FFmpeg

然後,選擇下自己可以使用的版本,一般是第乙個這個 xz命令 tar命令 完成後cd到這個路徑內 行了,綠色懶人版安裝成功。使用 ffmpeg使用上也就是命令列方式,這個的話還是要記住下命令的格式的 ffmpeg 全域性引數 這裡注意的是我們使用的是沒有安裝的版本,所以每次都要再這個資料夾內開啟終端才...

Android中使用AsyncTask實現非同步載入

使用該類可以在子執行緒中更新ui,具體表現在和handler相比,其封裝和簡化了非同步操作的過程 一般需要重寫乙個類來繼承和實現asynctask類,如public myasynctask extends asynctask,三個引數一次表示 1,params 啟動任務時輸入引數的型別 2,prog...