The Immersive Video WebRTC sample provides a low latency end-to-end 360 video streaming service, based on the WebRTC technology and Open WebRTC Toolkit (OWT) media server. It supports 4K and 8K tile based transcoding powered by SVT-HEVC, and bandwidth efficient FoV based adaptive streaming.
The Open WebRTC Toolkit (OWT) media server for ultra-high resolution immersive video provides a low latency streaming service. The media server supports streaming protocals (RTSP/RTMP) from camera source,or various media formats from local file source. The input video stream is transcoded with SVT-HEVC into two streams, high resolutino tile stream and low resolution tile stream. These two tile streams are merged into single FoV based mix-resolution stream,and streaming out to client by WebRTC.
The OWT-SERVER is provided as CentOS 7.6 dockerfile in this sample.
Platform | Server | Client |
---|---|---|
CPU SKU | Intel® Xeon® Platinum 8280M CPU @ 2.70GHz |
Intel® Core™ i7-6770HQ CPU @ 2.60GHz x 8 |
Memory | 128G | 16G |
Type |
---|
Equirectangular (ERP) |
Type | Resolution | Tiles |
---|---|---|
4K | 3840x2048 | 10x8 |
8K | 7680x3840 | 12x6 |
Type |
---|
H264 |
HEVC |
VP8 |
VP9 |
(1) Install docker engine.
(2) Install docker compose.
cd WebRTC-Sample/owt-server
mkdir build
cd build
cmake ..
make
Use the following commands to start or stop services via docker compose:
cd WebRTC-Sample/owt-server/build
# start 4k service
make start_owt_immersive_4k
# start 8k service
make start_owt_immersive_8k
# stop service
make stop
The OWT-LINIX-PLAYER is an immersive 360 video player on linux, with WebRTC backend. It supports HEVC tile decoding, ERP video rendering, and FoV feedback.
-
Linux* Operating Systems (64-bit):
- Ubuntu 18.04 LTS
- Ubuntu 20.04 LTS
cd WebRTC-Sample/owt-linux-player
# build owt linux sdk and dependencies
./build_webrtc_linux_client_sdk.sh
# build player
./build_player.sh
Start OWT-SERVER 4K or 8K immersive service on server side. And run player on client side as below.
cd WebRTC-Sample/owt-linux-player/player
vi config.xml
- "sourceType": 2
2 is WebRTC source type
- "resolution": 4k
Supported 4k or 8k resolution
- "server_url": http://owt-server-ip:3001
cd WebRTC-Sample/owt-linux-player/player
source ./setupvars.sh
./render
- Press "s" key to start playing
- Press "arrow" keys to change viewport
- Press "Esc" key to exit