I have used obs.ninja [1] to pipe phone camera feeds as video inputs to OBS.
I then use the virtual cam plugin to make that my webcam feed. This works great, but what I'd also love to do is take the audio from the phone mic as a browser input and use it as a virtual microphone. I've only been successful by using a VBCable pipe and setting the monitoring device, but what that ends up doing is also playing all of the sound OBS is capturing from my phone into my headphones too, so I get my own voice. If I mute OBS, the monitoring doesn't work, and so I get no audio.
If I capture the audio completely outside OBS with another mic, everything's out-of-sync and I don't have portable audio.
This is so close to a seamless way to turn any phone into a portable webcam with mic, but I haven't figured out that last little piece of the puzzle. However, I wanted to 1) shout out OBS for being such an incredible piece of software, and 2) shout out obs.ninja for what it does. Seriously impressive.
You can do just about anything with voicemeter banana and OBS. I was hesitant to install voicemeter since I've been burned by that kind of always-on low level virtual driver software before, but it is so stable and light that I forget it's even running. I needed a fairly complex set up for my D&D streaming:
- send all desktop audio except Zoom output into Ableton live for post processing.
- send desktop audio (sans zoom) from Ableton to twitch via OBS for background music and sound effects.
- send ASIO device input (microphone) from Ableton to zoom after voice FX.
- send zoom output to monitoring headphones only, so I can hear my players, but they can't hear themselves talking over the soundtrack.
This was trivial up set up with voicemeter, and it even has a pretty amazing ASIO virtual insert device that lets you use it like a patch bay for Ableton with sub 10ms latency. It's also donationware so you don't have to pay to try it. The caveat is, while the configuration I use is indeed trivial to set up, the virtual insert device has a very steep learning curve and it took me several days to get it nailed down (though it's simple enough to communicate with two screenshots one you know what you're doing). I'm really impressed by voicemeter and highly recommend it to anyone that dabbles in streaming or video production.
I think I hit the same point as you touch on, in that I identified voicemeeter as the likely solution but due to a rather intimidating number of options I couldn't quite summon the mental clarity to piece together the correct setup to achieve it. Like, I knew conceptually what I was trying to wire together but couldn't quite map it out. With breather's sibling comment, I suspect I'll be able to tease it out now.
No, I think I shall thank you right now if it's all the same to you!
I'm trying to do this on a Windows box so PA doesn't specifically work, but after a cursory glance over this page I think I can take this concept and work out how to map it to a Windows implementation with a bit of fiddling.
If you haven't just used OBS you definitely should check it out. It's an incredible piece of software. I can screen cap multiple browsers and get a webcam feed and be at ~4% CPU usage. To put that in perspective I just made an app with OpenFrameworks (C++) that just gets my camera and it uses ~6% of my CPU.
The CPU/GPU usage for streaming depends mostly on the encoder that you're using. Programs like OBS allow you to use different encoders with different settings. This will place a very different load on your system. Eg x264 slow at 1080p would use a lot of CPU resources on most CPUs. On the other hand, if you have an nvidia GPU capable of nvenc and use that then you get next to no CPU usage. Same goes if you have an Intel CPU with an iGPU and use QuickSync or AMD's GPU encoder.
I'll say that even most modern desktop CPUs would use about a CPU core when encoding x264 even on fast preset at 1080p. It's pretty CPU intensive. That's why hardware encoders such as nvenc are popular. You most likely want to check what kind of encoder you're using. Maybe there are no other options than x264. In that case you might want to drop encoder settings and perhaps the resolution.
I was in the same boat. Switched to a T495 ThinkPad with AMD Ryzen 7 PRO 3700U w/ Radeon Vega 10 Gfx, and now my macs feel like toys. Unbelievable power. Would never imagine a laptop could do any of things OBS is able to deliver without breaking a sweat.
OBS supports hardware encoding ironically on Intel integrated graphics, but doesn't on discrete graphics. So a much better graphics chipset in a macbook is likely to be a hinderance for this.
Sorry, you probably need a "real" video card for video encode.
I really tried to make OBS work at 1080p on my 2015 MacBook Pro, but just about anything (even a simple flip the webcam output) causes my fan to spin to maximum and eventually the video lags behind.
The best thing I could do was get something like the Avaya HC020 Webcam. It does a lot of things like zoom, flip, color balance, etc. all in the camera so you're processing as little as possible. At that point, I think I got 720p reliable, but not 1080p. However, my fan was still going full blast.
Eventually, I just gave up and built a Windows 10 desktop machine solely for video. It works great and I don't have a jet engine powering up next to my face when I do video.
Make sure you're using hardware encoding if you can. Using the CPU encoder can be higher quality, but it can't beat the dedicated hardware on your GPU for encoding in terms of performance.
Even a first-gen Raspberry Pi 1 is able to encode 1080p30fps video with its hardware encoder.
Not sure, you may want to drop to 720p and maybe lower your bitrate. For my latest project I was using a Macbook pro 2015 to test it, running my app and streaming at the same time fine. I was running Windows 10 though on the mac. If you're running Mac OS try using a utility like SMC Fan Control to set the fan RPM high. Mac OS by default wants to be as silent as possible which could be leading to some performance issues.
I'm very new to streaming so take what I say with a grain of salt.
A lower bitrate (=better quality assuming constant file size) requires your encoder to work harder. If anything you want to use faster settings with higher bitrates (=lower quality). Some encoders let you cap the bitrate but what this does is basically ruin video quality in scenes where the bitrate cap has been exceeded, it doesn't actually make it less CPU intensive.
On some Macs (typically Radeon equipped ones) you can enable hardware encoding. I'm not at my machine, but it should read something like "Apple hardware accelerated $FOOBAR"
Sounds weird. We are using an old 2015 MacBook Pro for 1080p streams at work. We stream multiple webcams, browser capture, Teams capture and HDMI screen capture. It has never lagged for us.
Considering Waylands history with lacking screen capture support and the amount of work that's gone into creating plugins like https://hg.sr.ht/~scoopta/wlrobs to support screen capture for wlroots based Wayland compositors this really doesn't looked like something OBS can or should fix. Until there's a standard way for applications to actually do screen capture similarly to X, Wayland is going to continue to be stuck as the 2nd choice for a lot (most) people.
Not to mention all the other things that don't work on Wayland, like VM key capture and Peek's event passthrough.
The whole design behind Peek is that you have a transparent window that shows you what is being recorded and you can interact with the window behind it to record something useful. Passing through events to the window behind it only works on X11 (or XWayland).
My colleagues keep spawning Teams meetings just to record their screens; meanwhile, I can open OBS, add a screen recording element, resize it however I like, set the bitrate, encoding type, resolution, scaling, and record beautiful 60fps demos.
And that's literally the simplest scenario. The amount of stuff you can do with video compositing in this tool is insane.
Love me some OBS, I use it for piano practice with my tutor. Simultaneous video feeds (face, hands) and window capture of VMPK mirroring the MIDI out of my digital piano piped into a virtual camera, then VBcable pipes the OBS monitor audio to an input source. Put those two together as the audio and recording devices in zoom and were off! If there is interest I’d love to write more about it and share, let me know!
Could you ask someone to make a video of you while you are using this setup? Like a friend/family member in your room holding a phone? I would like to show an older piano teacher this setup.
OBS is such a great tool. It does its job in a clear and specific manner, and exposes as many levers as you need in the controls. The plugin system seems a bit unrefined though, I think it could be a major win if it was somewhat more accessible.
Platform-specific stuff kinda sucks but it's the nature of the beast.
Unfortunately, at some point they seemed to have removed support for the AMD encoder used with my old GPU, so I can't enjoy the recent software updates until I update my hardware.
Just noticed that the OBS project makes about 2.5k per month on Patreon. That's a bit sad, considering basically all of Twitch and the most of the YouTube scene uses it to record and stream their videos, and they tend to use and recommend Patreon to their own viewers.
They'd be in a pickle if tomorrow OBS Studio were to disappear.
Twitch and YouTube sponsor OBS as well. The tier below them has a minimum of $50k per year, so they probably pay a lot. Check the OpenCollective as well.
According to their website[0]
their current balance is $97,012.47 USD,
and their annual budget is ~ $47,327.66 USD, so they're probably not too badly unerfunded.
Or no one is getting paid full time. That might be a good thing for a project like this. A full time employee might bring with it some perverse incentives (if it reaches a state where the community isn't clamoring for a full year's worth an an engineer's time, what happens to that engineer when the work is gone, or what if they find things that aren't needed to justify more work?)
If their current balance is over two years worth of their annual budget and the users are happy with the project and how its progressing, I'm happy to think they're in a good place until I hear evidence to convince me otherwise.
Yeah currently the OC funds are mainly used for expenses, such as a community developer needing a piece of hardware to add or work on support for something, hosting fees, etc.
I think a few bounties have been given out as well, but there isn't an entirely formal process for those yet.
It's open source, innovation is not necessarily tied to money. It may or may not be tied to it or helpful in some way. It does open a whole bunch of questions up though, like who gets the money, what if an individual contributes more work than the paid employee and the salary? I've seen situations where people are upset about where grant money is allocated and who it's allocated to, so I imagine having a person paid a salary is susceptible to similar possible community problems.
That's not to say money necessarily causes a problem, just that it can, and introducing a monetary incentive into a system that was working well with non-monetary incentives (traditional open source) might complicate things.
Another way to look at it is that open source is primarily a social system and context, and mixing a financial system with a social one often leads to problems as different aspects of our lives cause friction we're generally ill-equiped to deal with. Just look at any of the reports of people that have won large amounts in the lottery and had a negative outcome in their social lives.
I interact with Jim (obs creator) pretty regularly and he definitely deserves the support. Dude is extremely talented and kind. He puts an insane amount of effort into OBS.
It really shows. I just switched back to Windows after 10 years of macs, and OBS was a driving factor. Can't believe how powerful and easy to use it is.
I ran my high school's analog TV studio 25 years ago, and we ran a live news broadcast everyday for the lunch room. Effects that took half a room of gear and thousands of watts of power are all a few clicks and sliders away.
It runs horribly on macOS. Like a night and day difference. If I understand correctly the difference is primarily regarding the encoder.
I also switched my streaming machine over to windows recently.
Edit: ok, “horrible” is dramatic, but it was honestly shocking the first time I booted into windows and gave OBS a try there. Exact same computer that struggled with OBS in macOS produced a much better output without breaking a sweat.
Using Boot Camp or a Hackintosh to be able to do that on the same computer? Might help to make the distinction between it overperforming via Boot Camp or underperforming on a Hackintosh.
Beside horrible, it's terrible, Just upgraded and can't even resize the panes. And the CPU usage is high even when not streaming or do any capture etc.
Do you do any picture-in-picture of other apps with heavy CPU utilization, or apply any filters (chroma key/crop) or animated overlays? Multiple cameras or input sources? Multiple audio sources?
The framerate was terrible, the entire machine would lag, and the audio would constantly glitch out at best. Saved recordings were unwatchable.
I tried tweaking everything with the process priorities in OBS and the other apps, and could never get an acceptable result. AMD ThinkPad worked out of the box, did everything I described above, and CPU utilization stayed around 2-3%, and I couldn't even notice it was running while using other apps. All of this while I had it hooked up to extend the desktop onto 3 monitors. Streams and recordings are flawless.
Yeah, this is news to me too - we’ve been using it on a Mini (granted, it’s an i7 - but still, it’s a laptop in an aluminum case) with zero issues. Integrating NDI, no less!
I'm about to buy the first license for Windows in the past decade specifically because I believe that OBS runs better on Windows and want to switch my next broadcast to be OBS on Windows instead of OBS on Linux. To be clear, OBS has run amazing on Linux, but there appears to be more mature high quality 3rd party plugins for Windows. The fact that OBS works so well on Windows and Linux is amazing to me, and a ton of respect for the team to make that happen. But with empirical evidence that both you and I are paying Microsoft for an improved OBS experience is a good enough reason that Microsoft should also financially sponsor OBS.
I think I remember two big streamers Destiny and HasanPiker donated a combined 4k or 5k to the project last year on stream. Really wish streamers would know that these are open source projects where their only source of income is from donations.
I thought LibreOffice has (approximately) continuity of maintainership with the OOo team, which itself had continuity of maintainership with the StarOffice team. Apache OpenOffice is moribund and has never really regained active development, despite being the official successor according to Oracle corporate.
I'm boutta up that by $100/mo. Just got 26 installed on my Gentoo box, seamless upgrade. I've only been a user for a short, short time but it's amazing.
More to the point, it only works if the owner isn't the only person who is willing and able to maintain the project. Open licensing lets you maintain your own fork, but it doesn't by itself grant you the drive, general skill, and project-specific knowledge to do so.
While it's community supported (though only at 2.5k/mo) I highly suspect that NB is going to outperform OBS in the coming years, just given the market Nvidia is trying to capture. Most youtubers / streamers don't need the full configuration capabilities of OBS, but rather just want something that works out of the box with the basic nice to haves (overlays, noise cancellation, basic text compositing / donation integrations).
Isn't nvidia broadcast just some tools that plug into your existing streaming software?
>NVIDIA Broadcast is a universal plugin that works with most popular live streaming, voice chat and video conferencing apps. It’s supported on any NVIDIA GeForce RTX, TITAN RTX or Quadro RTX GPU, using their dedicated Tensor Core AI processors to help the app’s AI networks run in real-time, right alongside your games.
It's a bit of both. It can configure itself to be a virtual camera (similar to OBS), which could then be consumed by OBS. It also has built in features for directly streaming to twitch/youtube/etc and skipping OBS entirely. Likely an embrace, extend, and extinguish strategy on their part.
I’ve had quality issues with NVENC on OBS at 4K that went away if I either used cpu encoding in OBS or used NVENC with Shadowplay. I don’t know what caused this (I have a 1080) but it was super frustrating
I've tried SLOBS many times. Like every now and then, months apart. Actually, just this weekend again. Usually only takes me about an hour to go back to OBS ... I am not even entirely sure why I keep looking into it. Probably subconsciously I am looking for something that justifies electron and the horrible UI.
I don't get it. Why in newer versions of OBS Game Capture is not working for some games, while older version of OBS works without a problem. Same system, same game, OBS version 0.659 (that I have it for like ~2 years) captures games and newer OBS versions all fail. For this purpose I have to keep around this old version while for all other stuff I have the latest and greatest.
Is it some DRM problem? Because otherwise I can't explain it.
OBS 0.659 is "Classic" OBS which has been discontinued for years. If you're having issues capturing games with OBS Studio, stop by our forums or Discord with a log and we may be able to help. If the game uses any kind of anti-cheat engine, it's possible the developer only whitelisted older capture DLLs but this is rare.
There is no log. OBS "captures" but the image is black while the game sound is there. One common attribute I found for all these games are that they are "true full screen". One example is "Tomb Raider", the series reboot from 2013. OBS 0.659 has no problem capturing my gameplay, while newer versions gives, like I said, black screen on recording.
Quick question if you indulge me: Why was classic discontinued?
OBS Studio is a full rewrite of OBS, and the old version was renamed to Classic to avoid confusion. It's been deprecated for many years now, and is no longer maintained. There is no real reason to use it anymore. If I had to guess the issue here, you're on a laptop with two GPUs and OBS Studio is running on a different GPU than OBS Classic is, which is why you're running in to issues. We'd need a log file to know for sure, but it's likely a simple fix (which you can stop by our Discord or forums with and we can take a closer look, feel free to ping me @fenrir in either location).
On those pesty games, neither Zoom nor Skype, nor TeamViewer capture the screen. I have also my own, written long time ago, screen capture utility, that one fails too. PrtScr key fails too. All of them return the correct resolution in cliboard, full black. That's why my guess is a DRM problem.
8 years ago when I was a kid and I tried to record Minecraft videos, the options for screen capture where awful. The best option at the time seemed to be Fraps. I don't remember when OBS began to take off in the community, but I couldn't be happier. It's an incredible piece of software that is so powerful and very user friendly. Quality is killer too.
Still want 2 things for OBS:
1) built in Equalizer
2) wayland support - this is dependent on other projects too, I use Gnome which doesnt allow screen capture yet.
I'm hoping this eventually gets merged in.
This would not only allow capturing Wayland, but also capturing games without affecting the performance too much (similarly to Shadowplay on Windows).
We'd like to merge it as well, but it's still very much a work in progress, and there's some major hurdles with both Wayland itself and Qt that need to be addressed first.
I play piano and sing. When I wanted to start streaming, I went from opening OBS for the first time to having a livestream to youtube, complete with audio from my interface synced to my webcam, in about 5 minutes. Just and incredible piece of software. I'm gonna drop a few bucks Everytime I stream now.
Also, shout out to obs.ninja, which let me cast my chromebook to the stream for my little jazz theory lecture/ramblings.
The biggest problem - it doesn't work[1][2] with Wayland. So, for example, with Fedora 32 default installation it is impossible to make it record either whole screen or just a selected window.
There's already a plugin for that and I've been using it for a while. I use it to combine my webcam with my desktop so that I can watch YouTube together with my family while still looking at each other's face.
NVENC only works on recent NVidia GPUs (it's in the hardware itself: https://en.wikipedia.org/wiki/Nvidia_NVENC ), and there haven't been any recent NVidia GPUs that are (officially) supported by macOS.
You can technically use the Mac GPU by selecting a Video Toolbox encoder, but quality varies.
FWIW, I can steam 1080p60 without too much CPU overhead (~20%) on my iMac 2020 using libx264.
Right and the 16" MacBook Pro has an AMD Radeon Pro GPU. So NVENC is not going to work.
AMD has an equivalent "Video Coding Engine" (VCE) which is supported through "Video Toolbox" (an apple API) as mentioned by another commentor although there is some talk of the quality not being as high no idea how relevant that is the current AMD cards in the MacBook Pro 16".
Quality not being as high mostly means that you have to bump up the bitrate. For local recording it'll produce larger files and for streaming it'll require a better connection (if the streaming site allows higher bitrate). That still makes it very much usable though.
Depending on what you stream or trying to achieve, just get a Windows/Linux VPS and set up everything via RDP/VNC like you would on your own box. That's what I did for a "twitch plays" channel that was up for about a year.
While OBS will run virtualized, you will get a massive performance hit if no GPU is available and everything is done in software rendering. And GPU-enabled cloud servers are quite expensive.
Still no support for my audio interface over USB… You can add it, but no signal comes true. I know about virtual audio routing, but I'm so sad this bug hasn't been fixed after years…
Your device must support one of the common audio protocols to work in OBS (for Windows WASAPI for example). There's also an ASIO plugin available.
OBS will probably not add any specific code to support non-conforming device(s) without an external maintainer willing to keep the needed code updated over the years.
The plugin with similar functionality called OBS Virtual Camera is quite old, I use it since end of March for Zoom improv and I noticed that many other improvisers do too.
I then use the virtual cam plugin to make that my webcam feed. This works great, but what I'd also love to do is take the audio from the phone mic as a browser input and use it as a virtual microphone. I've only been successful by using a VBCable pipe and setting the monitoring device, but what that ends up doing is also playing all of the sound OBS is capturing from my phone into my headphones too, so I get my own voice. If I mute OBS, the monitoring doesn't work, and so I get no audio.
If I capture the audio completely outside OBS with another mic, everything's out-of-sync and I don't have portable audio.
This is so close to a seamless way to turn any phone into a portable webcam with mic, but I haven't figured out that last little piece of the puzzle. However, I wanted to 1) shout out OBS for being such an incredible piece of software, and 2) shout out obs.ninja for what it does. Seriously impressive.
[1]: https://obs.ninja/