Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

obs-webrtc: Add AV1 Support #9331

Merged
merged 1 commit into from Jan 28, 2024
Merged

obs-webrtc: Add AV1 Support #9331

merged 1 commit into from Jan 28, 2024

Conversation

Sean-Der
Copy link
Contributor

Description

This adds AV1 support to obs-webrtc

Motivation and Context

Users wish to use AV1

How Has This Been Tested?

Tested against Broadcast Box

Types of changes

  • New feature (non-breaking change which adds functionality)

Checklist:

  • My code has been run through clang-format.
  • I have read the contributing document.
  • My code is not on the master branch.
  • The code has been tested.
  • All commit messages are properly formatted and commits squashed where appropriate.
  • I have included updates to all appropriate documentation.

@Sean-Der
Copy link
Contributor Author

Adding AV1 is done in this commit d639dda

Migrating the libdatachannel usage to C -> C++ is done in this commit 11a6348

Migration to C++ is a prerequisite for AV1 support.

Copy link
Collaborator

@tytan652 tytan652 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Those changes must be guarded behind #if version (e.g. 1.19.0 since it is not released), some distro will not use an alpha version to build OBS Studio.

@Sean-Der
Copy link
Contributor Author

Sean-Der commented Aug 3, 2023

@tytan652 We use an alpha version of libdatachannel today. No stable release of libdatachannel exists that can be used with OBS.

I can ask for a stable release if packagers/distros want. Since libdatachannel isn't packaged anywhere I anticipate WebRTC will be disabled in most places :(

@tytan652
Copy link
Collaborator

tytan652 commented Aug 3, 2023

Since libdatachannel isn't packaged anywhere I anticipate WebRTC will be disabled in most places :(

So I am off-topic: It was already available on the AUR (ArchLinux User Repo) with author of libdatachannel help since a while. So people that build obs-studio-git have bad build of the webrtc plugin and my dev machine too.
A PR to make CMake fail if the version is too low (if libdatachannel does things right and changed the version in CMake) might be needed as a fix.

Edit: I repeat this is off-topic.

@Conan-Kudo
Copy link
Contributor

I can ask for a stable release if packagers/distros want. Since libdatachannel isn't packaged anywhere I anticipate WebRTC will be disabled in most places :(

Please get a released version in place for OBS (and packagers) to depend on.

@tytan652
Copy link
Collaborator

tytan652 commented Aug 17, 2023

@Conan-Kudo, this is off-topic of the PR.
But maybe try to discuss libdatachannel author/maintainer directly about libdatachannel stabilization.

@Lain-B
Copy link
Collaborator

Lain-B commented Aug 17, 2023

I'll just throw in one very final thing on that off-topic discussion here: there's no need to rush things. I'd agree with @Conan-Kudo and @tytan652. But don't push public packages to release alpha as stable, make sure it's fully stabilized. Let's just all have patience. 🙂

(Also it would be nice if there were version macros)

Glad to see more AV1 PRs.

@Sean-Der
Copy link
Contributor Author

Sean-Der commented Nov 1, 2023

@Lain-B Good news! AV1 is now available in stable v0.19.0

Post v30.0 would it be ok to update the deps and enable AV1 for OBS?

@Sean-Der
Copy link
Contributor Author

AV1 is now available in the libdatachannel that OBS uses. This PR is ready for review/merge.

@Lain-B Lain-B merged commit 752abdc into obsproject:master Jan 28, 2024
14 checks passed
@RytoEX RytoEX added this to the OBS Studio (Next Version) milestone Jan 28, 2024
@Sean-Der Sean-Der deleted the av1 branch February 21, 2024 14:46
@kimilpyoung
Copy link

kimilpyoung commented Mar 11, 2024

Hi guys
When using the AV1 codec, frequent video freezing issues seem to occur due to keyframe problems.
After a keyframe arrives and the video playback resumes, the video plays normally for a while.
However, after a certain amount of time, the video stops and �Browser can no longer receive keyframes from OBS.

When setting the keyframe interval to 1 second, the video experiences frequent interruptions. The testing environment is 1920x1080 at 60fps with a bitrate of 6000 Kbps.

This happening on Windows, using an Intel 12900k, Geforce 4090.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
New Feature New feature or plugin
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

7 participants