Skip to content

Expand ScreenSharePresets to include 60 fps options #1822

@nick-funk

Description

@nick-funk

Describe the problem

Live kit does not support any high frame rate streams that are greater than 30 fps.

Element (Matrix client) uses the livekit-client sdk and is unable to provide 60 fps streams for screen sharing.

Users of this client are attempting to use Element for gaming and music live streaming:
element-hq/element-web#19008 (comment)

Gaming and music sometimes prefer a higher video bit rate over high resolution streams.

Describe the proposed solution

I would like to propose a h720pfps60 option for the ScreenSharePresets object to allow users to choose whether they want 1080p@30fps or 720p@60fps.

Example preset would look like so:

export const ScreenSharePresets = {
    ...
    h720fps60: new VideoPreset(1280, 720, 5_000_000, 60, 'medium'),
    ...
}

This would consume the same max bitrate as 1080p@30fps, but provide an option for higher frame rate video. This is very similar to what Discord does.

It would appear that NVENC, Intel QuickSync, and AMD's VCE all support 720p@60fps, so this hopefully has enough hardware encode/decode support to be feasible within livekit's underlying libraries.

Alternatives considered

Other than continue to use 30 fps video for these use-cases, I am unsure what else can be considered.

Importance

would make my life easier

Additional Information

Thank you for your consideration in this matter, y'all make a great SDK. I've seen it used in a lot of places.

I hope you're able to consider my (hopefully) modest proposal.

Have good one!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions