淄博建網(wǎng)站哪家好百度搜索排名查詢
1. ffmpeg 簡(jiǎn)介:
????????FFmpeg是一套可以用來記錄、轉(zhuǎn)換數(shù)字音頻、視頻,并能將其轉(zhuǎn)化為流的開源計(jì)算機(jī)程序。采用LGPL或GPL許可證。它提供了錄制、轉(zhuǎn)換以及流化音視頻的完整解決方案。它包含了非常先進(jìn)的音頻/視頻編解碼庫libavcodec,為了保證高可移植性和編解碼質(zhì)量,libavcodec里很多code都是從頭開發(fā)的。
????????FFmpeg在Linux平臺(tái)下開發(fā),但它同樣也可以在其它操作系統(tǒng)環(huán)境中編譯運(yùn)行,包括Windows、Mac OS X等。這個(gè)項(xiàng)目最早由Fabrice Bellard發(fā)起,2004年至2015年間由Michael Niedermayer主要負(fù)責(zé)維護(hù)。許多FFmpeg的開發(fā)人員都來自MPlayer項(xiàng)目,而且當(dāng)前FFmpeg也是放在MPlayer項(xiàng)目組的服務(wù)器上。項(xiàng)目的名稱來自MPEG視頻編碼標(biāo)準(zhǔn),前面的"FF"代表"Fast Forward"。?[1]FFmpeg編碼庫可以使用GPU加速。
2. ffmpeg組成
????????FFmpeg是一套可以用來記錄、轉(zhuǎn)換數(shù)字音頻、視頻,并能將其轉(zhuǎn)化為流的開源計(jì)算機(jī)程序。它包括了領(lǐng)先的音/視頻編碼庫libavcodec等。
libavformat:用于各種音視頻封裝格式的生成和解析,包括獲取解碼所需信息以生成解碼上下文結(jié)構(gòu)和讀取音視頻幀等功能;
libavcodec:用于各種類型聲音/圖像編解碼;
libavutil:包含一些公共的工具函數(shù);
libswscale:用于視頻場(chǎng)景比例縮放、色彩映射轉(zhuǎn)換;
libpostproc:用于后期效果處理;
ffmpeg:該項(xiàng)目提供的一個(gè)工具,可用于格式轉(zhuǎn)換、解碼或電視卡即時(shí)編碼等;
ffsever:一個(gè) HTTP 多媒體即時(shí)廣播串流服務(wù)器;
ffplay:是一個(gè)簡(jiǎn)單的播放器,使用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, 內(nèi)容如下:
#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 架構(gòu)平臺(tái),若要編譯 x86 則指定 x86
#CPU=armv7-a
CPU=arm64-v8a
在根目錄下創(chuàng)建build_android.sh,文件內(nèi)容如下:
#!/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
在根目錄下的終端輸入如下命令進(jìn)行編譯:
./build_android.sh
運(yùn)行完成以后可以在android目錄下看到如下文件:
4.參考文獻(xiàn):
ffmpeg 百度百科