-
Notifications
You must be signed in to change notification settings - Fork 1
/
flow
68 lines (35 loc) · 2.35 KB
/
flow
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
## flow as designed by unicorn transcoder
plex client that cannot direct play FILE request transcode from server
UnicornLB intercepts request and sends to host system of UnicornTranscoder
Unicorn Transcoder repeats request from the initial client and sends to plex server.
Plex Server calls Plex Transcoder; the transcoder has been replaced by UnicornFFMPEG
Unicorn FFmpeg sends the arguments to Unicorn Loadbalancer
UnicornLoadBalancer sends request to UnicornTranscoder which then requests arguments from UnicornLoadBalancer
Unicorn Transcoder then serves the requested stream
## Changes and new flow
#before going live: create list that contains transcode capabilities of each relevant server (HEVC, h264, 4k 1080p, 24 30-60-120fps?)
Plex client that cannot direct play FILE request transcode from server
UnicornLB intercepts request and sends to host system of UnicornTranscoder
Unicorn Transcoder repeats request from the initial client and sends to plex server.
Plex Server calls Plex Transcoder; the transcoder has been replaced by UnicornFFMPEG
#Change
Unicorn FFMPEG Sends arguments to custom script.
Custom script thens send the file to the apropriate system
Unicorn FFmpeg sends the arguments to Unicorn Loadbalancer
Custom scrips detects file requirments, and allocates resources based on most appropriate available server
UnicornLoadBalancer sends request to UnicornTranscoder which then requests arguments from UnicornLoadBalancer
Unicorn Transcoder then serves the requested stream
##Change 2
Create 2 Lists of systems: those who can handle HDR (in hardware?) or not (OpenCL?VAAPI?VDPAU?etc.) and those that cannot(VAAPI on AMD_GPU)
Transcoder sends request to
UnicornFFMPEG capture request
mediainfo command to detect if HDR/bt.2020 [consider tweaking what we use to detect HDR? other option might be transfer function? best would be to perhaps use peak luminance >=300 nits? should be universal across formats]
If FILE is HDR: //we need to know that the requested server can deal with HDR. RPi cannot as of 2020, jetson *maybe*. most x86_64 systems with a modern GPU should be able to, otherwise CPU
{
make sure to pass tonemap arguments to the transcoder
//will depend on if HWaccel tonemapping available. Not sure about using OpenCL, VAAPI, VDPAU etc.
}
else
{
Send "standard" hw_accel auto arguements to transcoder
}