Skip to content

IPStreamMedia v0.1.2-beta

Latest

Choose a tag to compare

@LifeisaRepo LifeisaRepo released this 27 Oct 20:56

Pre-release. An Unreal Engine 5.3 Media Framework player for live RTSP streams, built on FFmpeg.

Downloads

  • IPStreamMediaDemo-v0.1.2-beta-Win64.zip: packaged demo (Development build). Run IPStreamMediaDemo.exe, enter an RTSP URL and press Open. The video's format is printed on screen when a stream opens.
  • IPStreamMedia-v0.1.2-beta-UE5.3-Win64.zip: the plugin. Unzip it into your project's Plugins folder.

What's new since v0.1-beta

  • On Media Opened fires when the first frame arrives, not before the connection is made.
  • A URL that never connects gives up after 2 attempts and fires On Media Open Failed.
  • On Playback Suspended and On Playback Resumed fire around a reconnect. Reaching the reconnect limit fires On End Reached.
  • The reconnect limit now defaults to 3. It used to be 0, which retries forever.
  • The video track is reported: Get Video Track Dimensions, Get Video Track Frame Rate and Get Video Track Type return the stream's size, frame rate and codec.
  • Colours: when a stream doesn't say which colour formula it uses, BT.709 (the HD standard) is now assumed. HD streams used to come out with slightly wrong colours.
  • Tested with H.264 (from OBS) as well as H.265.
  • Demo: shows the playback status on screen.

Features

  • Plays RTSP streams through a standard Media Player and Media Texture.
  • Decodes on its own thread, so opening a stream doesn't block the game thread.
  • Reconnects automatically after a dropped connection, with backoff, and reports it through the standard Media Player events.
  • Reports the video track's size, frame rate and codec to Blueprint.

Usage

  • Select the IPStreamMedia player, either in a Media Source's player overrides or with Set Desired Player Name (IPStreamMedia) before Open Url. Otherwise the Windows Media Foundation player may take the rtsp:// URL.
  • Optional, on a Media Source: set the reconnect limit with SetMediaOption (integer64), key MaxReconnectAttempts, before opening. The default is 3, and 0 retries forever. A stream that has never played gives up after 2 attempts either way.

Requirements

  • Unreal Engine 5.3, Windows 64-bit.

Known limitations

  • Video only, no audio.
  • Tested with one IP camera (H.265, 1280×720, 25 fps) and OBS (H.264, 1280×720, 25 fps).
  • Memory use grows by a few MB a minute while a stream is open. It looks like it's in FFmpeg's packet reading.
  • When a stream doesn't state its colour formula, BT.709 is assumed, so an SD stream in that situation may look slightly off.
  • No pause.

Licence

  • Plugin code: MIT.
  • Includes unmodified FFmpeg shared libraries (LGPL v3). Licence texts and source details are in ThirdParty/FFmpeg/.