前回の記事ではSRTについての概要について説明しました。では実際にWindowsでSRTのソースコードをビルドし、実際に動かすためにはどうすればよいか、について複数回に分けて記事にしていきます。第1回では、SRTのソースコードをWindows向けにビルドする際のTipsについて解説していきます。
SRTソースコードのビルドについて
SRTはオープンソースプロジェクトのため、GitHub上にソースコードが公開されていますが、残念ながら実行用バイナリは配布されていません。 そのため、自身でSRTを検証したい場合はソースコードからビルドする必要があります。
GitHub上のソースコードを確認しますと、Linux・macOS/iOS・Windows向けがそれぞれ用意してあります。Linux向けについては、Linux上、あるいは、Windows 10のWSL上でのビルドは、GitHubにある説明通りにビルドすれば問題なく実行用バイナリが生成できます。しかし、Windows向けのビルドは他のOSと比べてGitHub上の説明通りに行きません。ビルド手順について、こちらのページに詳細が書かれていますが、実際にビルドコマンドを実行してみるとエラーがたくさん出てきて中々先に進むことができません。
そのため、本記事では、エラーの回避方法を含めてSRTソースコードをWindowでビルドするための方法について解説していきます。なお、本記事でのビルド環境はWindows 10の64 bit版となります。
ビルドに必要なもの
ビルドツール
ビルドするにあたり、必要なツールを以下に記載します。
■CMake(v2.8.12、またはそれ以上のバージョン)
https://cmake.org/download/
※本記事執筆時点での最新バージョンはv3.18.2
※Windows向けの64bit版のインストーラ、または、ZIPをダウンロード
■git client
https://git-scm.com/download/win
※ソースコードのマネジメント用
■Visual Studio
https://visualstudio.microsoft.com/downloads/
※コンパイラーとリンカーにVisual Studioを使用[1]
外部ライブラリ
SRTのソースコードをビルドする際に必要となる外部ライブラリです。[2]
暗号ライブラリ
SRTでセキュアな通信を行うために必要なライブラリとなります。OpenSSL、LibreSSL、MbedSSLの3つから選ぶことが可能ですが、ここではデフォルトのOpenSSLを使用していきます。
■OpenSSL
http://slproweb.com/products/Win32OpenSSL.html
※Windows向け64bit版の最新バージョン
※ダウンロードするのはLight版ではなくフル版[3]
スレッドライブラリ
SRT v1.5.0から2つのスレッドライブラリがサポートされるようになりました。pthreadsと、スタンダードC++のC++11スレッドライブラリの2つとなりますが、今回はWindowsで推奨される後者を使用します。[4]
以上が揃えば、いよいよビルド開始となります。
ビルドする
ここでのビルド作業は、コマンドプロンプトでコマンドを入力していくだけとなります。以下に実行するコマンドを順番に記載します。
SRTのソースコードをクローンする
ここでは「srt」という名前のフォルダにソースコードをクローンしています。
git clone https://github.com/haivision/srt.git srt
cd srt
set SRT_ROOT=%cd%
ビルド用ファイルを生成する
CMakeを使用し、ビルドに必要な各種ファイルを生成していきます。以下はC++11スレッドライブラリを使う場合のコマンドとなります。[5]
cmake -G"Visual Studio 16 2019" -A x64 -DENABLE_STDCXX_SYNC=ON
ビルドする
ビルドする前に、OpenSSLの設定をしておきます。[6]ここではOpenSSLが”C:\OpenSSL-Win64″にインストールされているものとしています。
set OPENSSL_ROOT_DIR=C:\OpenSSL-Win64
set OPENSSL_INCLUDE_DIR=C:\OpenSSL-Win64\include\openssl
準備ができましたので、実際にビルドしていきます。
cmake --build . --config Release
この時、大量のWarningが出てきますが、気にせずにビルドが完了するまで待ちます。完了すると、Releaseフォルダ内にSRTの実行ファイルが出来上がっているはずです。
補足すると、デフォルトではDebugビルドとなるため、Debugビルドを行いたい場合は、「–config Release」オプションを外して実行してください。DebugフォルダにSRTの実行ファイルが出来上がります。
以上が、Windows向けSRTのビルド手順となります。
さいごに
本記事では、Windows向けSRTソースコードのビルド方法について説明してきました。次回は実際にSRTをWindows上で動かす方法について説明していきます。
- Community版では確認しておりませんが、こちらでも使用可能だと思われます[↩]
- GitHub上にあるSRTのビルド手順には、オプションでパッケージマネージャが挙げられていますが、あくまでオプションであるため今回は使用しません[↩]
- Light版には ビルドに必要なファイル群が含まれていないため、フル版をダウンロードする必要があります[↩]
- pthreadsは別途ビルドが必要となるため手間であるというのもあります[↩]
- pthreads用のコマンドはSRTのGitHubの説明を参照してください[↩]
- OpenSSLの設定が必要なことはSRTのGitHub上の説明に記載されていないため、突っかかる部分ではあります[↩]