成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

調(diào)用某些FFMpeg的命令

在成功編譯FFMpeg之后,調(diào)用某些FFMpeg的命令還需要用到libx264,因此需要額外編譯libx264并打包在FFMpeg中

成都創(chuàng)新互聯(lián)提供網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì),成都品牌網(wǎng)站建設(shè)廣告投放等致力于企業(yè)網(wǎng)站建設(shè)與公司網(wǎng)站制作,10多年的網(wǎng)站開發(fā)和建站經(jīng)驗(yàn),助力企業(yè)信息化建設(shè),成功案例突破成百上千家,是您實(shí)現(xiàn)網(wǎng)站建設(shè)的好選擇.

1. 編譯環(huán)境:

Mac OS 10.9 XCode6.1

2. libx264的編譯

編譯包需要符合arm64、armv7s、armv7、x86_64、i386這幾個(gè)架構(gòu)。前面3個(gè)是給真機(jī)使用的,后面2個(gè)是給模擬器使用的。目前使用FFmpeg-iOS-build-script作者寫的一鍵編譯腳本只能編譯出適用于模擬器的.a包,適用于真機(jī)的包還需要自己手動(dòng)編譯。有時(shí)間可以研究它的編譯腳本源碼,添加上手動(dòng)編譯的代碼,這里先做一個(gè)總結(jié)。

(1)首先到http://www.videolan.org/developers/x264.html 下載最新的libx264源碼包,解壓之后是一個(gè)含snapshot-xxxx的一個(gè)文件夾,把它拷貝到隨便一個(gè)文件夾下,重命名為x264;

(2)到https://github.com/kewlbear/x264-ios 下載x264的一鍵編譯腳本文件,把它放到跟x264文件夾同級(jí)的地方;

(3)運(yùn)行腳本./build-x264.sh;

(4)腳本運(yùn)行完畢之后,會(huì)多出幾個(gè)文件夾:x264-iOS,scratch-x264,thin-x264。其中x264-iOS是最終的輸出,里面有include和lib兩個(gè)文件夾。lib文件夾里面只有*.a一個(gè)文件。如果順利的話,這個(gè)包是一個(gè)fat包,是包含了arm64、armv7s、armv7、x86_64、i386這幾個(gè)架構(gòu)的,但是在我的機(jī)器上,用lipo命令看,只有x86_64、i386這兩種架構(gòu),具體原因還沒有搞清楚。因此我們還需要手動(dòng)編譯arm64、armv7s、armv7的包,繼續(xù)下一步;

(5)再拷貝一份源碼出來,放到另外一個(gè)文件夾下,在命令行中進(jìn)入這個(gè)文件夾;

(6)編譯armv7的包:進(jìn)入源碼的文件夾后,在命令行中輸入

 

CC=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang  

./configure --host=arm-apple-darwin --sysroot=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.1.sdk 

--prefix='build' --extra-cflags='-arch armv7' --extra-ldflags='-arch armv7 -L/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.1.sdk/usr/lib/system' 

--enable-pic --extra-asflags='-arch armv7'

注意修改里面的iPhoneOS版本。

如果config成功,命令行會(huì)提示可以執(zhí)行make命令了,先不急著執(zhí)行make。手動(dòng)copy 一個(gè)新版的gas-preprocessor.pl到extras目錄下面。gas-preprocessor.pl我用的是https://git.libav.org/?p=gas-preprocessor.git;a=blob;f=gas-preprocessor.pl;h=44d11178667ece04df993e50023b41155d53582a;hb=HEAD 這個(gè)版本,源碼1033行,比x264的源碼要長很多。

復(fù)制完畢后,在命令行中執(zhí)行make;執(zhí)行完make之后再執(zhí)行make install,成功后會(huì)發(fā)現(xiàn)源碼文件夾里面多了一個(gè)libx264.a的包,用lipo查看,確實(shí)是armv7的架構(gòu),把它拷貝出來,重命名為libx264-armv7。

(7)編譯armv7s的包。先執(zhí)行下make clean,清除上一步執(zhí)行得到的結(jié)果。編譯armv7s的包與編譯armv7的步驟完全一致,只不過配置需要略微修改,且不需要再拷貝gas-preprocessor.pl文件。配置命令如下:

 

CC=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang  

./configure --host=arm-apple-darwin --sysroot=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.1.sdk 

--prefix='build' --extra-cflags='-arch armv7s' --extra-ldflags='-arch armv7s -L/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.1.sdk/usr/lib/system' 

--enable-pic --extra-asflags='-arch armv7s'

同樣得到一個(gè)libx264.a的包,拷貝出來,重命名為libx264-armv7s。

(8)編譯arm64的包,方法同上,配置命令如下:

CC=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang  

./configure --host=aarch74-apple-darwin --sysroot=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.1.sdk 

--prefix='build' --extra-cflags='-arch arm64' --extra-ldflags='-arch arm64 

-L/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.1.sdk/usr/lib/system' --enable-pic --extra-asflags='-arch arm64'

同樣得到一個(gè)libx264.a的包,拷貝出來,重命名為libx264-arm64。

(9)此時(shí)我們得到了*.a,libx264-armv7.a,libx264-armv7s.a,libx264-arm64.a四個(gè)文件,用lipo命令把他們?nèi)诤铣梢粋€(gè)包:

lipo -create *.a,libx264-armv7.a,libx264-armv7s.a,libx264-arm64.a -output libx264.a

把生成的libx264.a的包拷貝回x264-iOS/lib中,和include一起,整個(gè)x264-iOS當(dāng)做libx264的output

3. 編譯帶x264的ffmpeg包

拷貝x264-iOS到build-ffmpeg.sh腳本所在目錄下,并重命名x264-iOS為fat-x264,清除build-ffmpeg.sh腳本中X264=`pwd`/fat-x264一行的注釋,保存后執(zhí)行腳本,順利的話就會(huì)跟之前一樣生成各個(gè)包啦。。相比之前,會(huì)多出一個(gè)libpostproc.a。

4. 在項(xiàng)目中使用帶x264的ffmpeg以及l(fā)ibx264

如果直接替換掉原來的FFMPEG .a庫,會(huì)報(bào)編譯錯(cuò)誤。此時(shí)需要加上libx264。把x264-iOS(含頭文件和.a)拖到項(xiàng)目中,link framework中加入libx264,user header search path中加入x264-iOS/include的路徑,運(yùn)行就可以了。

網(wǎng)頁題目:調(diào)用某些FFMpeg的命令
鏈接URL:http://jinyejixie.com/article6/jdojig.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、做網(wǎng)站服務(wù)器托管、ChatGPT網(wǎng)站策劃、網(wǎng)站營銷

廣告

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

微信小程序開發(fā)
喀喇| 苏尼特左旗| 黑河市| 孝昌县| 平江县| 昌乐县| 白水县| 桐乡市| 龙南县| 曲麻莱县| 无为县| 云南省| 乌审旗| 鸡东县| 同德县| 绵阳市| 辛集市| 仁化县| 大埔区| 唐河县| 浏阳市| 婺源县| 牡丹江市| 兰考县| 湖州市| 景泰县| 安化县| 曲麻莱县| 胶州市| 岐山县| 大丰市| 绥化市| 石首市| 城市| 辉南县| 湘潭县| 永登县| 沧州市| 芦溪县| 治县。| 土默特左旗|