Media in Unreal Engine 4

VMP

Play a Video Stream
Media Framework Technical Reference
Media Framework Overview
netflix-hulu.pdf
NexPlayer_Unreal_Plugin
NexPlayer is the market leader player SDK for OTT apps, currently integrated by over 200 premium video service providers worldwide.
HTTP Live Streaming
Unreal Media Server
MPEG-DASH в nginx-rtmp-module: живое видео в браузере без флеша
nginx-rtmp-module GitHub
RTMP NGINX Media
RTMP Doc
nginx-rtmp-module GitHub

aler9/rtsp-simple-server

Рестрим через Nginx

Видео вещание с OvenMediaEngine, до свидания nginx rtmp module 2020
OvenMediaEngine (OME) is an open-source and streaming server with sub-second latency. OME receives video via RTMP, MPEG-TS, and RSTP Pull from live encoders such as OBS, FFMPEG, and more. And then, OME transmits video using WebRTC, Low-Latency HTTP (DASH), MPEG-DASH, and HLS. So, sub-second latency streaming from OME can work seamlessly in your browser without plug-ins. Also, we provide OvenPlayer, the most optimized HTML5 player for OME, as an open-source.
AirenSoft / OvenMediaEngine GitHub
airensoft/ovenmediaengine Docker Open Source, Sub-Second Latency Streaming Server
Quick start
docker run -d -p 1935:1935 -p 3333:3333 -p 8080:8080 -p 9000:9000 -p 4000-4005:4000-4005/udp -p 10006-10010:10006-10010/udp airensoft/ovenmediaengine


UE4 Media Player to Render a Media Texture

Streaming Textures and Videos in UE4 | Live Training | Unreal Engine Livestream 2018

Film and video production | Feature Highlight | Unreal Engine

Tutorial RTSP Livestream Media in Unreal Engine 4


Первые значимые успехи в написании игрового сервера

Транслируем WebRTC, RTSP и RTMP потоки на Media Source Extensions по протоколу Websocket
Media Source API

netflix-hulu.pdf
Technical details of Netflix
TCP tuning
CoDel
The Flow Queue CoDel Packet Scheduler and Active Queue Management Algorithm
Sliding window protocol
FQ_CoDel — планировщик пакетов, который сделает все за вас
Доступен мультимедийный фреймворк GStreamer 1.18.0
gstreamer-java gst1-java-core

Что такое MPEG DASH вещание?
MPEG-DASH: Dynamic Adaptive Streaming Over HTTP Explained 2020

Netflix uses the DASH (Dynamic Streaming over HTTP) protocol for streaming. In DASH, each video is encoded at several different quality levels, and is divided into small ‘chunks’ – video segments of no more than a few seconds in length. The client requests one video chunk at a time via HTTP. With each download, it measures the received bandwidth and runs a rate determination algorithm to determine the quality of the next chunk to request. DASH allows the player to freely switch between different quality levels at the chunk boundaries.
There are currently four major media streaming protocols in widespread use, which we’ll look at in detail in a moment. The four common protocols include:
1. Dynamic Adaptive Streaming over HTTP (MPEG-DASH)
2. HTTP Live Streaming (HLS)
3. Microsoft Smooth Streaming (MSS)
4. Adobe HTTP Dynamic Flash Streaming (HDS)

Conclusion – key learnings for Network operators
1. Netflix uses multiple TCP connections and uses TLS therefore it’s not possible to limit the number of devices or streaming sessions even with DPI based platforms.
2. Netflix videos are variable bitrate encoded (and dependent on genre of movie amongst other things) therefore it’s not possible to limit resolution (like standard def) with network policy.
3. Netflix downloads in short bursts at full link rate, which can negatively impact other traffic like gaming packets or VoIP. A strategy to fix QoE problems associated with Netflix behavior is to leverage modern queuing technologies such as FQ-CoDel.

MPEG-DASH Dynamic Adaptive Streaming over HTTP — технология адаптивной потоковой передачи данных, предоставляющая возможность доставки потокового мультимедиа-контента через Интернет по протоколу HTTP. Является первым решением по потоковой передаче данных с адаптивным битрейтом, получившим статус международного стандарта.
Интеграция с MPEG-DASH (бета)

Unreal Media Server
MPEG-DASH в nginx-rtmp-module: живое видео в браузере без флеша
nginx-rtmp-module GitHub
RTMP NGINX Media
RTMP Doc
Видео вещание с OvenMediaEngine, до свидания nginx rtmp module 2020
OvenMediaEngine (OME) is an open-source and streaming server with sub-second latency. OME receives video via RTMP, MPEG-TS, and RSTP Pull from live encoders such as OBS, FFMPEG, and more. And then, OME transmits video using WebRTC, Low-Latency HTTP (DASH), MPEG-DASH, and HLS. So, sub-second latency streaming from OME can work seamlessly in your browser without plug-ins. Also, we provide OvenPlayer, the most optimized HTML5 player for OME, as an open-source.
AirenSoft / OvenMediaEngine GitHub
airensoft/ovenmediaengine Docker Open Source, Sub-Second Latency Streaming Server
Quick start
docker run -d -p 1935:1935 -p 3333:3333 -p 8080:8080 -p 9000:9000 -p 4000-4005:4000-4005/udp -p 10006-10010:10006-10010/udp airensoft/ovenmediaengine
docker-compose.yml for Origin-Edge Test

version: ‘3.7’

services:
origin:
build:
context: .
image: airensoft/ovenmediaengine:latest
ports:
– “1935:1935/tcp”
– “3333:3333/tcp”
– “8080:8080/tcp”
– “9000:9000/tcp”
– “4000-4005:4000-4005/udp”
– “10006-10010:10006-10010/udp”
environment:
– OME_ORIGIN_PORT=9000
– OME_RTMP_PROV_PORT=1935
– OME_HLS_STREAM_PORT=8080
– OME_DASH_STREAM_PORT=8080
– OME_SIGNALLING_PORT=3333
– OME_MPEGTS_PROV_PORT=4000-4005/udp
– OME_ICE_CANDIDATES=*:10006-10010/udp
command: /opt/ovenmediaengine/bin/OvenMediaEngine -c origin_conf

edge:
build:
context: .
image: airensoft/ovenmediaengine:latest
ports:
– “3334:3334/tcp”
– “8090:8090/tcp”
– “10000-10005:10000-10005/udp”
environment:
– DEFAULT_ORIGIN_SERVER=192.168.0.199
– OME_HLS_STREAM_PORT=8090
– OME_DASH_STREAM_PORT=8090
– OME_SIGNALLING_PORT=3334
– OME_ICE_CANDIDATES=*:10000-10005/udp
command: /opt/ovenmediaengine/bin/OvenMediaEngine -c edge_conf