mac osx用的ffmepg,總算搞出來了,總結碰到的坑

之前在iOS裏寫過一個支持x86_64的支持rtsp連接靜態庫,發現在mac上運行不了,於是以爲ios用的x86_64靜態庫和mac用的不通用。

於是去百度,去谷歌找適合mac的ffmpeg靜態庫編譯方法,搞了三天沒結果。

偶然一朋友說起它們是通用的,於是把步驟一再跑了一邊,發現提示錯誤:

in /Users/wutong/Desktop/project/rtsptest/librtspstatic.a(Rtsp_instance.o), building for OSX, but linking in object file built for iOS, for architecture x86_64

百度了這個錯誤信息,發現這是xcode7的一個坑。


於是去網上下載了支持ios x86_64的ffmpeg靜態庫,直接搞定了。


總結:

1、ffmpeg用c語言實現,.m文件後綴不要改。

2、在xcode7上編譯的支持x86_64的靜態庫,不能和mac通用。(要通用就別用xcode7編譯)。

3、在項目連接這幾個文件: libz.tbd、libiconv.tbd、libicucore.tbd(最後一個不確定需不需要)


關於caopengllayer

1、self.layer addSublayer 之前,執行

        self.wantsLayer = YES;

        self.layer.geometryFlipped = YES;


2、nsview的背景顏色:

- (void)drawRect:(NSRect)dirtyRect {

    [super drawRect:dirtyRect];

    // Drawing code here.

    NSLog(@"drawRect");

    [_backColor set];

    NSRectFill([self bounds]);

}


3、nscolor轉nscolorref

[[NSColor redcolor] cgcolor];


4、絕對不要在主線程裏面調用[layer displayyuv];


發佈了35 篇原創文章 · 獲贊 5 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章