2つの端末間で、映像の受け渡しを行たい場合に GStreamer では、udpsink と udpsrc または、tcpserversink と tcpclientsrc を使用します。
UDP を使用して JPEG を転送
サーバー
$ gst-launch-1.0 videotestsrc is-live=true \
! jpegenc \
! rtpjpegpay \
! udpsink host=192.168.2.10 port=7001
udpsink の host には、配信先の udpsrc を行なっている端末の IP アドレスを指定します。
クライアント
$ gst-launch-1.0 udpsrc port=7001 \
! application/x-rtp,encoding-name=JPEG \
! rtpjpegdepay \
! jpegdec \
! autovideosink
TCP を使用して JPEG を転送
サーバー
$ gst-launch-1.0 videotestsrc is-live=true \
! jpegenc \
! rtpjpegpay \
! rtpstreampay \
! tcpserversink port=7001
クライアント
$ gst-launch-1.0 tcpclientsrc host=192.168.2.10 port=7001 \
! application/x-rtp-stream,encoding-name=JPEG \
! rtpstreamdepay \
! rtpjpegdepay \
! jpegdec \
! autovideosink
tcpclientsrc の host には、配信元の tcpserversink を行なっている端末の IP アドレスを指定します。
UDP を使用して H264 を転送
サーバー
$ gst-launch-1.0 videotestsrc is-live=true \
! x264enc \
! rtph264pay \
! udpsink host=192.168.2.10 port=7001
クライアント
$ gst-launch-1.0 udpsrc port=7001 caps="application/x-rtp,media=(string)video" \
! rtph264depay \
! avdec_h264 \
! videoconvert \
! autovideosink
x264enc を使用する場合にはライセンスがフリーではありませんので、ご注意ください。