ue4-gstreamer icon indicating copy to clipboard operation
ue4-gstreamer copied to clipboard

Render video content to texture via appsink node

UE4 GStreamer plugin

Demo video

Getting Started

Tested with UE4 4.26 and GStreamer 1.18.4

Download and install GStreamer runtime and development packages

Edit Plugins\GStreamer\Source\GStreamer\GStreamer.Build.cs

Modify const string GStreamerRoot = @"C:\gstreamer_development\1.0\msvc_x86_64" to path where development package installed

Set environment variable GSTREAMER_ROOT=C:\gstreamer_runtime\1.0\msvc_x86_64 to path where runtime package installed

Launch project and hit play

AppSink examples

Test pattern: videotestsrc pattern=snow ! video/x-raw,width=(int)512,height=(int)512,format=(string)RGBA,framerate=(fraction)30/1 ! appsink name=sink

Play a local file: filesrc location=d:/video/doom.mp4 ! decodebin ! videoconvert ! video/x-raw,format=(string)RGBA ! videoconvert ! appsink name=sink

Play URI: uridecodebin uri=http://images.nvidia.com/geforce-com/international/videos/doom/doom-nvidia-geforce-gtx-geforce-dot-com-vulkan-graphics-api-gameplay-video.mp4 ! videoconvert ! video/x-raw,format=(string)RGBA ! videoconvert ! appsink name=sink

AppSrc examples

Capture and stream render target: appsrc name=src caps=video/x-raw,width=(int)640,height=(int)480,format=(string)BGRA,framerate=(fraction)60/1 ! tcpserversink host=127.0.0.1 port=5000 sync=false

Preview stream: gst-launch-1.0 -v tcpclientsrc host=127.0.0.1 port=5000 ! videoparse width=640 height=480 framerate=60/1 format=8 ! autovideoconvert ! autovideosink