淄博建網(wǎng)站哪家好百度搜索排名查詢
1. ffmpeg 簡介:
????????FFmpeg是一套可以用來記錄、轉換數(shù)字音頻、視頻,并能將其轉化為流的開源計算機程序。采用LGPL或GPL許可證。它提供了錄制、轉換以及流化音視頻的完整解決方案。它包含了非常先進的音頻/視頻編解碼庫libavcodec,為了保證高可移植性和編解碼質量,libavcodec里很多code都是從頭開發(fā)的。
????????FFmpeg在Linux平臺下開發(fā),但它同樣也可以在其它操作系統(tǒng)環(huán)境中編譯運行,包括Windows、Mac OS X等。這個項目最早由Fabrice Bellard發(fā)起,2004年至2015年間由Michael Niedermayer主要負責維護。許多FFmpeg的開發(fā)人員都來自MPlayer項目,而且當前FFmpeg也是放在MPlayer項目組的服務器上。項目的名稱來自MPEG視頻編碼標準,前面的"FF"代表"Fast Forward"。?[1]FFmpeg編碼庫可以使用GPU加速。
2. ffmpeg組成
????????FFmpeg是一套可以用來記錄、轉換數(shù)字音頻、視頻,并能將其轉化為流的開源計算機程序。它包括了領先的音/視頻編碼庫libavcodec等。
libavformat:用于各種音視頻封裝格式的生成和解析,包括獲取解碼所需信息以生成解碼上下文結構和讀取音視頻幀等功能;
libavcodec:用于各種類型聲音/圖像編解碼;
libavutil:包含一些公共的工具函數(shù);
libswscale:用于視頻場景比例縮放、色彩映射轉換;
libpostproc:用于后期效果處理;
ffmpeg:該項目提供的一個工具,可用于格式轉換、解碼或電視卡即時編碼等;
ffsever:一個 HTTP 多媒體即時廣播串流服務器;
ffplay:是一個簡單的播放器,使用ffmpeg 庫解析和解碼,通過SDL顯示;
3. 編譯
3.1 ffmpeg 下載
ffmpeg 官網(wǎng)地址如下:
https://ffmpeg.org/download.html
ffmpeg 下載代碼命令:
git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
3.2 編譯
將代碼切換到release-4.0分支;在根目錄下新建文件congfig.sh, 內容如下:
#ndk 環(huán)境
NDK=/Users/xxx/Documents/source/android-ndk-r16b
SYSROOT=$NDK/platforms/android-21/arch-arm
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64
# cpu 架構平臺,若要編譯 x86 則指定 x86
#CPU=armv7-a
CPU=arm64-v8a
在根目錄下創(chuàng)建build_android.sh,文件內容如下:
#!/bin/sh
. config.shPREFIX=$(pwd)/android/$CPU
ISYSROOT=$NDK/sysroot
ASM=$ISYSROOT/usr/include/$PLATFORMmkdir -p $PREFIX
ADDI_CFLAGS="-marm"
function build_android
{
./configure \--prefix=$PREFIX \--enable-shared \--enable-static \--disable-doc \--disable-ffmpeg \--disable-ffplay \--disable-ffprobe \--disable-avdevice \--disable-doc \--disable-symver \--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \--target-os=android \--arch=arm \--enable-cross-compile \--sysroot=$SYSROOT \--extra-cflags="-I$ASM -isysroot $ISYSROOT -isystem $ISYSROOT/usr/include/arm-linux-androideabi -Os -fpic -marm" \--extra-ldflags="$ADDI_LDFLAGS" \$ADDITIONAL_CONFIGURE_FLAG
make clean
make
make install
}
build_android
在根目錄下的終端輸入如下命令進行編譯:
./build_android.sh
運行完成以后可以在android目錄下看到如下文件:
4.參考文獻:
ffmpeg 百度百科