kerberos-io / factory

An enterprise ready, resilient and horizontal scalable solution for large video landscapes.
http://doc.kerberos.io/factory/first-things-first/
27 stars 9 forks source link

Camera migrated to Enterprise not recording #7

Closed andrewheberle closed 2 years ago

andrewheberle commented 3 years ago

I have three agents deployed that have been working well (using Kerberos Opensource under Docker) for the last 12 days (new Kerberos user) and have just migrated one agent to Kerberos Enterprise today.

Versions in user are:

Factory = 1.4.5 Machinery = 1.3.16

This camera shows up fine in Kerberos Cloud however no uploaded videos play properly, with them seemingly being a few seconds long with no audio or video.

I have tried playing these videos (grabbed from app.kerberos.io) using VLC with no success.

Live streaming of this camera does work and shows images, however only in Low Res, which I would have expected Full Res to be available as this is a Kerberos Enterprise agent.

Configuring zones from the Kerberos Factory for this camera works fine too (ie the stream is visible) so my newly deployed machinery seems to be picking up the stream from the camera fine.

The following is the logs from the machinery pod:

▶ INFO 12e Livestream 27: received request to livestream.
13:39:59.929 1 ▶ INFO 12f Livestream 27: received request to livestream.
13:40:00.766 1 ▶ INFO 130 Livestream 27: received request to livestream.
13:40:01.768 1 ▶ INFO 131 Livestream 27: received request to livestream.
13:40:02.764 1 ▶ INFO 132 Livestream 27: received request to livestream.
13:40:03.754 1 ▶ INFO 133 Livestream 27: received request to livestream.
13:40:04.764 1 ▶ INFO 134 Livestream 27: received request to livestream.
13:40:05.776 1 ▶ INFO 135 Livestream 27: received request to livestream.
13:40:06.763 1 ▶ INFO 136 Livestream 27: received request to livestream.
13:40:07.762 1 ▶ INFO 137 Livestream 27: received request to livestream.
13:40:08.757 1 ▶ INFO 138 Livestream 27: received request to livestream.
13:40:09.765 1 ▶ INFO 139 Livestream 27: received request to livestream.
13:40:10.779 1 ▶ INFO 13a Livestream 27: received request to livestream.
13:40:10.837 Stop ▶ INFO 13b Stopping stream...
13:40:10.838 Stop ▶ INFO 13c Stopping upload...
13:40:10.838 Stop ▶ INFO 13d Stopping sendalive...
13:40:10.838 Stop ▶ INFO 13e Stopping motion...
13:40:10.838 Stop ▶ INFO 13f Stopping recording...
13:40:10.838 Stop ▶ INFO 140 Stopping livestream...
13:40:10.838 Stop ▶ INFO 142 Stopping RTSP stream...
13:40:10.838 RecordStream ▶ INFO 141 Stopped recording
WEBRTC: stop writing to track.
13:40:10.838 ProcessMotion ▶ INFO 143 Stopped motion
13:40:10.838 Stop ▶ INFO 144 Stopping channels...
13:40:10.838 Stop ▶ INFO 145 Stopping MQTT client
13:40:12.838 Bootstrap ▶ INFO 146 Opening configuration
13:40:12.851 Bootstrap ▶ INFO 147 Opened configurations
13:40:12.851 Bootstrap ▶ INFO 148 Creating livestream and webrtc channel
13:40:12.851 Bootstrap ▶ INFO 149 Starting configuration MQTT
13:40:13.524 Bootstrap ▶ INFO 14a Creating packet buffers
13:40:13.524 func1 ▶ INFO 14b MQTT 16: connected to tcp://mqtt.kerberos.io:1883
13:40:13.524 func1 ▶ INFO 14c MQTT: sending logs to kerberos/AKIA5V6EGLUW4UDVIY5L/device/cE4Tn0aVx0OjySOzraepmfYb9ulJZU/request-live
13:40:13.524 Bootstrap ▶ INFO 14d Opening RTSP stream
13:40:13.579 WriteToTrack ▶ INFO 14e WEBRTC: listing codecs.
13:40:13.579 RecordStream ▶ INFO 14f Start recording routine
13:40:13.579 WriteToTrack ▶ INFO 151 WEBRTC: codec - AAC found.
13:40:13.579 ProcessMotion ▶ INFO 150 Start Detecting motion...
13:40:13.579 RecordStream ▶ INFO 152 Start motion based recording 
13:40:13.579 WriteToTrack ▶ INFO 153 {[21 8] {11025 1ch 2 10 1}}
13:40:13.580 WriteToTrack ▶ INFO 154 WEBRTC: codec - H264 found.
13:40:13.580 WriteToTrack ▶ INFO 155 {[1 77 0 31 255 225 0 24 103 77 0 31 154 102 2 128 45 255 128 183 1 1 1 64 0 0 250 0 0 58 152 37 1 0 4 104 238 60 128] {77 0 31 3 [[103 77 0 31 154 102 2 128 45 255 128 183 1 1 1 64 0 0 250 0 0 58 152 37]] [[104 238 60 128]]} {77 31 80 45 0 0 0 0 1280 720 60000 2000}}
13:40:13.580 WriteToTrack ▶ INFO 156 WEBRTC: not using a transcoder.
13:40:13.700 WriteToTrack ▶ INFO 157 WEBRTC: Sending keyframe
13:40:14.761 1 ▶ INFO 158 Livestream 16: received request to livestream.
13:40:15.679 SendLiveStream ▶ INFO 159 Livestream: sending base64 encoded images to cloud.
13:40:15.679 WriteToTrack ▶ INFO 15a WEBRTC: Sending keyframe
13:40:15.760 1 ▶ INFO 15b Livestream 16: received request to livestream.
13:40:18.044 SendLiveStream ▶ INFO 15c Livestream: sending base64 encoded images to cloud.
13:40:18.044 WriteToTrack ▶ INFO 15d WEBRTC: Sending keyframe
13:40:18.291 FindMotion ▶ INFO 15e Number of changes detected:0
13:40:18.606 HandleStream ▶ ERRO 15f EOF
13:40:35.580 Stop ▶ INFO 160 Stopping stream...
13:40:35.580 Stop ▶ INFO 161 Stopping upload...
13:40:35.580 Stop ▶ INFO 162 Stopping sendalive...
13:40:35.580 Stop ▶ INFO 163 Stopping motion...
13:40:35.580 Stop ▶ INFO 164 Stopping recording...
13:40:35.580 Stop ▶ INFO 166 Stopping livestream...
13:40:35.580 ProcessMotion ▶ INFO 165 Stopped motion
13:40:35.580 Stop ▶ INFO 167 Stopping RTSP stream...
13:40:35.580 RecordStream ▶ INFO 168 Stopped recording
13:40:35.580 Stop ▶ INFO 169 Stopping channels...
13:40:35.580 Stop ▶ INFO 16a Stopping MQTT client
WEBRTC: stop writing to track.
13:40:37.580 Bootstrap ▶ INFO 16b Opening configuration
13:40:37.592 Bootstrap ▶ INFO 16c Opened configurations
13:40:37.593 Bootstrap ▶ INFO 16d Creating livestream and webrtc channel
13:40:37.593 Bootstrap ▶ INFO 16e Starting configuration MQTT
13:40:38.272 Bootstrap ▶ INFO 16f Creating packet buffers
13:40:38.272 func1 ▶ INFO 170 MQTT 15: connected to tcp://mqtt.kerberos.io:1883
13:40:38.272 func1 ▶ INFO 171 MQTT: sending logs to kerberos/AKIA5V6EGLUW4UDVIY5L/device/cE4Tn0aVx0OjySOzraepmfYb9ulJZU/request-live
13:40:38.272 Bootstrap ▶ INFO 172 Opening RTSP stream
13:40:38.330 WriteToTrack ▶ INFO 173 WEBRTC: listing codecs.
13:40:38.330 RecordStream ▶ INFO 174 Start recording routine
13:40:38.330 ProcessMotion ▶ INFO 175 Start Detecting motion...
13:40:38.330 WriteToTrack ▶ INFO 176 WEBRTC: codec - AAC found.
13:40:38.330 RecordStream ▶ INFO 177 Start motion based recording 
13:40:38.330 WriteToTrack ▶ INFO 178 {[21 8] {11025 1ch 2 10 1}}
13:40:38.331 WriteToTrack ▶ INFO 179 WEBRTC: codec - H264 found.
13:40:38.331 WriteToTrack ▶ INFO 17a {[1 77 0 31 255 225 0 24 103 77 0 31 154 102 2 128 45 255 128 183 1 1 1 64 0 0 250 0 0 58 152 37 1 0 4 104 238 60 128] {77 0 31 3 [[103 77 0 31 154 102 2 128 45 255 128 183 1 1 1 64 0 0 250 0 0 58 152 37]] [[104 238 60 128]]} {77 31 80 45 0 0 0 0 1280 720 60000 2000}}
13:40:38.331 WriteToTrack ▶ INFO 17b WEBRTC: not using a transcoder.
13:40:38.449 WriteToTrack ▶ INFO 17c WEBRTC: Sending keyframe
13:40:39.665 WriteToTrack ▶ INFO 17d WEBRTC: Sending keyframe
13:40:41.664 WriteToTrack ▶ INFO 17e WEBRTC: Sending keyframe
13:40:41.838 FindMotion ▶ INFO 17f Number of changes detected:0
13:40:43.354 HandleStream ▶ ERRO 180 EOF
13:40:57.046 1 ▶ INFO 181 Livestream 15: received request to livestream.
13:40:57.647 1 ▶ INFO 182 Livestream 15: received request to livestream.
13:40:58.742 1 ▶ INFO 183 Livestream 15: received request to livestream.
13:40:59.651 1 ▶ INFO 184 Livestream 15: received request to livestream.
13:41:00.331 Stop ▶ INFO 185 Stopping stream...
13:41:00.331 Stop ▶ INFO 186 Stopping upload...
13:41:00.331 Stop ▶ INFO 187 Stopping sendalive...
13:41:00.331 Stop ▶ INFO 188 Stopping motion...
13:41:00.331 Stop ▶ INFO 189 Stopping recording...
13:41:00.331 Stop ▶ INFO 18a Stopping livestream...
13:41:00.332 Stop ▶ INFO 18b Stopping RTSP stream...
13:41:00.332 RecordStream ▶ INFO 18c Stopped recording
13:41:00.332 Stop ▶ INFO 18d Stopping channels...
WEBRTC: stop writing to track.
13:41:00.332 Stop ▶ INFO 18f Stopping MQTT client
13:41:00.332 ProcessMotion ▶ INFO 18e Stopped motion
13:41:02.332 Bootstrap ▶ INFO 190 Opening configuration
13:41:02.359 Bootstrap ▶ INFO 191 Opened configurations
13:41:02.359 Bootstrap ▶ INFO 192 Creating livestream and webrtc channel
13:41:02.359 Bootstrap ▶ INFO 193 Starting configuration MQTT
13:41:03.038 Bootstrap ▶ INFO 194 Creating packet buffers
13:41:03.038 func1 ▶ INFO 195 MQTT 15: connected to tcp://mqtt.kerberos.io:1883
13:41:03.038 Bootstrap ▶ INFO 196 Opening RTSP stream
13:41:03.038 func1 ▶ INFO 197 MQTT: sending logs to kerberos/AKIA5V6EGLUW4UDVIY5L/device/cE4Tn0aVx0OjySOzraepmfYb9ulJZU/request-live
13:41:03.098 WriteToTrack ▶ INFO 198 WEBRTC: listing codecs.
13:41:03.099 WriteToTrack ▶ INFO 19b WEBRTC: codec - AAC found.
13:41:03.098 RecordStream ▶ INFO 199 Start recording routine
13:41:03.099 WriteToTrack ▶ INFO 19c {[21 8] {11025 1ch 2 10 1}}
13:41:03.100 RecordStream ▶ INFO 19d Start motion based recording 
13:41:03.100 WriteToTrack ▶ INFO 19e WEBRTC: codec - H264 found.
13:41:03.098 ProcessMotion ▶ INFO 19a Start Detecting motion...
13:41:03.100 WriteToTrack ▶ INFO 19f {[1 77 0 31 255 225 0 24 103 77 0 31 154 102 2 128 45 255 128 183 1 1 1 64 0 0 250 0 0 58 152 37 1 0 4 104 238 60 128] {77 0 31 3 [[103 77 0 31 154 102 2 128 45 255 128 183 1 1 1 64 0 0 250 0 0 58 152 37]] [[104 238 60 128]]} {77 31 80 45 0 0 0 0 1280 720 60000 2000}}
13:41:03.100 WriteToTrack ▶ INFO 1a0 WEBRTC: not using a transcoder.
13:41:03.584 WriteToTrack ▶ INFO 1a1 WEBRTC: Sending keyframe
13:41:03.670 WriteToTrack ▶ INFO 1a2 WEBRTC: Sending keyframe
13:41:04.425 1 ▶ INFO 1a3 Livestream 15: received request to livestream.
13:41:05.424 1 ▶ INFO 1a4 Livestream 15: received request to livestream.
13:41:05.658 SendLiveStream ▶ INFO 1a5 Livestream: sending base64 encoded images to cloud.
13:41:05.659 WriteToTrack ▶ INFO 1a6 WEBRTC: Sending keyframe
13:41:05.869 FindMotion ▶ INFO 1a7 Number of changes detected:0
13:41:06.408 1 ▶ INFO 1a8 Livestream 15: received request to livestream.
13:41:07.414 1 ▶ INFO 1a9 Livestream 15: received request to livestream.
13:41:07.665 SendLiveStream ▶ INFO 1aa Livestream: sending base64 encoded images to cloud.
13:41:07.665 WriteToTrack ▶ INFO 1ab WEBRTC: Sending keyframe
13:41:07.852 FindMotion ▶ INFO 1ac Number of changes detected:0
13:41:08.120 HandleStream ▶ ERRO 1ad EOF
13:41:08.419 1 ▶ INFO 1ae Livestream 15: received request to livestream.
13:41:09.414 1 ▶ INFO 1af Livestream 15: received request to livestream.
13:41:10.411 1 ▶ INFO 1b0 Livestream 15: received request to livestream.
cedricve commented 3 years ago

Thanks @andrewheberle from the logs you can see your camera is rebooting continuously. What type of ip camera are you using?

andrewheberle commented 3 years ago

Hi @cedricve i don’t think that is the case as the IP camera in question is showing an uptime of 13 days.

The camera is a Ubiquiti UVC-G2 camera that is set up in “standalone” mode so it’s just a “dumb” camera with a 720p RTSP stream (ie not using their Video setup).

This works fine with the open source/docker setup and my other two non-enterprise agents are still running fine with two other cameras of the same model.

andrewheberle commented 3 years ago

Just to give some more context, I had made a bunch of config changes during the period of those logs to try and get things working so I’m not sure if that has “polluted” the logs a bit.

cedricve commented 3 years ago

hmm yeah it looks like it can connect, but it fails after x seconds (or you reconfigured).

Can you share a longer dump using following command

kunectl logs machiner-....

Please attach as a txt file.

andrewheberle commented 3 years ago

Here are the full logs from last night.

machinery.log

It definitely looks like its failing to read the stream properly, which is unusual as this is the same camera and also on the same physical node/hardware that was running the open source Docker based machinery with no problems (this container is not running anymore).

cedricve commented 3 years ago

The enterprise is a complete rewrite so the behaviour might differ, will have a look.

cedricve commented 3 years ago

Interesting looks like you have audio enabled. Might be a bug on our side. Could you already try to disable the audio on your IP camera?

  00:16:55.886 Bootstrap ▶ INFO db22 Opening RTSP stream
  00:16:55.936 WriteToTrack ▶ INFO db23 WEBRTC: listing codecs.
  00:16:55.936 RecordStream ▶ INFO db24 Start recording routine
  00:16:55.936 ProcessMotion ▶ INFO db25 Start Detecting motion...
  00:16:55.936 WriteToTrack ▶ INFO db26 WEBRTC: codec - AAC found.
  00:16:55.936 WriteToTrack ▶ INFO db27 {[21 8] {11025 1ch 2 10 1}}
  00:16:55.936 RecordStream ▶ INFO db28 Start motion based recording 
  00:16:55.936 WriteToTrack ▶ INFO db29 WEBRTC: codec - H264 found.
andrewheberle commented 3 years ago

Not directly unfortunately.

These cameras allow me to turn off the microphone but looking at the RTSP stream in VLC the audio stream still exists.

As a workaround to test the theory I’ll deploy a ffmpeg or VLC container to restream the camera without audio and let you know.

cedricve commented 3 years ago

Yeah will look on our side, I expect a bug as the audio is coming first before the h264 codec. Will verify and create a new release.

cedricve commented 3 years ago

@andrewheberle can you give 1.3.17 a try?

andrewheberle commented 3 years ago

@cedricve unfortunately 1.3.17 behaves the same and I have not yet had a chance to set up a service to re-stream video only.

The logs from the machinery after the 1.3.17 update are attached if they help (although they look basically the same to me):

machinery.log

cedricve commented 3 years ago

ok thanks for testing @andrewheberle, let me know when you would have time to look into it together, would love to resolve the issue!

andrewheberle commented 3 years ago

Sorry @cedricve I was not totally correct. The uploaded videos now show a preview image but so far all but one uploaded videos are still unwatchable and apparently 4-seconds long.

I have set up a "re-streamer" using VLC using the following command line in an effort to strip out the audio channel:

vlc.exe rtsp://192.168.11.20:554/s0 --no-sout-audio --sout='#rtp{sdp=rtsp://:8554/}'

Unfortunately this results in the machinery going into a crash/restart loop:

2021-01-11 13:56:40,936 INFO spawned: 'machinery' with pid 14
[GIN-debug] [WARNING] Creating an Engine instance with the Logger and Recovery middleware already attached.

[GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production.
 - using env:   export GIN_MODE=release
 - using code:  gin.SetMode(gin.ReleaseMode)

[GIN-debug] GET    /debug/pprof/             --> github.com/gin-contrib/pprof.pprofHandler.func1 (3 handlers)
[GIN-debug] GET    /debug/pprof/cmdline      --> github.com/gin-contrib/pprof.pprofHandler.func1 (3 handlers)
[GIN-debug] GET    /debug/pprof/profile      --> github.com/gin-contrib/pprof.pprofHandler.func1 (3 handlers)
[GIN-debug] POST   /debug/pprof/symbol       --> github.com/gin-contrib/pprof.pprofHandler.func1 (3 handlers)
[GIN-debug] GET    /debug/pprof/symbol       --> github.com/gin-contrib/pprof.pprofHandler.func1 (3 handlers)
[GIN-debug] GET    /debug/pprof/trace        --> github.com/gin-contrib/pprof.pprofHandler.func1 (3 handlers)
[GIN-debug] GET    /debug/pprof/allocs       --> github.com/gin-contrib/pprof.pprofHandler.func1 (3 handlers)
[GIN-debug] GET    /debug/pprof/block        --> github.com/gin-contrib/pprof.pprofHandler.func1 (3 handlers)
[GIN-debug] GET    /debug/pprof/goroutine    --> github.com/gin-contrib/pprof.pprofHandler.func1 (3 handlers)
[GIN-debug] GET    /debug/pprof/heap         --> github.com/gin-contrib/pprof.pprofHandler.func1 (3 handlers)
[GIN-debug] GET    /debug/pprof/mutex        --> github.com/gin-contrib/pprof.pprofHandler.func1 (3 handlers)
[GIN-debug] GET    /debug/pprof/threadcreate --> github.com/gin-contrib/pprof.pprofHandler.func1 (3 handlers)
13:56:41.127 Bootstrap ▶ INFO 001 Opening configuration
[GIN-debug] GET    /restart                  --> main.main.func6 (4 handlers)
[GIN-debug] GET    /motion                   --> main.main.func7 (4 handlers)
[GIN-debug] GET    /config                   --> main.main.func8 (5 handlers)
[GIN-debug] POST   /config                   --> main.main.func9 (5 handlers)
[GIN-debug] Listening and serving HTTP on :8080
13:56:41.130 Bootstrap ▶ INFO 002 Opened configurations
13:56:41.130 Bootstrap ▶ INFO 003 Creating livestream and webrtc channel
13:56:41.130 Bootstrap ▶ INFO 004 Starting configuration MQTT
13:56:41.804 Bootstrap ▶ INFO 005 Creating packet buffers
13:56:41.804 func1 ▶ INFO 006 MQTT 24: connected to tcp://mqtt.kerberos.io:1883
13:56:41.806 Bootstrap ▶ INFO 007 Opening RTSP stream
13:56:41.807 func1 ▶ INFO 008 MQTT: sending logs to kerberos/AKIA5V6EGLUW4UDVIY5L/device/cE4Tn0aVx0OjySOzraepmfYb9ulJZU/request-live
13:56:41.904 ProcessMotion ▶ INFO 009 Start Detecting motion...
13:56:41.904 RecordStream ▶ INFO 00a Start recording routine
13:56:41.906 RecordStream ▶ INFO 00c Start motion based recording
13:56:41.904 WriteToTrack ▶ INFO 00b WEBRTC: listing codecs.
13:56:41.906 WriteToTrack ▶ INFO 00d WEBRTC: codec - H264 found.
13:56:41.906 WriteToTrack ▶ INFO 00e {[1 77 0 31 255 225 0 24 103 77 0 31 154 102 2 128 45 255 128 183 1 1 1 64 0 0 250 0 0 58 152 37 1 0 4 104 238 60 128] {77 0 31 3 [[103 77 0 31 154 102 2 128 45 255 128 183 1 1 1 64 0 0 250 0 0 58 152 37]] [[104 238 60 128]]} {77 31 80 45 0 0 0 0 1280 720 60000 2000}}
13:56:41.906 WriteToTrack ▶ INFO 00f WEBRTC: not using a transcoder.
2021-01-11 13:56:42,908 INFO success: machinery entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
13:56:56.905 Stop ▶ INFO 010 Stopping stream...
13:56:56.906 Stop ▶ INFO 011 Stopping upload...
13:56:56.906 Stop ▶ INFO 012 Stopping sendalive...
13:56:56.906 Stop ▶ INFO 013 Stopping motion...
13:56:56.906 Stop ▶ INFO 014 Stopping recording...
13:56:56.906 Stop ▶ INFO 015 Stopping livestream...
13:56:56.906 Stop ▶ INFO 016 Stopping RTSP stream...
13:56:56.907 HandleStream ▶ ERRO 017 read tcp 10.42.0.111:52246->192.168.12.73:8554: use of closed network connection
13:56:56.907 Stop ▶ INFO 018 Stopping channels...
13:56:56.907 Stop ▶ INFO 019 Stopping MQTT client
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0xa322c2]

goroutine 79 [running]:
gocv.io/x/gocv.(*Mat).Close.func1(0x0)
        /go/pkg/mod/gocv.io/x/gocv@v0.25.0/mat_noprofile.go:18 +0x22
gocv.io/x/gocv.(*Mat).Close(0x0, 0xc000521580, 0x1)
        /go/pkg/mod/gocv.io/x/gocv@v0.25.0/mat_noprofile.go:18 +0x2b
gitlab.com/kerberos-io/machinery/src/capture.ProcessMotion(0xc0002def90, 0xc00003d140, 0x6, 0xc00003aaa0, 0x1e, 0xc00003d080, 0x5, 0xc00003d020, 0xf, 0xc00003d070, ...)
        /go/src/gitlab.com/kerberos-io/factory/machinery/src/capture/ImageProcessing.go:176 +0xf05
created by main.Bootstrap
        /go/src/gitlab.com/kerberos-io/factory/machinery/main.go:83 +0x9fe
2021-01-11 13:56:56,920 INFO exited: machinery (exit status 2; not expected)

My "re-stream" can be played via another VLC instance on another device locally and shows the video channel only as shown below:

image

If I can provide any more info to help let me know.

cedricve commented 3 years ago

@andrewheberle let's jump on a call, would like to see it in action. Regards Cédric

cedricve commented 3 years ago

I know also see, it sometimes work (as it can do motion detection). But afterwards receives a bad packet EOF. VLC is more error prone and will ignore these packets I assume. Do you have some encoding settings you can tweak?

12:03:15.390 FindMotion ▶ INFO 8c1c Number of changes detected:18
12:03:17.233 WriteToTrack ▶ INFO 8c1d WEBRTC: Sending keyframe
12:03:17.407 FindMotion ▶ INFO 8c1e Number of changes detected:0
[31m12:03:17.538 HandleStream ▶ ERRO 8c1f EOF
WEBRTC: stop writing to track.
andrewheberle commented 3 years ago

Sorry for the late response.

Unfortunately I don’t have any parameters I can tweak on these cameras apart from the two different resolution streams I can access (both have issues).

I’m happy to have a call so you can see first hand.

I’m in GMT+8 so if there is an overlap between your own timezone we can sort out a call/screen share.

cedricve commented 2 years ago

By now should have been fixed, major changes have been added since this issue post.