オーマイガー東京

オーマイガー東京というブログを24歳東京暮らし新卒2年目のエンジニアが書いています。

UnityでビルドしたiOSでGStreamerを使用する方法

Unityで開発したアプリの中で、h264の映像を受信して、
デコードして、unity内にtextureとして渡すみたいなことをやるときに、
そもそもxcode(iOS)内でGStreamerが動かなくてちょっと大変だったので、動かす方法をシェアします。

f:id:maru_33:20180304184515p:plain

①Pathを通す

まずフレームワークのPATHの設定をします。

Build Setting -> Search Pahts -> framework search path

"~/Library/Developer/GStreamer/iPhone.sdk"

Build Setting -> Search Pahts -> header search path

"~/Library/Developer/GStreamer/iPhone.sdk/GStreamer.framework/Headers"

②GStreamerをimportする

Xcodeのプロジェクト内にGStreamerをドラッグアンドドロップで入れます。
aliasだけでなく、複製します。

ちなみに、インストール方法はこちら

www.ohmg.tokyo

③GStreamerをinitする

initをファイルをurl先からダウンロードしてプロジェクト内に追加し、その後そのファイルをmain.mm内でincludeして、gst_ios_init();します!!

gst_ios_init.h · GitHub

gst_ios_init.m · GitHub

main.mm

#include "gst_ios_init.h"

int main(int argc, char* argv[]){
    @autoreleasepool
    {
        # hogehoge
        gst_ios_init();
    }
    return 0;
}

④Build SettingのEnable BitcodeをNOに設定する

このEnable Bitcode をNOにしとかないと落ちます。
BuildSettings -> BuildOptionsにあるよ!

⑤必要なライブラリをimportする

あと、起動に必要なライブラリ群をimportしたらおしまいです。

  • libresolv.9.tbd
  • libstdc++.6.0.9.tbd
  • AssetsLibrary.framework
  • Security.framework
  • AudioTookbox.framework
  • VideoToolbox.framework

実際動かすまでにもかなり苦労しました笑 GStreamerは慣れるとかなり使い勝手のいいライブラリでした。