https://github.com/wongfei/ue4-gstreamer
Render video content to texture via appsink node
https://github.com/wongfei/ue4-gstreamer
gstreamer plugin unreal-engine-4
Last synced: 2 months ago
JSON representation
Render video content to texture via appsink node
- Host: GitHub
- URL: https://github.com/wongfei/ue4-gstreamer
- Owner: wongfei
- License: lgpl-3.0
- Archived: true
- Created: 2018-11-08T14:22:44.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2021-11-10T18:41:06.000Z (over 3 years ago)
- Last Synced: 2023-03-05T20:26:07.081Z (about 2 years ago)
- Topics: gstreamer, plugin, unreal-engine-4
- Language: C++
- Homepage:
- Size: 2.49 MB
- Stars: 40
- Watchers: 5
- Forks: 24
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome_unreal_engine_4_-_5 - UE4-Gstreamer
- awesome_unreal_engine_4_-_5 - UE4-Gstreamer
README
# UE4 GStreamer plugin
[](https://www.youtube.com/watch?v=eCLCdaSIxBA)
## Getting Started
Tested with UE4 4.26 and GStreamer 1.18.4
Download and install [GStreamer runtime and development packages](https://gstreamer.freedesktop.org/download/)
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`