0

我正在使用 Openh264 库。我以前在 Linux 环境中使用过这个库。但我还没有找到任何工作文档来链接 Xcode 上的 openh264 库。

我尝试了其他解决方案来在 Xcode 中添加 .a 或 .so 库文件,例如:i)如何将 C++ 库导入 Xcode Objective C 项目? ii)如何在 Objective C 中链接或加载共享库 (.so)?

但不幸的是,我每次都失败了。我从这个链接获得了 OpenH264: https ://github.com/cisco/openh264 。我可以执行 Openh264 库提供的演示编码器解码器项目,但我需要帮助才能将这个库链接到我自己的项目中。提前致谢。

4

1 回答 1

0

以下是将 OpenH264 库集成到任何 Xcode 项目的步骤:

  1. 从此链接下载或克隆 OpenH264 库:https ://github.com/cisco/openh264
  2. 选择 IOS Application、Objective C 和其他强制选项创建 Xcode 项目。
  3. 将包含所有文件和文件夹的 OpenH264 库放在项目根目录中。例如,我的 IOS 应用程序位于目录/user/rajib/HelloApp/HelloApp.xcodeproj中,而 OpenH264 库保存在/user/rajib/HelloApp/OpenH264Library中。
  4. 现在打开终端并启用root模式。
  5. 转到保存 OpenH264Library 的目录并使用以下命令进行制作:->sudo make OS=ios ARCH=amrv7 install
  6. 现在转到项目构建设置并找到标题搜索路径属性。在该属性的单独行中添加以下标题路径。 $(inherited) , "$(SRCROOT)/OpenH264Library/codec/encoder/core/inc" , "$(SRCROOT)/OpenH264Library/codec/processing/interface" , "$(SRCROOT)/OpenH264Library/codec/common/inc " , "$(SRCROOT)/OpenH264Library/codec/api/svc" ,
  7. 现在我们必须在我们的 HelloApp 项目中集成另外 3 个名为common.xcodeprojprocessing.xcodeprojwelsenc.xcodeproj的 Xcode 项目。所有这些 .xcodeproj 文件都可以在 OpenH264Library 中找到。我们必须在 OpenH264Library 中找到这些具有该名称的 .xcodeproj 文件,然后将这些文件拖放到我们的 HelloApp 项目中。
  8. 现在转到项目构建阶段并找到目标依赖项属性。从工作场所添加welsenc处理共同项目。
  9. 尝试构建这个项目,然后这3个项目将编译并执行,我们将在我们的工作场所找到3个静态库。
  10. 现在再次进入项目构建阶段并找到具有库属性的链接二进制文件。从工作场所添加 libwelsenc.a、libprocessing.a、libcommon.a 静态库。

就是这样...这是构建和链接openh264库的过程。现在您可以轻松调用 openh264 库函数。这里我给出一个简单的编码器初始化调用 OpenH264 库函数的工作代码。

//Adding Header files
#include "codec_api.h"
#include "codec_def.h"

//Calling OpenH264 Library function to initialize Encoder
- (IBAction)EncoderTestBtn:(id)sender {
    NSLog(@"Inside EncoderTestBtn");
    ISVCEncoder *pEncoder = NULL;
    int iRet = -1;
    iRet = WelsCreateSVCEncoder(&pEncoder);
    if(iRet == 0)
    {
        NSLog(@"Rajib_Check: Encoder Initialization SUCCESSFUL");
    }
    else
    {
        NSLog(@"Rajib_Check: ERROR--> iRet returned with = %d", iRet);
    }

}
于 2015-10-07T09:19:13.307 回答