mac osx用的ffmepg,总算搞出来了,总结碰到的坑

来源:互联网 发布:java网上商城系统 编辑:程序博客网 时间:2024/05/16 17:44

之前在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.layeraddSublayer 之前,执行

        self.wantsLayer =YES;

        self.layer.geometryFlipped =YES;


2、nsview的背景颜色:

- (void)drawRect:(NSRect)dirtyRect {

    [superdrawRect:dirtyRect];

    // Drawing code here.

    NSLog(@"drawRect");

    [_backColor set];

    NSRectFill([selfbounds]);

}


3、nscolor转nscolorref

[[NSColor redcolor] cgcolor];


4、绝对不要在主线程里面调用[layer displayyuv];


0 0