GStreamer で SRT を使用する その1

各プラットフォームへのビルド方法は、下記の URL に記載されています。
https://github.com/Haivision/srt/tree/master/docs/build

ここでは、Ubuntu 上でのビルドを想定しています。
SRT のビルドに必要なライブラリーをインストールします。

$ sudo apt-get update
$ sudo apt-get upgrade 
$ sudo apt-get install tclsh pkg-config cmake libssl-dev build-essential

SRT を github からクローンして、ビルドを行います。
GStreamer v1.18.6 では、SRT v1.4.2 で動作することを確認しています。

$  git clone -b v1.4.2 https://github.com/Haivision/srt.git --depth 1
$ cd srt/
$ ./configure
$ make
$ sudo make install
$ sudo ldconfig 

SRT のプラグインは、gst-plugins-bad に入っていますので、ビルドします。
SRT がインストールされた状態で、gst-plugins-bad のビルドを行うことで、SRT プラグインがビルドされるようになります。

$ wget https://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-1.18.6.tar.xz
$ tar xvfJ gst-plugins-bad-1.18.6.tar.xz > /dev/null
$ cd gst-plugins-bad-1.18.6
$ meson --buildtype=release --prefix=/usr build -Dgupnp=disabled -Dwith_x11=no -Db_lto=true
$ sudo ninja -C build install

gst-inspect-1.0 を使用して、インストールできているか確認できます。

$ gst-inspect-1.0 | grep srt
dtls:  dtlssrtpdec: DTLS-SRTP Decoder
dtls:  dtlssrtpenc: DTLS-SRTP Encoder
dtls:  dtlssrtpdemux: DTLS SRTP Demultiplexer
srt:  srtsrc: SRT source
srt:  srtsink: SRT sink
srt:  srtclientsrc: SRT source
srt:  srtserversrc: SRT source
srt:  srtclientsink: SRT sink
srt:  srtserversink: SRT sink
srtp:  srtpenc: SRTP encoder
srtp:  srtpdec: SRTP decoder

テスト映像を SRT で配信します。

SRT の配信には、srtserversink を使用します。
配信するポート番号は、uri のパラメータで指定することができます。このサンプルでは、12345 がポート番号として設定されます。

$ gst-launch-1.0 videotestsrc \
  ! videoconvert \
  ! x264enc tune=zerolatency key-int-max=30 \
  ! mpegtsmux \
  ! srtserversink uri="srt://:12345" latency=500

VLC media player を使い SRT の映像を確認することができます。

以下のページから VLC media player はダウンロードできます。
https://www.videolan.org/vlc/index.ja.html

ファイル > ネットワークを開くを選択します。URL に srt://{IP アドレス}:12345 を入力し開くボタンを押下します。
IP アドレスには、gst-launch-1.0 を起動した PC の IP アドレスを入力してください。

テスト映像が配信されていることが確認できます。