[HN Gopher] OBS (macOS) Virtual Camera
       ___________________________________________________________________
        
       OBS (macOS) Virtual Camera
        
       Author : mistersquid
       Score  : 246 points
       Date   : 2020-06-03 15:31 UTC (7 hours ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | ceocoder wrote:
       | If you are a linux user and own a nice camera you can use gphoto2
       | and ffmpeg to create a virtual camera. I posted howto on HN
       | couple of days ago[0][1], here it is for anyone who might need
       | it. I tried it with both Sony RX100VA and Sony A7III, in both
       | cases it works really well.
       | 
       | edit: forgot to mention that this works over USB, you don't have
       | to pay crazy markup for capture card
       | 
       | edit2: (because I'm so excited about getting this to work) here
       | is a list of supported cameras[2] - sadly I was _not_ able to get
       | GoPro Hero 6 to work.
       | 
       | [0] https://www.crackedthecode.co/how-to-use-your-dslr-as-a-
       | webc...
       | 
       | [1] https://news.ycombinator.com/item?id=23325143
       | 
       | [2] http://www.gphoto.org/proj/libgphoto2/support.php
        
         | londons_explore wrote:
         | Shame that there is a perfectly good standard for cameras...
         | The USB Video Class... Why have all these cameras decided to go
         | use a different set of protocols that don't work out of the box
         | in any OS?
        
           | snazz wrote:
           | I'm guessing this is because proper live view video from a
           | DSLR requires much higher bandwidth than USB can provide. The
           | protocols used for remote capture and download over USB
           | should be more standardized, for sure, but live view seems
           | really hard.
        
             | woofie11 wrote:
             | It's actually much more because the DSLR companies, for the
             | most part, are technologically-backwards, and don't get
             | things like platforms, APIs, or similar. It's nineties-
             | style closed thinking. It's a big part of why cell phones
             | are now eating their lunch. I used to be a pretty serious
             | photographer, and own probably $10,000 worth of camera
             | equipment.
             | 
             | I mostly shoot with my cell phone these days, not because I
             | mind spending money on cameras, but because it's a better
             | device for most photography. It integrates with the world.
             | Cameras integrate with their manufacturer's closed
             | ecosystems.
        
             | londons_explore wrote:
             | USB Video class allows the device to provide a list of
             | formats supported, and the host to choose one. That seems
             | suitable for the host to manage bandwidth across its USB
             | links, even if other devices are also using bandwidth.
        
         | morsch wrote:
         | My Sony a6300 is supported, but I can't get it to work. Doesn't
         | even show up on lsusb when I connect in PC remote mode, much
         | less in gphoto2 --auto-detect. I'm stumped. Too bad, that would
         | have been useful.
        
           | ceocoder wrote:
           | You should try another microUSB cable - my first microUSB
           | cable did not work because it was charging-only.
        
             | morsch wrote:
             | Thanks. I tried several, but I suppose they could all be
             | bad. Mass storage mode works, though.
        
           | enjoylife wrote:
           | The USB mode has to be changed. Set it to "PC Remote" mode. h
           | ttps://helpguide.sony.net/gbmig/44840601/v1/eng/contents/TP..
           | .
        
             | morsch wrote:
             | Thanks. That's what I did. When set to PC Remote mode, the
             | camera does not show up is lsusb or gphoto2. The other
             | modes work, but don't support capture.
        
         | christiangenco wrote:
         | Hah, I just followed your guide after stumbling on it on Google
         | yesterday to set up a Canon M50 on Linux Mint! It works
         | incredibly well--heads and shoulders above the video quality
         | from a webcam, and now that I'm piping video through ffmpeg
         | there's tons of potential to do some weird stuff with filters
         | and swapping to pre-recorded video.
        
           | ceocoder wrote:
           | I wish I can take credit for this, Ben Chapman did all the
           | work, I just happened to google it :)
           | 
           | And yeah, 100% agree on video quality, it is so much better
           | than what you get from that potato sensor on MBP
        
         | bronco21016 wrote:
         | Do you have any idea if this works with the older GoPro models?
         | 
         | Plan to give it a go later tonight but wondering if anyone has
         | any success stories.
        
           | ceocoder wrote:
           | This is what I found while I was trying to get GoPro to work
           | with gphoto2[0] - would love to know if you do get it to work
           | somehow.
           | 
           | [0]https://sourceforge.net/p/gphoto/mailman/message/36174298/
        
           | dmerrick wrote:
           | It does not look like it does:
           | http://www.gphoto.org/proj/libgphoto2/support.php
        
             | bronco21016 wrote:
             | That table is why I posted the question.
             | 
             | It's unclear if that's the list of supported cameras or if
             | it's a list of cameras and only those with entries in the
             | next two columns are supported.
             | 
             | Either way I can't wait to get home and mess with it.
        
         | ericol wrote:
         | Hey! I was trying to do this a while back, and couldn't make it
         | work.
         | 
         | I followed the instructions in your post, and (Although it
         | didn't work upfront) gave me the will to make it work ;)
         | 
         | Little advice: I fixed my set up by finding the correct v4l2
         | device, because video0 was already assigned. If you run:
         | 
         | v4l2-ctl --list-devices
         | 
         | it will tell you where v4l2 is plugged in your machine, in
         | order to enter the correct command (That was the only part
         | missing for my puzzle) as if you already have a webcam in your
         | computer it will already /dev/video0 assigned, and the gphoto |
         | ffmpeg piping gives too cryptic messages (It complains about
         | the formats not being correct, while it should complain about
         | it not being a v4l2 device)
        
         | AdamMeghji wrote:
         | Is this possible in MacOS at all? I have an RX100 V and an
         | Elgato Camlink HD, but would love to use that capture card w
         | another cam, and use the RX100 over USB simultaneously.
        
           | evan_ wrote:
           | Cascable Pro Webcam claims to support the RX100 V:
           | 
           | https://cascable.se/pro-webcam/
           | 
           | Compatibility table:
           | 
           | https://cascable.se/help/compatibility/
        
           | enjoylife wrote:
           | It works for Mac                 brew install gphoto2
           | brew install ffmpeg --with-ffplay       gphoto2 --abilities
           | # Abilities for camera             : Sony Alpha-A6300
           | (Control)       # ...       gphoto2 --stdout --capture-movie
           | | ffmpeg -i - -vcodec rawvideo -pix_fmt yuv420p -threads 0
           | -f matroska - | ffplay -
           | 
           | I'm piping it to ffplay, so tbd for compatibility into OBS or
           | another app, but this will at least let you test your camera.
           | Also, make sure your cameras usb mode is not set to "mass
           | storage" but to a "Remote Camera Control".
        
             | ceocoder wrote:
             | can you try piping that to gstreamer?
        
               | enjoylife wrote:
               | Sure, not sure what gstreamer plugin/sink would create a
               | loopback device, but this plays as well.
               | gphoto2 --stdout --capture-movie | ffmpeg -i - -vcodec
               | rawvideo -pix_fmt yuv420p -threads 0  -f matroska - |
               | gst-launch-1.0 fdsrc fd=0 ! decodebin !  videoconvert !
               | videoscale ! autovideosink
        
           | ceocoder wrote:
           | Looks like both gphoto2 and ffmepg are available on homebrew,
           | worth giving it a shot for sure. FWIW - I did end up building
           | my own ffmpeg because debian default didn't have NVIDIA
           | support. Want me to give it a try?
        
             | rayshan wrote:
             | Yes please! Would love to use my X-T30 as a webcam on my
             | mac.
        
             | dmerrick wrote:
             | I'd love it if you gave it a try! I've already spent enough
             | hours re-compiling ffmpeg to get nvenc support :)
        
               | ceocoder wrote:
               | Spoke too soon, v4l2loopback-utils is the missing piece
               | on mac. Found this with a basic search[0], if anyone
               | enterprising enough wants to take a crack at it
               | 
               | https://apple.stackexchange.com/questions/353168/how-can-
               | i-c...
        
         | webscalist wrote:
         | Where does audio come from? From DSLR? If you need a separate
         | mic, is there a/v sync issue?
        
         | aidenn0 wrote:
         | Yet another way that my Panasonic GX-1 can't capture video :(.
         | It has a mini HDMI port, so I thought I could do it there, but
         | it doesn't do live-view over HDMI, just playback.
        
         | ReverseCold wrote:
         | Oh no... I just got a capture card to use with my A7 III :(
         | 
         | Will give this a shot, luckily I'm still in the return window.
         | 
         | E: Works great! Make sure to enable "PC Control" in settings
         | for other Sony cameras. I had it set to USB Mass Storage (which
         | is maybe the default?)
        
           | dillonmckay wrote:
           | What card did you get?
        
             | ReverseCold wrote:
             | Razer Ripsaw HD - it's apparently equivalent to an Elgato
             | HD60S, but most importantly it's actually in stock :)
        
       | diroussel wrote:
       | This should work in Zoom, as in the latest release of Zoom 5 they
       | have re-enabled virtual webcam support.
        
         | tpetry wrote:
         | Why can zoom block a virtual camera? Couldn't the virtual
         | camera just pretend to be like any other real camera?
        
           | whywhywhywhy wrote:
           | It's seemingly a MacOS Code Signing limitation.
           | 
           | https://github.com/johnboiles/obs-mac-virtualcam/issues/4
        
             | jiveturkey wrote:
             | optional restriction, not limitation.
        
               | comex wrote:
               | The limitation is that CoreMediaIO plugins still run in-
               | process (and not just in some daemon but in arbitrary
               | application processes!), when Apple's direction for over
               | a decade has been to move all plugin mechanisms towards
               | an out-of-process model. There's nothing about video
               | plugins in particular that would prevent them from being
               | out-of-process; in fact, most of Apple's CoreMediaIO
               | plugins _already_ have the bulk of the logic in a
               | separate  "assistant" process, but the IPC layer is
               | reimplemented by each individual plugin rather than being
               | done generically by CoreMediaIO itself. It's clear what
               | has to happen, but Apple hasn't done it yet.
        
           | galad87 wrote:
           | Because an app can disable loading libraries/plugins signed
           | with a different developer id certificate, and it seems Core
           | Media IO wants to load the plugin in the actually app
           | process, and it doesn't use an helper process.
        
           | sschueller wrote:
           | This is the downside of a walled garden and locked down
           | devices. Of course many will say its for security and its
           | wonderful but how much freedom are you willing to give up for
           | security?
        
         | colecut wrote:
         | I'm unfortunately not seeing it in Zoom, even after
         | reinstalling zoom.
         | 
         | I see "OBS Virtual Camera" in the source list of Video Capture
         | Device, so I know it's running.
         | 
         | I do see Snap Cam (from SnapChat) listed in Zoom, so it doesn't
         | seem to be a global virtual webcam block.
        
         | johnboiles wrote:
         | The Zoom release notes are a bit misleading. They didn't enable
         | all virtual cameras, but instead a very specific list of
         | virtual cameras. Here's how you can see that list
         | 
         | strings /Applications/zoom.us.app/Contents/Frameworks/nydus.fra
         | mework/Versions/A/nydus | grep "Developer ID Application"
         | 
         | A number of folks have reached out to Zoom support to request
         | that my plugin be added. See the latest in
         | https://github.com/johnboiles/obs-mac-virtualcam/issues/4 for
         | details.
         | 
         | I wouldn't fault Zoom for being restrictive about what they
         | include in their allow list, since every addition adds risk,
         | but it looks like they've already included closed-source
         | applications from individuals as of 5.0.5. At least my code is
         | open source and auditable!
        
           | developer2 wrote:
           | Doing that grep interestingly includes "Developer ID
           | Application: NewTek, Inc. (W8U66ET244)", which may match the
           | other comment thread[1] talking about NewTek's NDI Virtual
           | Input (note: the top comment there mistyped "NewTek" as
           | "MediaTek"). So using the NDI solution may work with Zoom
           | without editing entitlements.
           | 
           | [1] https://news.ycombinator.com/item?id=23406438
        
       | wilsmex wrote:
       | Did @johnboiles get the 10k bounty that was put up (I think by
       | Shopify CEO) for this plugin?
        
         | johnboiles wrote:
         | No but iirc the terms from @tobi were that the feature needs to
         | be cross-platform and merged into the main OBS codebase. There
         | is work happening on both of these fronts, and absolutely my
         | goal is to get this plugin merged into OBS eventually. We'll
         | figure out some sort of splitting scheme when that time comes.
        
           | Vinnl wrote:
           | More info can be found in the recently merged RFC for those
           | interested: https://github.com/obsproject/rfcs/pull/15
        
       | supernintendo wrote:
       | For anyone looking to set up a virtual OBS webcam in Arch Linux,
       | here's how I did it:
       | 
       | 1. Install headers for your Linux kernel:                 - sudo
       | pacman -S linux56-headers
       | 
       | 2. Install v4l2loopback-dkms from AUR:                 - git
       | clone https://aur.archlinux.org/v4l2loopback-dkms.git
       | - cd v4l2loopback-dkms            - makepkg -scCi
       | 
       | 3. Create a virtual video capture device:                 - sudo
       | modprobe v4l2loopback devices=1 video_nr=10 card_label="OBS Cam"
       | exclusive_caps=1
       | 
       | 4. Set up a virtual audio device to avoid latency:
       | - sudo modprobe snd-aloop index=10 id="OBS Mic"            -
       | pacmd 'update-source-proplist alsa_input.platform-
       | snd_aloop.0.analog-stereo device.description="OBS Mic"'
       | 
       | 5. Run ffmpeg:                 ffmpeg -an -probesize 32
       | -analyzeduration 0 -listen 1 -i rtmp://127.0.0.1:1935/live/test
       | -f v4l2 -vcodec rawvideo /dev/video10
       | 
       | 6. Setup OBS to stream to ffmpeg:                 - File >
       | Settings > Stream, set Service to "Custom..." and "Server" to
       | `rtmp://127.0.0.1:1935/live/test`
       | 
       | 7. Setup low latency streaming:                 - File > Settings
       | > Output, set Buffer Size to 0, CPU Usage Preset to "ultrafast"
       | and Tune to "zerolatency".
       | 
       | 8. Start Streaming in OBS.
       | 
       | 9. Select your virtual camera and audio devices in Google Meet /
       | Zoom / etc.
       | 
       | I get virtually no latency with this setup but I'm running an AMD
       | Ryzen 7 2700X with 32GB of RAM. As always, YMMV.
        
       | wbobeirne wrote:
       | I recently tried to do some work on making a virtual camera, and
       | was shocked to see just how difficult it is, let alone making
       | something cross-platform. Anyone know of any projects that are
       | trying to make this easier to hack on?
        
         | johnboiles wrote:
         | Not sure about cross-platform, but for macOS I started this
         | plugin by creating a minimal virtual camera:
         | https://github.com/johnboiles/coremediaio-dal-minimal-exampl...
         | 
         | @seanchas116 made a Swift port of my minimal example
         | https://github.com/seanchas116/SimpleDALPlugin
         | 
         | Overall it _was_ very difficult! Apple's documentation and
         | sample code for CoreMediaIO DAL (virtual camera) plugins are
         | terrible. I just brute forced it for hours trying all sorts of
         | different combinations of things before I got something to
         | work.
        
           | andrekandre wrote:
           | this is fantastic, i wish i had your example when i worked on
           | mine (closed source)... it was the same for me, total brute
           | force
           | 
           | ... and apples examples are in c++ but i ended up doing it
           | using straight c out of frustration since thier (c++)
           | examples were so convoluted
        
         | farisjarrah wrote:
         | This project seems like its the farthest along in this endeavor
         | on linux:
         | 
         | https://github.com/umlaeute/v4l2loopback
        
       | alpb wrote:
       | I've been using this repo for a while now and it's a champ. It
       | has been making my webcam rock, as OBS does a great job chroma
       | key'ing green screen behind me. Plus I can add effects as I wish.
       | 
       | Thanks for reminding this and I'll make a donation to this
       | person. Hope this becomes the actual implementation and he gets
       | the $10k bounty by @tobi.
        
       | whywhywhywhy wrote:
       | Been hoping to use this but it just brings my MBP 2019 to it's
       | knees, like actually feels dangerously hot about 30 seconds after
       | activating it.
       | 
       | Windows version doing the same thing feels light as a feather
       | when running (3% CPU, <10% GPU usage)
        
         | aksss wrote:
         | May go without saying but disabling the video preview really
         | helps resource usage.
        
           | johnboiles wrote:
           | Whoa I didn't even know this was an OBS feature and
           | (obviously) I've spent a good bit of time with OBS :)
           | 
           | I'll definitely be using this!
        
         | johnboiles wrote:
         | FWIW there's definitely some performance optimization that
         | could be done in my plugin. Three things I know of:
         | 
         | 1) Potentially an entire framebuffer memory copy could be
         | avoided if we could get CMBlockBufferCreateWithMemoryBlock to
         | work. See the CMSampleBufferCreateFromDataNoCopy method
         | (currently unused -- linked below) in my code. It mostly worked
         | but the virtual camera video wouldn't show up at full
         | resolution in OBS, which is how I typically test while
         | developing. Not sure why it wasn't working; possible it's an
         | obscure OBS bug.
         | 
         | https://github.com/johnboiles/obs-mac-virtualcam/blob/master...
         | 
         | 2) It might also be possible to get the virtual camera to
         | advertise one of the pixel formats that OBS supports natively
         | which would avoid the pixel format conversion in the CPU. I
         | _bet_ this is where the majority of the performance hit from my
         | plugin happens. I'm not sure if this is possible, however.
         | Maybe OBS doesn't natively support any formats you can use for
         | virtual cameras.
         | 
         | https://github.com/johnboiles/obs-mac-virtualcam/issues/102
         | 
         | 3) If #2 isn't possible, maybe the pixel format transformation
         | could happen on the GPU? I don't know much about GPU
         | programming but maybe this would help.
        
         | buglite wrote:
         | Right now there is an open issue about a performance
         | degradation in the last versions of OBS for macOS.
         | 
         | https://github.com/obsproject/obs-studio/issues/2841
         | 
         | I don't know if it is correlated to your problem though.
        
         | trillic wrote:
         | 13" or 15"? Dedicated GPU? Looking for some more info before I
         | attempt to use it on my machine.
        
           | whywhywhywhy wrote:
           | 13" no GPU.
        
         | codazoda wrote:
         | Make sure the power adapter is connected at the right (not
         | left) side of the MBP.
        
           | whywhywhywhy wrote:
           | Don't have a choice, my MBP only has two ports on the left
           | side.
        
           | woodrowbarlow wrote:
           | i'm marveling at how well this comment exemplifies everything
           | that's wrong with USB-C.
        
             | Dunedan wrote:
             | That's not related to problems with USB-C, but to Apple
             | messing up their hardware design. This was discussed
             | recently here:
             | https://news.ycombinator.com/item?id=22957573
        
         | groobongithub wrote:
         | My experience has been that my MBP gets hot if I try to share a
         | specific window. Switching from a window as a source, to a full
         | screen source has improved OBS performance quite a bit.
         | 
         | And I do use this plugin.
        
           | wastedhours wrote:
           | Tangentially related, I've seen that behaviour with Google
           | Meet as well. Sharing a specific tab takes a much bigger
           | performance hit than sharing the whole screen.
        
             | londons_explore wrote:
             | Tab sharing has code _deep_ into the Blink rendering
             | engine... To the extent that it 's actually possible to
             | share a specific <div> or other HTML element, even if it
             | isn't visible! (Not sure if you can do that from
             | javascript, but you can totally do it from C++)
             | 
             | The side effects seems to be that a bunch of the code that
             | prevents the same thing being re-rendered with every frame
             | if it hasn't changed gets bypassed, and I'd bet that kills
             | performance.
        
         | tmpz22 wrote:
         | What surface were you using your laptop on? IMO Apple made the
         | design choice to be hot as hell on some surfaces as a trade off
         | for other advantages, so maybe some of the fault is not on this
         | software.
        
           | whywhywhywhy wrote:
           | Wooden table.
        
       | oger wrote:
       | Finally. I've been waiting / looking for a decent solution for
       | quite a while now...
        
         | wegs wrote:
         | What was wrong with CamTwist? I've been using OBS+CamTwist to
         | do this for years now. I mean, this will save a couple minutes
         | setup time, but it's not like that wasn't decent.
        
           | BrandonSmith wrote:
           | CamTwist requires disabling macOS SIP. For many this is too
           | high bar.
        
       | rcarmo wrote:
       | You can also use MediaTek's NDI Virtual Input with some desktop
       | apps (like Skype), but I personally use this with OBS to do two
       | things:
       | 
       | - Send out a composite overlay (screen capture + webcam + lower
       | thirds) on Teams/Skype/etc.
       | 
       | - Send out screen capture from another machine (usually OBS to
       | OBS via NDI and then out via this plugin)
       | 
       | OBS is a lot of fun, but, alas, extremely demanding on system
       | resources in some configurations, enough that I've started
       | considering getting a new machine solely for video conferencing.
        
         | aksss wrote:
         | Ha, OBS was the straw that broke the camels back on my work
         | laptop, performance-wise. Built an AMD desktop system and it's
         | been glorious - forgot what I was missing. Now the laptop
         | mostly sits in a bag.
        
         | jcrawfordor wrote:
         | This works well, when it works, but it seemed like at least
         | with my setup it seriously exacerbated performance problems.
         | Using the older OBS -> Zoom Windows solution of swapping out a
         | video api DLL ("virtual camera") never caused performance
         | problems but stopped working when Zoom started integrity
         | checking/whitelisting all libraries[1]. I switched to the NDI
         | solution which seems to be more "official" but gave up on using
         | it as it would consistently work fine for a while, and then
         | framerate would drop to <2 per second. This was on a reasonably
         | new/high end machine (X1 Carbon 6th gen) with hardware video
         | encoding in OBS so it almost seems less like an absolute
         | performance problem and more like some kind of lock
         | competition, but I didn't really dig into it very deep at all -
         | it's possible that the NDI stack was doing some software
         | encoding I wasn't aware of and that was just too much.
         | 
         | [1] this happened in the middle of all the zoom bombing and
         | I've seen an allegation that Zoom did this to intentionally
         | nerf that OBS -> Zoom pathway as it was found to have been used
         | by many zoom bombers, but I have no idea if this is true so
         | don't get out pitchforks about it.
        
         | mistersquid wrote:
         | Searching for "MediaTek NDI Virtual Input" does not turn up
         | results with "MediaTek" for me. Did you mean "NewTek" or
         | another NDI tool?
         | 
         | I couldn't find an NDI product for macOS from NewTek.
        
           | kfriede wrote:
           | Yes, it's NewTek. Specifically you're looking for this page:
           | https://ndi.tv/tools/#download-tools
        
           | EricE wrote:
           | https://ndi.tv/tools/
           | 
           | He's talking about the poorly named NDI Scan Converter
        
             | m0shen wrote:
             | Pretty sure he's talking about the NDI Virtual Input (which
             | acts as a virtual camera on Windows)
        
           | fsflyer wrote:
           | NewTek does NDI for Mac. The tools and SDK are available for
           | Mac.
           | 
           | https://ndi.tv/tools/
           | 
           | The OBS NDI plugin is not part of OBS proper, but available
           | separately:
           | 
           | https://github.com/Palakis/obs-ndi/releases
        
       | an_opabinia wrote:
       | Use Wirecast instead. It works better.
       | 
       | OBS just isn't for macOS users. If you record video with it it'll
       | be corrupted. The performance is bad. It's for people who stream
       | to Twitch on a Windows computer.
       | 
       | The real problem is that the macOS security model broke virtual
       | cameras in the latest version of Zoom.
        
         | zapzupnz wrote:
         | Can you substantiate any of your claims? I've used OBS on macOS
         | for a long time and your experience doesn't correspond to mine.
         | 
         | It's true that there are some performance concerns and hardware
         | encoding isn't available for streaming purposes on macOS due
         | Apple's Video Toolbox API not exposing the appropriate encoder
         | options.
         | 
         | However, I doubt that OBS would be responsible for corrupted
         | video. It uses the industry-standard x264 encoder -- if there's
         | a problem with the video, it derives from (A) your settings,
         | and (B) x264. I'm more inclined to believe A than B.
         | 
         | I'm more than happy to use Wirecast if you'll pay for a
         | licence. I and most other people, mostly amateurs, don't have a
         | spare US$599 lying around.
        
       | weakwire wrote:
       | Finally!
        
       | skrowl wrote:
       | DroidCam (works on iOS too despite the name)
       | https://www.dev47apps.com/ works great on Windows if you're
       | looking for an alternative on a business / gaming OS and you have
       | a smartphone (or tablet).
       | 
       | I've used it with Zoom / Google Meet / Discord and it's never
       | failed me.
        
       | dfabulich wrote:
       | I don't understand what problem OBS solves. It records video, but
       | Windows and macOS already come with video recorders built in.
       | 
       | So OBS is better somehow. How? Why is OBS better than built-in OS
       | recorders?
        
         | dbbk wrote:
         | It does more than record video. The use case I have for it is
         | applying green screen to a camera feed, and then being able to
         | pipe that video into an app that doesn't natively support green
         | screens (ie Google Meet)
        
           | aloer wrote:
           | Is the project linked here what you use to add OBS output to
           | a video call or is there another way?
           | 
           | What would I do if I want the enhanced stream to be piped to
           | screen share instead of webcam? Most video chat solutions
           | will show webcam and shared screen differently
        
             | rzzzt wrote:
             | VirtualCam was already a thing, but only for Windows (not
             | sure what is the backstory behind the more recent version
             | being maintained by someone else; I think I'm using
             | catxfish's version):
             | https://obsproject.com/forum/resources/obs-virtualcam.539/
             | 
             | OBS has full desktop as well as window capturing
             | capabilities, so if you only want to show the contents of a
             | single window, you would add a "window capture" item to
             | your scene: https://github.com/obsproject/obs-
             | studio/wiki/Sources-Guide#...
             | 
             | ...then select "VirtualCam" from the Tools menu, and click
             | "Start" to start sending images to the selected virtual
             | camera. These virtual devices appear in eg. Zoom, so if you
             | select it and enable video within the app, others will see
             | 5 faces and Visual Studio Code having a conversation.
             | 
             | (Of course you can add more sources to the scene, aligning
             | them appropriately, so you can have your face in the corner
             | alongside the captured window.)
        
         | mdszy wrote:
         | OBS is primarily for _streaming_.
         | 
         | It also has a lot of advanced features beyond simple recording
         | of a video source or your screen.
         | 
         | ALSO the name is literally "open broadcaster studio"
         | 
         | Maybe take two seconds to investigate what you're talking about
         | before making comments like this. Sheesh.
        
         | marcinzm wrote:
         | OBS let's you edit video on the fly and the pipe the output
         | somewhere else. For example, you can take the video of you
         | playing a game, add a video of your face from your webcam to
         | the corner, add text overlays of your channel name and then
         | send the result to twitch.
        
         | wilsjacob wrote:
         | OBS and SLOBS are internal capture++. They allow for more
         | complex multi-scene/input (mic and video) setups and allow you
         | to setup configured "scenes" that are comprised of multiple
         | things. Think of them as the difference between either having a
         | stream or a recording that is just you or your screen versus
         | having a professional style multi-input shoot like a news
         | channel with tickers and graphics included.
        
         | sosborn wrote:
         | OBS is essentially a live video production studio. Multiple
         | scenes, multiple sources, title cards, etc. can all be
         | controlled with OBS on the fly as you stream.
        
           | EricE wrote:
           | "OBS is essentially a live video production studio. Multiple
           | scenes, multiple sources, title cards, etc. can all be
           | controlled with OBS on the fly as you stream."
           | 
           | This. And you can have multiple layouts (scenes) and quickly
           | switch between them. It's a video switcher on steroids.
        
         | greggyb wrote:
         | It's not about recording so much as managing a broadcast. You
         | can configure many inputs which include external video (e.g. a
         | webcam), media on the machine (recorded video or images), and
         | screens on the device, and outputting this as a unified stream.
         | This stream may be passed on as a virtual video device, which
         | other programs can use, or to a stream host (e.g. Twitch), or
         | be recorded.
         | 
         | These various inputs can be arranged into "scenes" for easy
         | management and switching among them.
         | 
         | If all you need to do is record the raw video from a video
         | device, you don't need OBS.
        
           | duskwuff wrote:
           | Game streaming (like Twitch) is an extremely common use case
           | for OBS, and it's a great demonstration of what's possible. A
           | lot of streamers will broadcast a composite of their screen,
           | their webcam (often with green-screen masking), a feed of
           | their chat, and various other graphics. All of this is pretty
           | straightforward to do with OBS, and would be a significant
           | effort to build otherwise.
        
         | colecut wrote:
         | OBS does much more than let you record with your webcam.. You
         | can import a Window capture device, or a Display capture
         | device, or set up a combination of different windows (Display
         | capture with Webcam capture overlaid in the corner for example,
         | like most modern tutorials)
         | 
         | OBS is feature rich, the native video recorder is no
         | comparison.
        
       | some-guy wrote:
       | Slight tangent, does anyone know of any virtual "audio" device
       | (in Mac OS or Windows) that you can attach VSTs / AUs to? I know
       | that technically Zoom allows you to share computer audio but a
       | controlled audio device would allow more granular control of the
       | input.
        
         | philsnow wrote:
         | One of these (probably Loopback?) should work
         | https://rogueamoeba.com/
         | 
         | I don't know of free, good alternatives.
        
         | zapzupnz wrote:
         | Free: iShowU Audio, Soundflower
         | 
         | Paid: Loopback, Audio Hijack, Sound Siphon
        
         | savoyard wrote:
         | BlackHole [1] is a modern alternative to Soundflower.
         | 
         | [1] https://github.com/ExistentialAudio/BlackHole
        
           | jack_maris wrote:
           | Seconding blackhole, in my experience it works as well as
           | Soundflower worked 5 years ago
        
         | omnimus wrote:
         | Unfortuntely i think you need to use both Audio Hijack and
         | Loopback together. It's a combo from same developer.
         | 
         | It's quality software but a bit unintuitive how to set this up.
         | First you create virtual audio source in loopback then with
         | audio hijack you can route adjusted audio to this source you
         | can't route to normal outputs. Also you need to have hijack
         | turned on "record" for the effects to work.
         | 
         | But after that it works pretty well and you can add pretty cool
         | things like... you can record both raw input and procesed input
         | and route to your destination at the same time. Or you can mix
         | in other apps like music into recording/routing.
         | 
         | Sidenote I've also tried BlackHole and unfortunately didn't
         | have too much luck with it. It somehow worked as Loopback
         | alternative but i think Loopback / Hijack share same audio
         | drivers/code so integration seems smoother.
        
         | adamzegelin wrote:
         | Soundflower + AULab (download from
         | https://developer.apple.com/download/more/), both free.
         | 
         | Alt AULab link, without the requirement of an Apple ID to
         | download: https://www.apple.com/ca/itunes/mastered-for-itunes/
        
         | stevenpetryk wrote:
         | Maybe Soundflower?
         | https://rogueamoeba.com/freebies/soundflower/
        
       ___________________________________________________________________
       (page generated 2020-06-03 23:00 UTC)