-
Notifications
You must be signed in to change notification settings - Fork 9
Simulcast #2
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
base: master
Are you sure you want to change the base?
Conversation
5ab24b7 to
3300d5f
Compare
|
How can we test this? I downloaded latest build from artifacts but I don't see any new option on OBS? A little help? :) |
5f24f56 to
16d2f99
Compare
|
Tested with Broadcast Box - works great! This is very cool indeed. |
|
Nice! 🥇 |
|
Hey @Sean-Der thanks for your great work! I am running the Arm MacOs OBS version and can successfully stream with simulcast enabled to the website. At least that is what I think is happening as all the metrics look good in OBS. On the website I also get the simulcast controls but unfortunately the stream does not load whether I use Safari or Chromium as a browser. What is the best way to debug this further and provide feedback? |
e99b4c3 to
ed6dcb6
Compare
|
Sorry about that @SetoKaiba @chhofi What encoder are using? Can you try these settings? Does it help if you lower the bitrate? Does it work without Simulcast enabled? |
|
Hi, @Sean-Der . And then I tried it with my local ZLMediaKit server. It's working with OBS WHIP before. It supports simulcast. And here's the warning I saw from ZLMediaKit logs for simulcast branch. "未识别的sr rtcp包" means "unrecognized sr rtcp packet".
|
|
@SetoKaiba can you try running https://github.com/glimesh/broadcast-box locally? Just to debug
|
|
@Sean-Der I tried with broadcast-box Another small question, I run it with docker in windows. The video is not loaded. But the streaming doesn't report any error. For ZLMediaKit, I'll try to debug the problem with ZLMediaKit's maintainers. But the ZLMediaKit is working with simulcast. Its demo page run successfully. So it seems to be a compatiblity problem. Thank you. |
|
@SetoKaiba thanks for all the testing! My guess is that we aren't implementing something properly? If you can figure out what ZLMediaKit is looking for I can implement that right away! |
3e9f94b to
f33efce
Compare
4fb5e34 to
999da92
Compare
This adds the devices_match function to null monitor to fix linking issues on linux when pulse audio is disabled. Fixes obsproject#12810 Signed-off-by: pkv <pkv@obsproject.com>
Improves app shutdown in a few ways, including separating out different pieces of the OBSBasic close handler into their own functions. Removes the crash handler sentinel earlier when the main window is closed, preventing unclean shutdown warnings when a plugin causes issues. While not ideal, the dialog is not useful when we cannot specify which plugin caused the problem. Increases shutdown priority of the main application so that when OBS interrupts the session ending, CEF is not closed at the same time. This fixes a crash. Additional safeguards and event handling to try to ensure a smoother shutdown.
Updates targets to be consistent in their order putting uppercase before lowercase
The monitoring deduplication was previously checking at each audio tick the whole audio tree for Audio Output Capture (AOC) devices used for monitoring. The profiling did not show any big impact on the audio callback. But due to reports of a significant slowdown for scenes with numerous audio sources, we have moved the check on AOC from the audio thread to the UI thread. So we implemented obs_source_audio_output_capture_device_changed which is triggered whenever: - a monitoring device is changed in Settings > Audio, - an Audio Output Capture source changes its device or on startup. This function compares the AOC device with the monitoring device in UI thread. If they are identical, a signal is sent to the audio thread to add an audio task updating the AOC duplicating source pointer at the end of an audio tick. This triggers monitoring deduplication if the ptr is not NULL. The calls in the AOC are implemented in next commits. The rest of the logic in obs-audio.c is the same except on one count, which is that we check against the muted state of the AOC rather than its user_muted; with the new logic, muted works better. Signed-off-by: pkv <pkv@obsproject.com>
For 'wasapi output capture', calls are added when devices are either changed, started or removed. The calls trigger checks against the monitoring device. Signed-off-by: pkv <pkv@obsproject.com>
For 'coreaudio_output_capture', calls are added when devices are either changed, started or removed. The calls trigger a check against the monitoring device. Signed-off-by: pkv <pkv@obsproject.com>
For 'pulse_output_capture', calls are added when devices are either changed, started or removed. The calls trigger a check against the monitoring device. Signed-off-by: pkv <pkv@obsproject.com>
The default device retrieved was the one used for system sounds. This fixes it by retrieving the one used to output audio. It seems the bug has been there since the initial writing of this bit of code (so 2017).







Add WebRTC Simulcast Support