SRT encapsulation - CESNET/UltraGrid GitHub Wiki

Table of Contents

Using srt-live-transmit

Right now, SRT cannot be used directly, but UltraGrid packets can be encapsulated inside srt packets. A setup utilizing srt-live-transmit is following:

  1. generate video signal

    uv -t testcard -P 5500
    
  2. encapsulate outbound UltraGrid packets inside SRT (on sender)

    srt-live-transmit udp://:5500 srt://recieverIP:5600
    
  3. on the receiver, decapsulate the SRT packets for UltraGrid

    srt-live-transmit srt://:5600 udp://:5004
    
  4. run UltraGrid display as usual

    uv -d sdl
    

Thanks Alan Latteri for this setup!

Audio

If using audio, srt-live-transmit instances need to be doubled:

  • to step 2 add

     srt-live-transmit udp://:5502 srt://recieverIP:5602
    
  • step 3

     srt-live-transmit srt://:5602 udp://:5006
    

Using FFmpeg and RTSP

Originally posted here

Use FFmpeg + RTSP to localhost:

uv -t <vcap> -s <acap> -x rtsp 127.0.0.1
ffmpeg -i rtsp://127.0.0.1:8554/ultragrid -c copy -f mpegts \
  'srt://0.0.0.0:7000?pkt_size=1128&mode=listener&nakreport=1&listen_timeout=-1'

(not tested which of FFmpeg SRT options are necessary)

Native SRT transport

Note (2024-05-18): The native SRT support in UltraGrid is not being actively developed and is most likely being defunct. See CESNET/UltraGrid#59 for more info.

The implementation of native SRT transport is on the way, it can be tested from UltraGrid branch wip-srt. Currently, only message mode is supported (which means it won't interoperate with different SRT software), video is only available. It also needs compressed video (performance is poor for uncompressed). Usage:

sender$   uv -t testcard -c libavcodec --video-protocol srt <receiver>
receiver$ uv -d gl --video-protocol srt                     # no address must be given!

Note: The peer address must be given at one UltraGrid end only (no matter which one).

⚠️ **GitHub.com Fallback** ⚠️