1. 程式人生 > >FFmpeg3.1.1編譯IOS靜態庫.a檔案

FFmpeg3.1.1編譯IOS靜態庫.a檔案

一、準備工作

1.下載最新的  gas-preprocessor.pl

複製gas-preprocessor.pl到/usr/bin下,

修改檔案許可權:chmod 777 /usr/bin/gas-preprocessor.pl


2.下載編譯指令碼/FFmpeg-iOS-build-script

解壓FFmpeg-iOS-build-script-master.zip到目錄 /FFmpeg/FFmpeg-iOS-build-script-master

開啟 /FFmpeg/FFmpeg-iOS-build-script-master目錄下的 build-ffmpeg.sh

修改ARCHS="arm64 armv7 armv7s arm64 x86_64 i386"讓其編譯支援arm64 armv7s指令集後儲存


3.下載FFmpeg

解壓ffmpeg-3.1.1.tar.gz 到目錄 /FFmpeg/FFmpeg-iOS-build-script-master/ffmpeg-3.1.1

二、編譯

執行指令碼開始編譯

cd /FFmpeg/FFmpeg-iOS-build-script-master

sh build-ffmpeg.sh

開始編譯,編譯過程時間較長,請耐心等待....

如果你看見FFmpeg-IOS/lib目錄下生成了如上.a檔案,恭喜你!編譯成功了。。。

讓我們來檢視這些.a檔案支援的指令集

ok!這樣虛擬機器和真機都可以使用了。

三、應用


新建IOS專案FFmpegDemo

新增編譯好的靜態庫到專案中

設定專案搜尋FFmpeg靜態庫和標頭檔案


新增依賴庫

VideoToolbox.framework

CoreMedia.framework

CoreAudio.framework

AudioToolbox.framework

libz.dylib
libbz2.dylib libiconv.dylib

補充讀取攝像頭需要新增

AVFoundation.framework


編碼配置測試程式碼

#import "ViewController.h"
#include <libavformat/avformat.h>
#include <libavcodec/avcodec.h>

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    av_register_all();
    printf("%s\n", avcodec_configuration());
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end


模擬器執行


如果你使用有什麼問題可以私信我,初次寫,寫的不好,見諒!