Repository navigation
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
Pluginsfolder.
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 thertsp://URL. - Optional, on a Media Source: set the reconnect limit with SetMediaOption (integer64), key
MaxReconnectAttempts, before opening. The default is3, and0retries 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/.