#πŸ–₯-vesktop-development

1 messages Β· Page 8 of 1

simple groveBOT
simple groveBOT
azure verge
#

i want to work on the bitrate thing but GOD i am tired

hybrid fjord
#

i think we must wait for Curve to look at sound issue

azure verge
#

that's probably a good idea

hybrid fjord
#

bc i even can't reproduce bitrate thing because i can't start stream with sound

azure verge
#

once the audio selection is working properly

#

i can reproduce the bitrate problem

#

and fix it

#

wrogn worr

#

d

#

i wam so tired holy hell

upper pine
#

That electron node is not the screen share input

upper pine
hybrid fjord
#

Oke then, I do not know how exactly it works, just asked πŸ™‚

upper pine
#

Bruh I know exactly where it breaks

#

Okay that should be an easy fix

#

Alr first thing I do after I get up tomorrow besides taking a shower will be Vesktop Hot Fix

vernal lintel
#

vesktop fix > shower

#

im just kidding

simple groveBOT
azure verge
#

you said it

#

i was so relaxed to get 489 done and then it fuckin broke

simple groveBOT
#

I'm just mainly concerned with conflicting switches.m, but I think it will probably be fine.

This might not be an issue at all. When a flag appears in both enable-features and disable-features, it will be disabled. If someone wants to override Vesktop's flags, they can just disable them from the CLI. Assuming Vesktop doesn't disable something crazy by default (right not it doesn't) this will work well.

P.S.: Is this something worth documenting?

simple groveBOT
simple groveBOT
#

fedora 40 gnome 46 latest update

I'm using the PR where the bitrate fix was added to the main branch, I can confirm it has the same issue. I haven't run a git pull until now. I'm using the same versions of the latest merge fix for the main branch so far. however, crashes and delays are fixed when launching from the terminal. any changes to the main branch do not come from any changes to the source code. Maybe it's something related to the discord side. When using the flags the problem is f...

#

this is the pr I'm using, https://github.com/Vencord/Vesktop/pull/489 the most recent ones suffer from the same problem. some also do not play sound in the case of the "main branch" currently.

something interesting to say is that when using the official web discord my friends got lags. "https://discord.com/channels/@me" something I've never seen when using discord web through Google Chrome.

simple groveBOT
simple groveBOT
#

Describe the bug

Clicking on the "A VENCORD UPDATE IS AVAILABLE!" toast at the bottom-right of the Vesktop window causes the Vesktop window to become blank and nonresponsive; this does not resolve after waiting several minutes. Closing and restarting Vesktop enables it to become responsive, yet the toast reappears shortly after opening (suggesting that the update was not successfully applied. The app responds identically if the update is triggered from a native Windows toast.

![Scre...

simple groveBOT
#

btw, I did some further testing, looks that anything before #489 works fine for me...

right now I'm on #499 and tested a bunch of commits, then did a git bisect (I'm no good at this, I don't know if I am doing this right)

> 8eaa5206b98ce7029b6879cc2ce361c2ae5f6239 is the first bad commit
commit 8eaa5206b98ce7029b6879cc2ce361c2ae5f6239
Author: kaitlynkitty <87152313+kaitlynkittyy@users.noreply.github.com>
Date:   Wed Apr 17 19:40:03 2024 -0400

    overhaul & improve Linux scre...
simple groveBOT
hybrid fjord
#

will it fix bitrate issue?

upper pine
#

I think the bitrate issue is a different can of worms

#

If I get everything else I need to do done today, I can investigate whether or not my initial theory about the audio bit rate issue holds true

#

But I still have a lot to do :(

simple groveBOT
#

Describe the bug
Recently everytime I launch Vesktop it seems to segment fault a few seconds after. I am on Arch Linux using this aur package and all my packages are up to update. I think this started to occur after an update but I'm really not certain.

[goldy@jassim-desktop ~]$ vesktop
[arRPC > ipc] listening at /run/user/1000/discord-ipc-0
[arRPC > websocket] listening on 6463
[arRPC > process] started
[13435:0421/115440.16168...
#

In case you want to hear a funny story to tell your friends or family, here is one

So for some reason today I was not able to reproduce the issue anymore
Also, the latest commits broke audio sources at all (I swear it worked yesterday????) so I'm currently on #489 where it works

And... I couldn't reproduce it anymore... I was starting to think my account was limited yesterday somehow, BUT then the only thing that changed from yesterday was the discord client where I was testing the str...

vernal lintel
vernal lintel
#

if it's the latter then don't worry do what u gotta do first vesktop can wait

upper pine
# simple grove

This fixes audio share not working, wasn't sure if I should match potential whitespaces in the regex (I chose to not match any whitespaces in the end, hope that's the right thing to do xd)

simple groveBOT
vernal lintel
#

please stop opening invalid / duplicate issues 😭

#

do i really have to add brainrot issue template to vesktop as well

hybrid fjord
#

maybe add to readme first line capsed text that electron 30 not supported yet? xd

vernal lintel
#

maybe for now we can add a warning that using audio will worsen video quality

#

and that if it's laggy they should try without audio

#

sucks but what can u do

hybrid fjord
#

give us some time, maaaybe we can figure it out

vernal lintel
#

oh yeah no rush

simple groveBOT
#

I had the same issues and figured out a temporary fix, wanted to report the issue rn.

Basically I fixed this by downgrading the electron package to version 29 (using the downgrade script). Now both Vesktop and Vesktop-git (from chaotic-aur) are working again.

Electron 30 seems to introduce some issue that has to be taken care of.

Ah, thank you for that information. I'll downgrade to electron 29 and give it a try.

#

duplicate. not supported.

Totally fair, I get why. Sadly it wasn't immediately obvious to me while searching for this issue and I forgot to check closed issues (github doesn't display them by default and normally stuff like this is an open issue).
Just a suggestion, maybe keep an issue open for your own sanity with a short explanation and fix (install flatpak version) so that users don't open unnecessary issues.

No need to do this, just a humble suggestion ^^

upper pine
simple groveBOT
#

immagine

Red stripe is when my android phone joined the stream. Dropped the bitrate to ~30Kbps

I'm re-testing with a couple of friends, totally client dependent, I had my friend join with a Windows discord client and he was watching the stream correctly, then another friend with an android phone joined, the stream was still fluent.

Re-made the stream with the same friend with the android client...

simple groveBOT
#

tutorial is for Linux. no idea how to those things in windows though

Most probably you are installed Vesktop from Vesktop-Setup-1.5.1.exe installer from Releases, which is not actual upstream version of Vesktop. There was a bug when framerate is 30 fps; resolution picking from display resolution by standard; and bitrate capped to 2500 kbit/s. All this was fixed in #489. Can you re-produce issue using [building from source](https://github.com/Vencord/Vesktop?tab=readme-ov-file#building-fr...

simple groveBOT
hybrid fjord
#

found out that we can use STREAM_UPDATE flux event for applying our stream settings and not use setTimeout
but in some reason it calls system portal picker....
And i do not know why bitrate is capping to 30 kbit, because everywhere bitrate values are ok

upper pine
#

but in some reason it calls system portal picker....

Wdym

hybrid fjord
#

start stream -> pick screen
click start, wait
and in same time when STREAM_UPDATE called then you receive another screen picker

upper pine
#

Yeah I always receive like 2-3 screen pickers

hybrid fjord
#

strange thing that you get it only first time

upper pine
#

But that was before #489 was even merged as well

hybrid fjord
#

and STREAM_UPDATE calls when someone start watching

hybrid fjord
upper pine
#

no way

hybrid fjord
#

const audio = await navigator.mediaDevices.getUserMedia({
or this

#

even more probably

upper pine
#

probably that

#

hmm, can we patch the original call that causes the picker to also include the userMedia instead?

hybrid fjord
#

it may be even kde portal problem

upper pine
azure verge
#

that's most likely doable

#

big thing tho

#

we need to figure out why audio bitrate is getting applied to the video track

azure verge
#

I think so

#

but

#

we call getDisplayMedia for the stream

#

so I'm not sure how to combine them

upper pine
#

we should prob check if that's even the culprit for double portal before thinking about that xd

azure verge
#

lol true

hybrid fjord
#

it's so random

azure verge
#

god we have to fix this audio/bitrate issue

#

it also only applies the 29.17kbps limit when someone starts watching

simple groveBOT
azure verge
#

on a positive note

#

noise suppression seems to be working

#

krisp

simple groveBOT
azure verge
#

@hybrid fjord what if we just

#

wait for STREAM_UPDATE

#

and when it happens

#

reapply constraints

#

including bitrate

simple groveBOT
hybrid fjord
#

Problem is that all constraints are same, including all bitrate fields

#

What if we take audio stream and add video track to it xD

#

Instead of adding audio to video stream

azure verge
#

wait

#

i think i know why its weird

simple groveBOT
azure verge
#

i think discord probably changed something when they fixed krisp

#

because we would have noticed this

#

so hmm

#

i wonder what we need to change

hybrid fjord
#

Krisp in exchange to audio streaming..

#

Disabling krisp didn't helped me

azure verge
#

i think i need to start reading the logs

#

i have an idea

#

just really busy

upper pine
#

What

#

if we just bump the audio bitrate to the same as video bitrate

azure verge
#

that's a

#

i dont like that fix

#

who cares about people with bad internet anyways

upper pine
#

If it works we can limit the bitrate from the audio on the client/pipewire side

azure verge
#

there's definitely a more elegant solution

#

but i mean idk

upper pine
#

I mean

#

Could you test if it works xD?

azure verge
#

i could but i dont have the time to actually write the code KEKW

#

if i get through my homework ill gladly work on it

upper pine
#

I absolutely hate this

#

This is so fucking aids to navigate

#

Why would they do this

azure verge
#

i agree

#

we need to make a better youtube frontend

#

invidious is

#

eh

upper pine
#

True

hybrid fjord
azure verge
#

REAL

#

LMAO

#

i literally could and i think that's the funniest part

upper pine
#

what ever happened to proton up qt

azure verge
#

wait wha

#

i use it

upper pine
#

this shit just crashes two seconds in

#

everytime

azure verge
#

wha

upper pine
azure verge
#

works well for me

upper pine
#

you're one version up

#

huh

azure verge
#

im using the flatpak

#

so

#

idk

#

i just have a pacman hook that updates flatpaks on system upgrades

upper pine
#

oh

#

haha

#

nvm

#

I'm using the out of date aur package

#

I guess that explains it

azure verge
#

oh LMAO

upper pine
#

Def. not my fault MenheraFlower

azure verge
#

god i hope discord doesn't keep breaking streaming at this rate

upper pine
#

I hope discord ceases to exist

azure verge
#

all of my friends are here and i dont have any other way to contact them :(

#

as long as they give us notice

hybrid fjord
#

discord just looks at PRs and breaking everything xd

azure verge
#

id like that

#

REAL

hybrid fjord
#

next step will be broken tray icons

upper pine
#

malicious intent detected

hybrid fjord
#

day after we fix 30kbit

azure verge
#

if something else breaks im gonna have an aneurysm

vernal lintel
#

CNAME Cross-User Banned

#

You've requested a page on a website that is part of the Cloudflare network. The host is configured as a CNAME across accounts on Cloudflare, which is not allowed by Cloudflare's security policy.

azure verge
#

o h

#

so we literally cant redirect that to vencord.dev?

#

i mean i can

#

point it to my server

#

and have my nginx do a redirect

vernal lintel
#

😭

azure verge
#

also your username
ive been meaning to ask
is that
may bell (but like small ) or something i swear i feel like im missing context

#

lmao

vernal lintel
vernal lintel
#

but in english they're called lily of the valley

#

they're very beautiful flowers

azure verge
#

okay good my direct translation skills aren't that bad

#

OH

#

ITS

#

THE FLOWER???

#

OHHHHH

#

i love those flowers

#

aren't they poisonous tho

vernal lintel
#

they kinda look like bells and i guess they bloom in may

azure verge
#

guess so

#

lol

vernal lintel
#

tiny little bells

azure verge
#

awwwh so prettyyy

vernal lintel
azure verge
#

:(

#

i want to eat

#

flower

#

omg

#

i wonder what lily of the valley tea tastes like

azure verge
humble mortar
#

also

#

the custom cursors games apply isnt getting picked up by the screen share

#

tested with genshin impact specifically

#

it used to be picked up but with a weird blue tint

#

now its my default system cursor

vernal lintel
#

don't u have to run genshin as admin

#

how does it even record that

#

did u run vesktop as admin too

humble mortar
#

I'm linux gamignfg

vernal lintel
#

genshin runs on linux now?

#

damn

humble mortar
#

the community has had a work around for a while now

#

but mhy finally white listed wine in their anticheat so no risk of ban now

#

bing bong

#

I'll test the cursor issue in other games later

hybrid fjord
azure verge
#

the game launches anyways

#

just without the anticheat

#

so it works on linux through proton by just

#

not having anticheat

#

LMAO

simple groveBOT
#

@sysrq-reisub Can confirm. With my alt account the stream works with audio, no bitrate drops.
EDIT: I tried streaming from my alt account (Vesktop) to my main account (Official Discord) and the bitrate drops again.

i believe the bitrate drop only occurs when someone starts watching

It does but from what I have experienced happens only when a client has a specific decoder.

Retested with friend on Windows and when he started watching stream bitrate dropped to 30, so most...

hybrid fjord
#

hm, about decoders this actual useful info

simple groveBOT
humble mortar
#

screensharing with audio is broken on latest commit

#

probably #504

#

Chromium input-1 isnt created which results in venmic not routing the audio anywhere

hybrid fjord
#

but we still have 30kbit issue

humble mortar
#

ah alr

hybrid fjord
#

i believe we must change screenshot in readme??

upper pine
#

def yeah

vernal lintel
#

and on flathub

#

cc @sly cairn

sly cairn
#

cant help you until tokorrowy

#

tomorrow

vernal lintel
#

yeah no rush

sly cairn
#

alr

azure verge
sly cairn
#

from my PC

#

im in the WRONG COUNTRY

simple groveBOT
vernal lintel
#

already enabled silly

simple groveBOT
simple groveBOT
azure verge
#

ill get on this soon

hybrid fjord
#

I tried all my ideas today without success ((

#

Even with that flux event I tried to get current stream parameters and they all set to our 8000 kbit

#

It looks like some problems or with discord backend (like capping for non nitro) or with RTPTransceivers, but I checked them and they seem good

simple groveBOT
#

Strongly in favor of a socket or CLI interface for controlling the push-to-talk up/down events. It could be invaluable as both a stopgap solution and as a fallback, even if it is more of a DIY approach.

This workaround runs as a privileged process (or with the desired device made user-readable) and listens for evdev events on a given device/button, and then forwards a given Xorg key event to XWayland, via libxdo (using the XTEST extension...

azure verge
#

it being 29.17 and not 30

#

is what makes it weirder

hybrid fjord
#

Also what I found out
When you have Stream object and on Firefox print stream.getTracks() then it will return array where video is first and audio is second
But in chromium we get audio first and video second
I tried to find where in .js discord (not vesktop) code function getTracks() calling with hope that somewhere for bitrate calculation it taked [0] but without success

hybrid fjord
azure verge
#

interesting

hybrid fjord
#

Also interesting what other people wrote about this issue on different clients

azure verge
#

wait

#

did i miss that

#

wait is this a discord problem

#

im gonna whip out the old webrtc debugger again

simple groveBOT
hybrid fjord
#

Main problem that we can't reproduce it in plain browser 😦

#

We can't stream with sound to see how it works normally

azure verge
#

yeah

#

hm

#

ill look

#

okay

#

i cant reproduce always

#

if someone is watching

#

and there's no audio

#

and then i change windows and select audio

#

it stays high

#

i think

#

yeah it does

hybrid fjord
#

Hm

#

Okay at least we have working workaround

azure verge
#

i just started a stream with audio and its around 1200kbps but i dont think its locked there

#

it keeps steadily rising

hybrid fjord
#

Maybe discord fixed it already xD

azure verge
#

genuinely

#

could be that was their issue

#

that they introduced when fixing krisp

hybrid fjord
#

Ahahahha

azure verge
#

@humble mortar you had this issue too?
are you able to reproduce

#

im gonna keep trying

humble mortar
#

I wasnt specifically trying it

azure verge
#

i cant reproduce this at all

#

i could earlier today

#

I GOT IT

#

what the fuck

#

it only happened once someone on an official discord client started watching

#

one of my friends was watching from web and i couldn't reproduce it

hybrid fjord
#

i can reproduce it, watching myself from web

azure verge
#

oh odd

#

what the hell

#

in that case

#

no what the hell

#

i can reproduce it every time now

#

what the hell

#

is this

hybrid fjord
#

changing windows does not helps

azure verge
#

yeah what the hell

hybrid fjord
#

and after changing windows instead of stream i just get black screen, but probably thats because of 30 bitrate

azure verge
#

it was fine for me for a little bit and then i got pulled down

#

is it

#

some weird rate limit???

hybrid fjord
#

if (client ==Vesktop):
{
bitrate = 30
}

#

prank from discord team

azure verge
#

real

#

what the hell

upper pine
hybrid fjord
#

I don't know how Ρ‚_Ρ‚

azure verge
#

it takes like 8 seconds

#

and then this

#

what the hell

upper pine
hybrid fjord
#

I can try

#

But I'm not sure that it will help

azure verge
#

i assumed it was just baked into it

vernal lintel
#

yes

#

its a addon that is called

#

essentially .so file

#

its not a separate process

azure verge
#

woa

upper pine
azure verge
#

wacky

vernal lintel
#

rest api

upper pine
azure verge
#

aha

#

wherever this is reading from

#

cuz this is the stats

#

that's the value i need to throw out the window

#

fucker

#

this API changed

#

this is not how it used to look

simple groveBOT
azure verge
#

i wonder if this qualityoverwrite function could be useful at some point lol

#

well this is set wrong

#

no idea if it matters tho

#

29168 isnt anywhere in discord code

hybrid fjord
azure verge
#

yeah

#

nothing

#

what the hell

#

does discord incorrectly detect this as audio or something

#

WHAT THE FUCK

#

if more than one person is watching it jumps to 1300ish kbps

#

still lower than we want

#

but as soon as it drops to 1 person watching it drops to 29.17

#

this is with 2 people

#

the drop is when 1 person left

hybrid fjord
#

its so fucking strange

azure verge
#

and came back

#

the fuck is this

simple groveBOT
hybrid fjord
#

i don't know what we can even change

azure verge
#

i cant find any significance in these numbers

#

29168

#

and 1400000ish

#

its not locked entirely like it is with one person

#

this is annoying too because now its locked at low fps if you use audio at all

#

what the hell could this even be

hybrid fjord
#

lol wait
check in debug top labels

#

ohh nvm

#

i scrolled at top and there is audio
i thought video isn't there

azure verge
#

oh lol

simple groveBOT
#

i have been able to confirm that the bitrate is lowered to 29.17kbps on my machine when streaming with audio AND someone is watching, but as soon as someone else starts watching (total of 2 viewers) the bitrate gets raised to around 1400kbps. This issue is even more strange than before, and I am entirely at a loss as to how we should go about fixing this. Here's to hoping someone has an idea lol.

#

i have been able to confirm that the bitrate is lowered to 29.17kbps on my machine when streaming with audio AND someone is watching, but as soon as someone else starts watching (total of 2 viewers) the bitrate gets raised to around 1400kbps. This issue is even more strange than before, and I am entirely at a loss as to how we should go about fixing this. Here's to hoping someone has an idea lol.

Also, I cannot confirm that this is the case, as it was very sporadic as to whether or not i...

hybrid fjord
#

What if this is not bitrate issue but some sort of encoding issue
What if it tries to encode video using opus or something like that and provides catastrophically low performance
But that does not explains 1400 increasing when 2 people watching

humble mortar
#

does minimizing/hiding the stream as a viewer change the bitrate

#

while still playing the audio

hybrid fjord
#

no

azure verge
simple groveBOT
simple groveBOT
#

So I upgraded to the latest git build, audio now works fine
In any case what it came to my understanding is it totally depends from the client video decoder, somehow they influence the stream bitrate for everyone

"Bad" clients:

  • Windows ones work sometimes as long they are using hardware decoders
  • Some android clients, my Pixel 8 for example and a couple of other phones break the stream
  • Some web clients in my case I was using Firefox
  • Regular Discord clients on Linux distros ...
simple groveBOT
upper pine
# simple grove

Also, apparently you just need one of the "good" clients to fix the stream for everyone. I made my alt join my streams so everyone can look at them without it being a slideshow

What the fuck

hybrid fjord
#

it looks like some issues with discord's servers (??)

#

i don't have other ideas

upper pine
#

This is some black fucking magic how can other clients !!!FIX!!! the stream

#

Curb your servers discord

simple groveBOT
#

I had the same issues and figured out a temporary fix, wanted to report the issue rn.

Basically I fixed this by downgrading the electron package to version 29 (using the downgrade script). Now both Vesktop and Vesktop-git (from chaotic-aur) are working again.

Electron 30 seems to introduce some issue that has to be taken care of.

Ah, thank you for that information. I'll downgrade to electron 29 and give it a try.

This worked btw, thanks.

#

So I upgraded to the latest git repo, audio now works fine In any case what it came to my understanding is it totally depends from the client video decoder, somehow they influence the stream bitrate for everyone
~snip

I am lost for words lmao

This might be more of an issue on Discord's side than Vesktop or really anyone; besides the audio issues I suppose. There's literally an ongoing bug in Discord Canary which makes voice chats absolutely unusable as it plays back garbage...

hybrid fjord
#

omg i more and more start believe that this is just discord doing some shit

simple groveBOT
ionic gust
#

an irrelevant point nonetheless as it does not pretain to WebRTCMediaEngine

ionic gust
#

and that wont change until pulseaudio, jack and alsa are all deprecated and pipewire is the standard for audio

#

there are still people hellbent on "my pulseaudio setup works fine, why should i switch to pipewire"

#

its not out of malice, its just negelect for web and linux because one "just works" based on what browsers provide and the other hasnt had a dedicated team since 2017

ionic gust
simple groveBOT
simple groveBOT
azure verge
#

we need more web clients to test

simple groveBOT
hot juniper
#

cool profile picture

#

i love husk

ionic gust
simple groveBOT
vernal lintel
#

samsam

#

the wifey

azure verge
#

augh its bothering me so much that i cant figure this out 😭

hot juniper
tidal quarry
#

what other entitlements does this exactly need

#

oh ig all the hardware related ones

#

ic

simple groveBOT
#

just use global shortcuts portal and x11 can cope

allowing external control seems smart tho as a separate option

The thing about the XDG global shortcut protocol, if I'm not mistaken, is that it will still take a while longer for the implementations to appear. Especially outside of rolling distros that follow upstream closely. Even though the protocol/spec itself is complete, and Plasma is said to support it, GNOME and wlroots are still in the design phases of their implementation...

simple groveBOT
#

Problem

With Vesktop v1.5.1 there was a problem with Vesktop not requesting for permission and rather denying access immediately, I assume it is due to it no longer having an ad-hoc signature, though I don't exactly know the specifics but.... adding/specifying the entitlements manually seems to work fine.

Was pretty simple to fix, just adding the entitlements file to build/ and electron-builder will sign with those entitle...

vernal lintel
#

pog

simple groveBOT
simple groveBOT
tidal quarry
#

I got extra bored and made a custom vesktop dmg

#

I now realize theres an inconsistency with the fonts lmao

tidal quarry
simple groveBOT
simple groveBOT
#

After launching Vesktop, the animated Loading Vesktop screen appears as it should, but after it closes, the set-up screen doesn't appear.

To Reproduce

1: Install Vesktop from command line (flatpak install flathub dev.vencord.Vesktop)
2: Launch Vesktop from command line (flatpak run dev.vencord.Vesktop)

Expected behavior

After launching, the loading screen plays, before the application launches and the loading screen closes out

**Desktop (please complete the following i...

simple groveBOT
simple groveBOT
#

Describe the bug

I launch Vesktop. The loading screen thing opens. It disappears. According to my terminal it was terminated by a 'trace or breakpoint trap' (SIGTRAP).

To Reproduce

  1. Download Arch Linux. Sorry
  2. Download vesktop-bin from the AUR (not vesktop which apparently has segfaults). This will pull in electron 29 (not 30).
  3. Run it in a terminal.
  4. Observe how it crashes.

Expected behavior

Vesktop doesn't crash.

Screenshots

I open...

azure verge
#

wow

#

lots of stuff got done

#

im gonna look into the bitrate thing even more today

#

there's gotta be SOMETHING

hybrid fjord
#

What's interesting: in Windows discord client looks like for screensharing WebRTC not used, because in created stream connection there is no any familiar WebRTC streams, tracks and etc.
Applying screenshots what is interesting from conn too:

#

thats with sound sharing enabled

azure verge
#

yeah on windows they use discord_voice for like everything

#

instead of webrtc

#

what if we try something really stupid and like
swap the order of the media engine connections array

#

see if it magically unbreaks it

#

put video before audio

hybrid fjord
#

i tried with no success

azure verge
#

damn

hybrid fjord
#

but try maybe you can deal with it xD
i tried removing video and adding it again after audio added

simple groveBOT
vernal lintel
simple groveBOT
vernal lintel
#

it looks cool but idk what im looking at

hybrid fjord
azure verge
#

yeah macos is weird

#

to install apps you drag them to the app folder

#

like

#

there's an entire app format

#

just designed around

#

dragging an application

#

into a folder

hybrid fjord
#

actually this is pretty cool UX for users who not familiar with CLI and so on and want to install another app

azure verge
#

it's not as good as just

#

an installer

#

I don't understand making them drag it to the folder

#

imo ofc

#

if you like it, go off queen

simple groveBOT
tidal quarry
#

They double click the dmg and it opens with like some weird looking ui that somehow is standardized throughout macos, which just makes you drag vesktop.app to your Applications folder

#

Its extremely portable as the entire app is just straight in that dmg

vernal lintel
#

why do you specifically have to drag it lmao

#

why don't they just add an install button to the modal

broken solstice
#

Hello, the 30kbps bug also affects cameras apparently...
Yesterday the camera was limited to 180p just like the stream...

tidal quarry
#

When you double click

#

So its just a custom looking

#

finder window

#

this is what it currently looks like

#

kinda funny when u realize what it actually is

#

though theres alternative ways of getting macos apps installed, this is just one of them that exists that is a standard

#

do I know why? nah

broken solstice
#

I'm pretty sure whenever on call

#

I'll try to reproduce it today

tender prairie
#

how hard are the installer backgrounds anyway

tender prairie
#

anything with more than dependency on what macOS includes has an installer

broken solstice
#

Yep, camera quality is also locked at 30kbps somehow

tidal quarry
hybrid fjord
broken solstice
#

?

#

Huh

hybrid fjord
azure verge
#

or do you mean like

#

no stream going at all

broken solstice
#

No stream at all

#

Just camera

azure verge
#

what the hell

#

and it's not reproducible on web???

simple groveBOT
azure verge
#

nvm browser was broken

azure verge
#

either its not or

#

what

#

what the actual fuck

#

i can only reproduce it with vesktop and audio streaming

#

i couldn't reproduce camera

#

but

#

my camera froze on the receiving end after like 45 seconds

broken solstice
azure verge
#

wacky

#

i am genuinely

#

incredibly at a loss

#

do we wait and see if this is a discord issue

#

or do we keep digging in hopes of finding SOMETHING

broken solstice
#

Did we try the different branches?

azure verge
#

i already leafed through the source

#

oh yeah i forgot to try ptb and canary

#

welp

broken solstice
#

Btw, do you want to test in call?

azure verge
#

my vesktop install has no vencord stare

#

what the hell

#

i cant even see the vesktop settings option

broken solstice
azure verge
#

oh god what the hell

#

@vernal lintel waaah

#

lmao

#

let me try something

#

yeah

#

its an issue with a fresh source clone

broken solstice
#

odd

azure verge
#

so i dont have access to the vesktop settings menu

#

but vencord is there?

#

i am SO confused

#

what the HELL broke

#

whatever it was may be part of why its locked at 30kbps

#

it could be that some MASSIVE parts of vesktop aren't being loaded properly

hybrid fjord
#

ahjahahahahahaha i started call to myself and enabled camera on discord web

azure verge
#

oml

#

okay something MAJOR is broken LMAO

azure verge
#

can you access the uh

#

vesktop settings menu

#

for me the entire category is gone

#

and so is the vencord stuff

#

like anything non-stock is gone

hybrid fjord
#

maybe try update vencord from tray?

azure verge
#

yep

#

god some days i am an idiot

hybrid fjord
#

okaaaaaaaaaay i have some reealy useful info

azure verge
hybrid fjord
#

if we stream audio with sound -> 30 kbit
if we enable camera then we have camera stream 5000kbit!!!

#

look at left, this is not stream, this is default connection

azure verge
#

wait

#

so like

hybrid fjord
#

and here is stream like screenshare

azure verge
#

hm

simple groveBOT
#

"Bad" clients:

* Windows ones work  _sometimes_ as long they are using hardware decoders

* Some android clients, my Pixel 8 for example and a couple of other phones break the stream

* Some web clients in my case I was using Firefox

* Regular Discord clients on Linux distros (they probably have basic software decoding)

"Good" clients:

* Vesktop which uses WebRTC is fine in both windows and linux

* Some Windows d...
azure verge
#

I always had full bitrate on camera in my tests

hybrid fjord
#

we must try to set bitrate parameters to another conn

#

i will try from conosle

azure verge
#

that's what I'm thinking

#

something shuffled the connections

#

good luck to you

hybrid fjord
#

no success, but at least we are close to recognizing why we have this behavior

simple groveBOT
upper pine
#

@vernal lintel

#

Why don't we compile venmic

#

On macos-latest

#

In docker

#

That way we don't need fucking qemu

azure verge
#

why not just

#

cross compile it

upper pine
#

qemu

#

we need arm

azure verge
#

wait you cant cross compile across architecture???

upper pine
#

and we run it through qemu to compile because of system dependencies and such

#

we have x86 and arm builds

upper pine
#

which is aids

azure verge
#

fair

upper pine
#

we currently compile in an arm docker container

#

which runs through qemu

#

which is fucked

#

we could run on macos instead

#

which is arm

#

and has docker

#

and then we would skip qemu

#

which should drastically speed up the build

azure verge
#

wait

#

i assume you mean do that compilation on an arm machine

#

just on a macos docker container

upper pine
#

We would simply use the github macos runner because that runs arm

#

and then compile in docker

#

since venmic is linux only

azure verge
#

OH

#

OHHHHH

#

omfg

#

yeah that's smart

upper pine
#

why didn't we fucking think of that

azure verge
#

you did

#

just not earlier

upper pine
#

and run it through qemu instead lmao

upper pine
ionic gust
#

just pr the change?

upper pine
#

Don't even need to PR

#

I'll push it later

simple groveBOT
vernal lintel
#

does github not have linux arm?

#

didn't we try self hosting runners at some point

cause i have an arm linux vps

upper pine
simple groveBOT
simple groveBOT
#

You can install version 8.x here: https://pnpm.io/8.x/installation Running the installation command should replace the 9.x you've installed Then you'll just need to follow the build/package guide in the readme

Okay, I managed to uninstall pnpm and get the right versionn and i follow the guide. I managed to install the newer version, I can tell because the stream menu is different.. but its stil laggy, i get like maybe 1 more fps.

#

You can install version 8.x here: https://pnpm.io/8.x/installation Running the installation command should replace the 9.x you've installed Then you'll just need to follow the build/package guide in the readme

Okay, I managed to uninstall pnpm and get the right version, and then follow the guide. I managed to install the newer version, I can tell because the stream menu is different.. but its stil laggy, i get like maybe 1 more fps.

I believe best way for you will be just to install...

simple groveBOT
#

You can install version 8.x here: https://pnpm.io/8.x/installation Running the installation command should replace the 9.x you've installed Then you'll just need to follow the build/package guide in the readme

Okay, I managed to uninstall pnpm and get the right version, and then follow the guide. I managed to install the newer version, I can tell because the stream menu is different.. but its stil laggy, i get like maybe 1 more fps.

I believe best way for you wil...

simple groveBOT
simple groveBOT
#

Also when testing permissions for the microphone, you can get it to prompt back up if you've already allowed it with this command:

sqlite3 ~/Library/Application\ Support/com.apple.TCC/TCC.db`
delete from access where service='kTCCServiceMicrophone' and client='dev.vencord.vesktop';```

Though would not recommend you keep vencord opened when doing so because it will prompt you that it doesn't have access when it indeed does. So either kill the application before doing it or kill it...
tidal quarry
#

markdown broke (in my commit message )

vernal lintel
#

huh how

tidal quarry
azure verge
#

at the very least

#

im gonna see if this 30kbps thing is a regression from 1.5.1

#

if it doesnt happen in 1.5.1

#

im gonna test every commit until it breaks

simple groveBOT
hybrid fjord
azure verge
#

we shall see

#

yep

#

discord changed something

#

its broken in 1.5.1

#

f u ck

upper pine
#

@vernal lintel

#

could you enable discussions on venmic?

vernal lintel
#

cant u?

#

now u can

upper pine
#

Thanks :3

azure verge
#

i dont know what discord did but MAN i just want streams to work why did it have to get 10x worse after we made it better 😭

#

my gf had an idea and idk it might be dumb but

#

is it possible there's a total bitrate limit and audio is taking too much?

#

therefore pushing video down to 30kbps

hybrid fjord
vernal lintel
azure verge
#

oh stare

vernal lintel
#

^

#

we have to potatoify the audio

hybrid fjord
#

xd

azure verge
#

i dont know if we can

#

this is the audio connection in stats.rtp

#

either it never records audio bitrate

#

or its not a setting

#

all i can say for sure is that the sample rate is 48000

hybrid fjord
#

We can set AS parameter

azure verge
#

at least from what ive found

#

huh

#

inb4 this fucker is the problem

#

unless im wrong

#

why is this shit set on streams

#

gain control, noise cancellation, etc

hybrid fjord
#

It may be some default parameters for conn object

azure verge
#

this is on the conn object after constraints

#

so i believe it applies to the stream

#

if so

#

that's not high

vernal lintel
#

64k

#

its not that much

azure verge
#

yeah

vernal lintel
#

in fact its probably just

#

default settings is 64k

azure verge
#

hmm

azure verge
vernal lintel
#

but thats voice audio

#

check the stream audio

#

thats what we need

#

maybe we need to limit it to the same bitrate as voice

azure verge
#

yeah but this is the conn object pertaining to the stream (i believe)

#

the bottom console.log

#

therefore it should be the stream

#

not voice

hybrid fjord
#

We set bitrate using patches

vernal lintel
#

add this

#

last line

#

in screenShareFIxes.ts

azure verge
#

ill give it a shot

vernal lintel
#

oh wait thats sampleRate not bitrate

azure verge
#

but i dont think it will do anything

#

yeah

#

hey

#

im gonna test this

hybrid fjord
#

i belive i tried Ρ‚_Ρ‚ but try again

azure verge
#

😭

#

i will turn off the other audio shit tho

#

it doesnt need

#

autogain and all that

vernal lintel
#

bit rate = sample rate x bit depth

#

so if we want 64k

#
const audio = await navigator.mediaDevices.getUserMedia({
    audio: {
        deviceId: {
            exact: id
        },
        autoGainControl: false,
        echoCancellation: false,
        noiseSuppression: false,
        sampleRate: 48000,
        channelCount: 2,
        sampleSize: 16
    }
});
#

try this?

azure verge
#

how are you so fucking fast with this omg

vernal lintel
azure verge
#

i look at vscode and you already have an idea finished and typed up

vernal lintel
#

but its the standard

azure verge
vernal lintel
#

also added stereo property but i think it doesnt work

#

last time i tried discord downmixed it to 1 channel lol

azure verge
#

yowza

#

still cannonballs down to 29.17

vernal lintel
#

try to reduce samplerate / size

#

potato quality time

#

do like half of both

azure verge
#

im gonna make them both 1

vernal lintel
#

OKPSDOPJIKASOPIKFOPSKAF

#

1 bit per second

#

beautiful

hybrid fjord
#

discord native simulation

azure verge
#

damnit

#

wtf

#

my gf said it still sounds high quality

vernal lintel
#

probably doesn't work then

#

those properties

azure verge
#

yeah

#

didnt work

hybrid fjord
#

we can set them using functions, not constraints for track

azure verge
#

i dont even know if im looking in the right place

#
  1. they all are prefixed with _
hybrid fjord
#

conn.setEchoCancellation() conn.setNoiseCancellation() and conn.setNoiseSuppression()
there is even function setCodecs() and setBitRate() but it didn't helped
also just found out function setCameraBitRate(), can you try to call it?

#

write in console
[...Vencord.Webpack.findStore("MediaEngineStore").getMediaEngine().connections][1].setCameraBitRate(800000)

azure verge
#

not a function on the conn object

hybrid fjord
#

:c

azure verge
#

maybe its on one of its sub-object things?

#

idk what they're called lmao

hybrid fjord
#

for Camera it's probably for Windows only but setBitRate i saw on linux too

azure verge
hybrid fjord
#

anyway i think we must find something for camera stream and edit it, because if discord takes settings from screen stream to camera stream then it takes settings from camera stream to screen stream

hybrid fjord
azure verge
#

y ea h

hybrid fjord
#

try for connections[0]

azure verge
#

i feel like i might have to fuck with the sdp

azure verge
#

it does 😭

#

this is my voice

#

HAHAHA

hybrid fjord
#

potato voice time

#

ahjahah

azure verge
#

uh

#

what

#

look at the available

#

let me try this again

#

okay

#

so that function updates transport

#

not outbound

#

this is what we can do directly to conn

hybrid fjord
#

hmm using setStream() we can probably fix issue when we can't start stream while watching another stream

azure verge
#

possibly

#

but i dont know if that's even worth caring about when the streams are this unusable

hybrid fjord
#

not for now indeed

vernal lintel
#

actually, could bitrate be done via venmic?

azure verge
#

maybe?

#

if that's even the issue

vernal lintel
#

it might be

azure verge
#

i wonder why its LOCKED at 29.17

#

i mean its not a bad idea to have a rock solid audio limit

hybrid fjord
#

also wtf with bad and good clients

azure verge
#

so it wouldn't be wasted effort

#

YEAH

#

i need to test that

#

rn

#

brb connecting 2 vesktop instances

hybrid fjord
#

i'm on vencord on Windows, is it good client?

azure verge
#

oh this is really weird

#

im in a call with myself

#

on the same system

#

using the same mic

#

for both users

#

oh god

upper pine
azure verge
#

what

#

the

#

fuck

#

i can hear and see it from both clients

#

both are vesktop

#

WHAT THE FUCK

hybrid fjord
#

aahha

azure verge
#

IS THIS ISSUE

upper pine
azure verge
#

so is it

#

only native discord that breaks it?

upper pine
# azure verge IS THIS ISSUE

Maybe the other clients are sending some stuff to our client and tell it to adjust some stream settings which ultimately fucks it up on our client

#

If you know what I mean

azure verge
#

discord_voice should die

upper pine
#

Maybe the bad clients tell our client to update it's stream to some garbage stuff

#

Wait

hybrid fjord
#

lets overload handleNegotiationNeeded() to do nothing

upper pine
#

Do we actually control who's able to watch the stream?

azure verge
#

with a web viewer

#

its fucking

upper pine
#

Imagine just blocking non web clients lmaoo

azure verge
#

discord_voice

azure verge
azure verge
upper pine
upper pine
#

Fuck around and find out

azure verge
#

true

#

@hybrid fjord ur idea you try it

hybrid fjord
#

at least we can see whether bitrate changes to 30 kbit

upper pine
azure verge
#

mhm

azure verge
#

i wish we could

#

like

#

get a readout of the entire transaction between the clients

#

so we could see what it sends

upper pine
#

It would be so fucked up if the bad clients tell the server to fuck up our stream - that wouldn't make any sense

azure verge
#

inb4 venmic becomes FOSS discord_voice

upper pine
azure verge
#

id assume its in the media-internals

upper pine
#

I could consider that

#

We could probably use libopus

#

But I'd like to avoid doing that if possible xd the maintenance burden would be dramatically higher

azure verge
#

oh yeah ofc

#

itd be funny if we had full interop with discord desktop tho

upper pine
#

Wait

#

How bad is streaming with a normal web client?

#

Is it also fucked?

azure verge
#

2500kbps

#

not 30

#

just 2500

upper pine
#

So that's bad right?

hybrid fjord
#

i got 2500 sometimes for camera

azure verge
#

what makes us different from normal web

azure verge
#

that's what 489 originally fixed

upper pine
#

Alright, so the screen sharing issue is also a stock discord web issue

azure verge
#

idfk where the 30kbit comes from

azure verge
#

a simple x-google-max-bitrate header change

#

but

#

30kbit is w e i r d

upper pine
azure verge
#

really helpful

#

at the bottom of mainWindow.ts

azure verge
#

way too much overhead

upper pine
#

True

#

And probably prone to break

azure verge
#

every time discord updates it we'd have to reverse engineer the changes

#

to make it compatible

vernal lintel
#

it's definitely not easy

azure verge
#

plus new codecs

#

which

#

(would be nice)

#

but lmao

#

hmm

#

what the hell

#

no new webrtc negotiations are made when someone starts watching

#

so why does it

#

drop

#

what the fuck

azure verge
#

this is the webrtc internals for the stream's audio

#

it seems like discord_voice is fucking something with how it translates webrtc

#

idk tho

#

i am so confused

#

wait

#

to test if this is a discord issue

#

let me try something

hybrid fjord
#

what

azure verge
#

wait

#

nvm

#

i cant test that because we dont have audio streams on web

hybrid fjord
#

that's why i wanted to use venmic in plain web xD
but then it will be just same as vesktop actually

azure verge
#

wai

#

t

#

does web have audio sharing on windows

#

we could use that to test

hybrid fjord
#

i believe no, but let me reboot and recheck

azure verge
#

if it gets cut to 30kbps

#

on web with audio

#

then its not our problem

hybrid fjord
#

no audio on web on windows

azure verge
#

wtf

#

one of my friends is on web and i can hear shit

#

not entire system

#

specific application maybe

#

?

#

or maybe they streamed a chromium tab

#

from chromium

hybrid fjord
#

i tried on firefox T_T

#

let me try chromium

#

hehe this what we have in chrome

#

OMG FUCKING GOD I PICKED SHARE SCREEN AUDIO AND IT MADE RECURSION OF AUDIO AND NOW IM DEAF

#

okay audio or for tab, or for whole system

#

thats discord web

#

same bug

#

2500 before viewing and 29.17 after i start viewing at Vencord on Windows

simple groveBOT
hybrid fjord
#

time to sleep

azure verge
#

YAYYY

#

WE DONT HAVE TO FIX IT

#

THEY'LL DO IT EVENTUALLY

hybrid fjord
#

Two days of investigation just lost xD

azure verge
#

REAL

vernal lintel
hybrid fjord
#

Tomorrow I will report these two bugs to discord, maybe they will do something with it

#

Sadly that discord created this bug right after we fixed all for beautiful streaming :c

#

Didn't let us stream even a week
And didn't let us even release this changes to tag

azure verge
#

😭

azure verge
#

i would but i have no idea how