Linux上FFmpeg生成so庫

2021-08-14 01:12:41 字數 3918 閱讀 5691

我用的是ubuntu做開發的,之前使用過centos7去編譯的  感覺太麻煩出錯了,從朋友那得知ubuntu和debian 是適用於開發的

1. cd /home/切換到home 目錄

2.mkdir ndk在home目錄下新建資料夾 ndk

3.把linux版的ndk上傳到ubuntu伺服器上

4.cd /home/切換到home 目錄

5.mkdir ffmpeg新建ffmpeg資料夾

6.把ffmpeg壓縮包上傳到該目錄下

7.安裝軟體

1)vim

安裝命令 

sudo apt-get install vim-gtk  檢視是否安裝成功 vim

2)unzip        

安裝命令 

sudo apt-get install unzip    

壓縮檔案  例如:

unzip 

ffmpeg-2.6.9.zip

3)dos2unix  

安裝命令 

apt-get install dos2unix

改檔案格式  例如  

dos2unix android_build.bash

4)make        

安裝命令 

apt-get install make

方便後面configure的使用

5)zip            壓縮命令 

zip  android.zip  android 

8.修改檔案

1)vim

vim /etc/vim/vimrc

尾部增加**

set nu                           // 在左側行號

set tabstop                  //tab 長度設定為 4

set nobackup               //覆蓋檔案時不備份

set cursorline               //突出顯示當前行

set ruler                       //在右下角顯示游標位置的狀態行

set autoindent             //自動縮排

2) cd~

ls

vim  

~/.bashrc  進入配置環境變數(~代表使用者)

尾部增加**

export ndkroot=/home/ndk/android-ndk-r10e   目錄自己根據自己的伺服器去改

export path=$ndkroot:$path

esc退出 shift zz

source ~/.bashrc  更新環境變數

ndk-build -v 

ndk-build

vim如何操作?

命令模式是不能寫東西  要寫東西  輸入 i

不儲存退出(強制退出) shift +:q!

儲存退出  shift+ z z 或者 shift+:wq!

進入編輯模式 輸入i

退出編輯模式進入命令模式 esc

9.解壓上傳的linux ndk

cd ../   切換上機目錄

chmod 777 -r ndk

ls 檢視子檔案 可以發現要解壓的檔案呈綠色顯示

cd  ndk 切換到目錄下

./android-ndk-r10e-linux-x86_64.bin

10.解壓ffmpeg

上同處理檔案、壓縮包 需要許可權 cd ../   chmod 777 -r ffmpeg

unzip ffmpeg-2.6.9

11.新建android_build.sh檔案

touch android_build.sh

通過xftp把檔案傳到本地

並把本地**考入,且做出相應更改

#!/bin/bash

make clean

export ndk=/home/software/android-ndk-r10e

export sysroot=$ndk/platforms/android-9/arch-arm/

export toolchain=$ndk/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64

export cpu=arm

export prefix=$(pwd)/android/$cpu

export addi_cflags="-marm"

./configure --target-os=linux \

--prefix=$prefix --arch=arm \

--disable-doc \

--enable-shared \

--disable-static \

--disable-yasm \

--disable-symver \

--enable-gpl \

--disable-ffmpeg \

--disable-ffplay \

--disable-ffprobe \

--disable-ffserver \

--disable-doc \

--disable-symver \

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

--enable-cross-compile \

--sysroot=$sysroot \

--extra-cflags="-os -fpic $addi_cflags" \

--extra-ldflags="$addi_ldflags" \

$additional_configure_flag

make clean

make

make install

ndk 目錄自己更改

12.把configure檔案  從linux伺服器上 pull下來

進行更改 

#update 之前是為更改** |  #update 之後是

更改後的**  (是為了避免字尾名的錯誤)

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

#update

slibname_with_major='$(slibpref)$(fullname)-$(libmajor)$(slibsuf)'

lib_install_extra_cmd='$$(ranlib)"$(libdir)/$(libname)"'

slib_install_name='$(slibname_with_major)'

slib_install_links='$(slibname)'

13編譯

切換到ffmpeg-2.6.9目錄下shell命令 ./android_build.sh

使用FFMPEG生成HLS

現在簡單說一下m3u8檔案。以下是由ffmpeg生成的乙個直播的m3u8檔案 extm3u ext x version 3 ext x targetduration 13 ext x media sequence 4 extinf 12.345667,playlist4.ts extinf 9.21...

使用FFMPEG生成HLS

現在簡單說一下m3u8檔案。以下是由ffmpeg生成的乙個直播的m3u8檔案 playlist4.ts playlist5.ts playlist6.ts playlist7.ts playlist8.ts playlist9.ts 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ...

使用FFMPEG生成HLS

現在簡單說一下m3u8檔案。以下是由ffmpeg生成的乙個直播的m3u8檔案 extm3u ext x version 3 ext x targetduration 13 ext x media sequence 4 extinf 12.345667,playlist4.ts extinf 9.21...