欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

ios8.1下編譯ffmpeg

郝萌主傾心貢獻(xiàn),尊重作者的勞動(dòng)成果,請(qǐng)勿轉(zhuǎn)載。

武陟網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、自適應(yīng)網(wǎng)站建設(shè)等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)公司2013年成立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專(zhuān)注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。

如果文章對(duì)您有所幫助,歡迎給作者捐贈(zèng),支持郝萌主,捐贈(zèng)數(shù)額隨意,重在心意^_^ 

我要捐贈(zèng): 點(diǎn)擊捐贈(zèng)

Cocos2d-X×××:點(diǎn)我傳送


先說(shuō)步驟吧。

一:下載gas-preprocessor.pl.并把它粘貼到usr/bin或者usr/sbin都可以。
     
      有同學(xué)是不是發(fā)現(xiàn)沒(méi)有usr這個(gè)文件夾?
       mac os x隱藏文件夾 自己去搜索怎么找出來(lái)。

       然后有個(gè)權(quán)限 cd到usr/bin下 chmod +x gas-preprocessor.pl.

二:shell 命令符進(jìn)行編譯

      ios8及其更高系統(tǒng)shell腳本如下
 

#!/bin/bash


###########################################################################

#  Choose your ffmpeg version and your currently-installed iOS SDK version:

#

VERSION="2.0.2"

SDKVERSION="8.1"

ARCHS="armv7 armv7s i386"

#

#

###########################################################################

#

# Don't change anything under this line!

#

###########################################################################


DEVELOPER=`xcode-select -print-path`


cd "`dirname \"$0\"`"

REPOROOT=$(pwd)


# Where we'll end up storing things in the end

OUTPUTDIR="${REPOROOT}/dependencies"

mkdir -p ${OUTPUTDIR}/include

mkdir -p ${OUTPUTDIR}/lib

mkdir -p ${OUTPUTDIR}/bin



BUILDDIR="${REPOROOT}/build"

mkdir -p $BUILDDIR


# where we will keep our sources and build from.

SRCDIR="${BUILDDIR}/src"

mkdir -p $SRCDIR

# where we will store intermediary builds

INTERDIR="${BUILDDIR}/built"

mkdir -p $INTERDIR


########################################


cd $SRCDIR


# Exit the script if an error happens

set -e


if [ ! -e "${SRCDIR}/ffmpeg-${VERSION}.tar.bz2" ]; then

echo "Downloading ffmpeg-${VERSION}.tar.bz2"

    curl -LO http://ffmpeg.org/releases/ffmpeg-${VERSION}.tar.bz2

else

echo "Using ffmpeg-${VERSION}.tar.bz2"

fi


tar jxf ffmpeg-${VERSION}.tar.bz2 -C $SRCDIR

cd "${SRCDIR}/ffmpeg-${VERSION}"


set +e # don't bail out of bash script if ccache doesn't exist

CCACHE=`which ccache`

if [ $? == "0" ]; then

    echo "Building with ccache: $CCACHE"

    CCACHE="${CCACHE} "

else

    echo "Building without ccache"

    CCACHE=""

fi

set -e # back to regular "bail out on error" mode


for ARCH in ${ARCHS}

do

if [ "${ARCH}" == "i386" ];

then

PLATFORM="iPhoneSimulator"

        EXTRA_CONFIG="--arch=i386 --disable-asm --enable-cross-compile --target-os=darwin --cpu=i386"

        EXTRA_CFLAGS="-arch i386"

        EXTRA_LDFLAGS="-I${DEVELOPER}/Platforms/${PLATFORM}.platform/Developer/SDKs/${PLATFORM}${SDKVERSION}.sdk/usr/lib -mfpu=neon"

else

PLATFORM="iPhoneOS"

        EXTRA_CONFIG="--arch=arm --target-os=darwin --enable-cross-compile --cpu=cortex-a9 --disable-armv5te"

        EXTRA_CFLAGS="-w -arch ${ARCH} -mfpu=neon"

        EXTRA_LDFLAGS="-mfpu=neon"

fi


mkdir -p "${INTERDIR}/${ARCH}"


    ./configure --prefix="${INTERDIR}/${ARCH}" --disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver --disable-iconv --disable-bzlib --enable-avresample --disable-asm --sysroot="${DEVELOPER}/Platforms/${PLATFORM}.platform/Developer/SDKs/${PLATFORM}${SDKVERSION}.sdk" --cc="${DEVELOPER}/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang" --as='/usr/local/bin/gas-preprocessor.pl'  --extra-cflags="${EXTRA_CFLAGS} -miphoneos-version-min=${SDKVERSION} -I${OUTPUTDIR}/include" --extra-ldflags="-arch ${ARCH} ${EXTRA_LDFLAGS} -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/${PLATFORM}.platform/Developer/SDKs/${PLATFORM}${SDKVERSION}.sdk -miphoneos-version-min=${SDKVERSION} -L${OUTPUTDIR}/lib" ${EXTRA_CONFIG} --enable-pic --extra-cxxflags="$CPPFLAGS -I${OUTPUTDIR}/include -isysroot ${DEVELOPER}/Platforms/${PLATFORM}.platform/Developer/SDKs/${PLATFORM}${SDKVERSION}.sdk"


    make && make install && make clean

 

done


mkdir -p "${INTERDIR}/universal/lib"


cd "${INTERDIR}/armv7/lib"

for file in *.a

do


cd ${INTERDIR}

xcrun -sdk iphoneos lipo -output universal/lib/$file  -create -arch armv7 armv7/lib/$file -arch armv7s armv7s/lib/$file -arch i386 i386/lib/$file

echo "Universal $file created."


done

cp -r ${INTERDIR}/armv7/include ${INTERDIR}/universal/


echo "Done."


ios7,ios6系統(tǒng)腳本如下:

#!/bin/bash

###########################################################################
#  Choose your ffmpeg version and your currently-installed iOS SDK version:
#
VERSION="2.0.2"
SDKVERSION="6.1"
ARCHS="armv7 armv7s i386"
#
#
###########################################################################
#
# Don't change anything under this line!
#
###########################################################################

DEVELOPER=`xcode-select -print-path`

cd "`dirname \"$0\"`"
REPOROOT=$(pwd)

# Where we'll end up storing things in the end
OUTPUTDIR="${REPOROOT}/dependencies"
mkdir -p ${OUTPUTDIR}/include
mkdir -p ${OUTPUTDIR}/lib
mkdir -p ${OUTPUTDIR}/bin


BUILDDIR="${REPOROOT}/build"
mkdir -p $BUILDDIR

# where we will keep our sources and build from.
SRCDIR="${BUILDDIR}/src"
mkdir -p $SRCDIR
# where we will store intermediary builds
INTERDIR="${BUILDDIR}/built"
mkdir -p $INTERDIR

########################################

cd $SRCDIR

# Exit the script if an error happens
set -e

if [ ! -e "${SRCDIR}/ffmpeg-${VERSION}.tar.bz2" ]; then
echo "Downloading ffmpeg-${VERSION}.tar.bz2"
    curl -LO http://ffmpeg.org/releases/ffmpeg-${VERSION}.tar.bz2
else
echo "Using ffmpeg-${VERSION}.tar.bz2"
fi

tar jxf ffmpeg-${VERSION}.tar.bz2 -C $SRCDIR
cd "${SRCDIR}/ffmpeg-${VERSION}"

set +e # don't bail out of bash script if ccache doesn't exist
CCACHE=`which ccache`
if [ $? == "0" ]; then
    echo "Building with ccache: $CCACHE"
    CCACHE="${CCACHE} "
else
    echo "Building without ccache"
    CCACHE=""
fi
set -e # back to regular "bail out on error" mode

for ARCH in ${ARCHS}
do
if [ "${ARCH}" == "i386" ];
then
PLATFORM="iPhoneSimulator"
        EXTRA_CONFIG="--arch=i386 --disable-asm --enable-cross-compile --target-os=darwin --cpu=i386"
        EXTRA_CFLAGS="-arch i386"
        EXTRA_LDFLAGS="-I${DEVELOPER}/Platforms/${PLATFORM}.platform/Developer/SDKs/${PLATFORM}${SDKVERSION}.sdk/usr/lib -mfpu=neon"
else
PLATFORM="iPhoneOS"
        EXTRA_CONFIG="--arch=arm --target-os=darwin --enable-cross-compile --cpu=cortex-a9 --disable-armv5te"
        EXTRA_CFLAGS="-w -arch ${ARCH} -mfpu=neon"
        EXTRA_LDFLAGS="-mfpu=neon"
fi

mkdir -p "${INTERDIR}/${ARCH}"

    ./configure --prefix="${INTERDIR}/${ARCH}" --disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver --disable-iconv --disable-bzlib --enable-avresample --sysroot="${DEVELOPER}/Platforms/${PLATFORM}.platform/Developer/SDKs/${PLATFORM}${SDKVERSION}.sdk" --cc="${DEVELOPER}/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang" --as='/usr/local/bin/gas-preprocessor.pl' --extra-cflags="${EXTRA_CFLAGS} -miphoneos-version-min=${SDKVERSION} -I${OUTPUTDIR}/include" --extra-ldflags="-arch ${ARCH} ${EXTRA_LDFLAGS} -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/${PLATFORM}.platform/Developer/SDKs/${PLATFORM}${SDKVERSION}.sdk -miphoneos-version-min=${SDKVERSION} -L${OUTPUTDIR}/lib" ${EXTRA_CONFIG} --enable-pic --extra-cxxflags="$CPPFLAGS -I${OUTPUTDIR}/include -isysroot ${DEVELOPER}/Platforms/${PLATFORM}.platform/Developer/SDKs/${PLATFORM}${SDKVERSION}.sdk"

    make && make install && make clean
 
done

mkdir -p "${INTERDIR}/universal/lib"

cd "${INTERDIR}/armv7/lib"
for file in *.a
do

cd ${INTERDIR}
xcrun -sdk iphoneos lipo -output universal/lib/$file  -create -arch armv7 armv7/lib/$file -arch armv7s armv7s/lib/$file -arch i386 i386/lib/$file
echo "Universal $file created."

done
cp -r ${INTERDIR}/armv7/include ${INTERDIR}/universal/

echo "Done."

將其寫(xiě)成sh文件,放在桌面 cd 進(jìn)入文件夾 同樣chmod +x權(quán)限

生成最終庫(kù)。

三:你以為這就會(huì)一帆風(fēng)順?
       N多錯(cuò)誤要跟著來(lái)。

      1:pkg-config not found.媽媽桑的,pkg-config是什么東西啊。
            一查,沒(méi)這個(gè)根本不會(huì)編譯成功。
           去安裝這個(gè)玩意再說(shuō):http://blog.csdn.net/chenhezhuyan/article/details/9455625。

       2:肯定會(huì)有這樣的錯(cuò)誤:compile c test failed。這是configure的編譯器路徑出現(xiàn)了錯(cuò)誤。
             XCODE6以下的系統(tǒng)貌似都是gcc+,而以上都是clang。
             打印編譯器路徑,把上面對(duì)應(yīng)腳本改一改,就好了。

       3:armv7,armv7s,i386前面兩個(gè)對(duì)應(yīng)真機(jī),后面一個(gè)對(duì)應(yīng)模擬器。
             編譯環(huán)境都不一樣的,所以記住真機(jī)和模擬器兩種編譯環(huán)境的路徑記得換成對(duì)應(yīng)的sdk,不然又報(bào)錯(cuò)沒(méi)找著。

四:編譯成功后,會(huì)有個(gè)build文件夾,在子層里邊有個(gè)built文件夾,里邊就是我們要的庫(kù)了。
       里邊include和lib復(fù)制到demo工程iframeextractor里邊。iframeextractor自己去github下載。
       當(dāng)然這個(gè)demo很坑爹,我后邊再說(shuō)。改一改lib search path,header search path。run,可以了。

       但是你會(huì)發(fā)現(xiàn)運(yùn)行成功的是個(gè)mov文件,尼瑪,ios本來(lái)就支持mov文件好吧,那老子怎么知道ffmpeg庫(kù)有沒(méi)有對(duì)視頻解碼成功。
       然后勢(shì)必要去找個(gè)源生框架不支持的格式,例如,.wmv。你把.wmv拷進(jìn)工程,發(fā)現(xiàn)運(yùn)行不了。

       這下讓我很疑惑了,尼瑪用的是ffmpeg的函數(shù)啊。我一度以為是不是我編譯出了錯(cuò),編譯好的庫(kù)有問(wèn)題。

       后來(lái)我把.wmv文件格式生生改成.mov。大功告成。

       當(dāng)然這個(gè)demo并不支持對(duì)聲音的解碼,做的這么坑爹不知道為什么網(wǎng)上那么多人傳。


五:大功告成之后,在你要使用這些庫(kù)的時(shí)候,你會(huì)發(fā)現(xiàn)這些庫(kù)很大,universal版的起碼有200多M。這尼瑪比幾行代碼的工程文件大多了,安裝文件豈不會(huì)很大。事實(shí)上,根據(jù)工程需求,在編譯的時(shí)候,很多功能我們是不需要編譯的,但上面的腳本里,很多都沒(méi)有被禁止,都加了進(jìn)來(lái)。在本工程中只需要decoders和encoders就可以了,其他的可以一律disable掉。這樣編譯起來(lái)比較快一點(diǎn),庫(kù)文件也小很多。

六:總結(jié)一下:以后做工程選平臺(tái)的時(shí)候,不要選太新的平臺(tái),太新的平臺(tái)上出了什么幺蛾子,網(wǎng)上都搜不到資料,還是用稍微舊一點(diǎn)的編譯環(huán)境和sdk,出什么事都有前人告訴你解決辦法。我比較懶,如此坑爹的事情還是少干些比較好。
       
最后吐個(gè)嘈。微軟和蘋(píng)果兩家公司能不能好好的,系統(tǒng)格式不支持沒(méi)辦法,視頻格式也TM不支持。蓋茨那小氣樣,以為微軟員工不用蘋(píng)果別個(gè)就會(huì)倒閉。蘋(píng)果那小氣樣,你自己就不會(huì)主動(dòng)去支持這么流行的格式嗎,生生把ffmpeg逼了出來(lái)。哦,還有VLC.
不過(guò)VLC不怎么受蘋(píng)果待見(jiàn),經(jīng)常被蘋(píng)果下架。用了它怕不怕哪天蘋(píng)果不爽了把你的app下架。

網(wǎng)站名稱(chēng):ios8.1下編譯ffmpeg
當(dāng)前鏈接:http://aaarwkj.com/article24/ipdoce.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、Google、服務(wù)器托管、網(wǎng)站改版、做網(wǎng)站域名注冊(cè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作
一级黄片一区二区三区| 中文字幕有码在线朋友| 日韩中文字幕 在线播放| 亚洲男女内射在线视频| 丰满人妻大屁一区二区| 久久精品国产亚洲av麻豆网站| 欧美一级纯黄电影视频| 亚洲综合精品久久久一区| 国产av网站精品成人| 麻豆映画传媒在线播放| 精品午夜免费福利视频| 亚洲精品一区二区午夜| 日韩一二三区免费不卡视频| 成人黄色三级免费网站| 亚洲国产免费一区二区| av一区二区三区高潮| 久久综合久久狠狠激情| 色91精品在线观看剧情| 国产日韩欧美老年人激情| 欧美日韩亚洲国产一区| 婷婷色综合一区二区三区 | 青青草原成年人免费看| 亚洲精品一区二区免费看| 亚洲黄色av一区二区三区| 国产l精品国产亚洲区久久| 综合激情丁香久久狠狠| 未满十八禁止观看免费观看| 麻豆精品国产粉嫩av| 欧美男女精品一区二区三区| av黄色在线播放网页| 日本高清av一区二区| 肥胖老熟女一区二区三区| 少妇精品偷拍高潮少妇在线观看| 国产女主播在线观看视频| 婷婷av一区二区三区| 五月天久久开心激情网| 亚洲成人av毛片在线观看| 成人永久免费播放平台| 亚洲精品不卡在线观看| 国产老熟女不带套91| av一区二区三区网站|