# Table of Contents - [What is VDO.Ninja? | Ninja Docs](#what-is-vdo-ninja-ninja-docs) - [Why use VDO.Ninja over other solutions? | Ninja Docs](#why-use-vdo-ninja-over-other-solutions-ninja-docs) - [Even higher quality video | Ninja Docs](#even-higher-quality-video-ninja-docs) - [VDO.Ninja basics | Ninja Docs](#vdo-ninja-basics-ninja-docs) - [The power of the URL parameter | Ninja Docs](#the-power-of-the-url-parameter-ninja-docs) - [Getting started | Ninja Docs](#getting-started-ninja-docs) - [Meshcast.io | Ninja Docs](#meshcast-io-ninja-docs) - [Documentation | Ninja Docs](#documentation-ninja-docs) --- # What is VDO.Ninja? | Ninja Docs [](#what-is-vdo.ninja) What is VDO.Ninja? ---------------------------------------------- In its simplest form, [VDO.Ninja](https://vdo.ninja) brings live video from a smartphone, tablet, or remote computer, directly into OBS Studio or other browser-enabled software. VDO.Ninja is offered as a free web service, but it's also available as customizable and deployable code. Some have called it the modern Swiss Army knife of audio and video transmission. 🛠 Video intro to VDO.Ninja and getting-started playlist For those looking for an AI-generated audio-explanation of what VDO.Ninja is, see: [](#getting-started) Getting Started ----------------------------------------- There is a playlist of videos above that will demonstrate some of the basics. YouTube actually has MANY community-created guides, in various languages, that you can check out also. The documentation that you are reading here contains details of advanced settings (URL parameters), support information, starting guides, and more. Using the search-box is a great way to navigate it for specific topics. A written guide to getting started is linked below: [Getting started](/getting-started) [](#need-help-or-support) Need help or support? ---------------------------------------------------- The preferred support mechanism is via [Reddit](https://www.reddit.com/r/vdoninja) or [Discord](https://discord.gg/feenJm8HTa) , which offer community-assisted support. Discord is very active, so check it out. As well, development issues, feature requests, and bugs are tracked on [GitHub](https://github.com/steveseguin/obsninja) . For mission critical support issues, or business-related inquiries, you can contact Steve directly. Please don't make it a habit. [](#bug-reports) Bug reports --------------------------------- It is most helpful to report bugs via the official [GitHub](https://github.com/steveseguin/obsninja) . While we monitor the [Reddit](https://www.reddit.com/r/vdoninja) and [Discord](https://discord.gg/qWDshMsTar) channels, it is easy to miss issues/details that occur in comments and older threads. [NextHow does it work](/master/how-does-it-work) Last updated 6 months ago Was this helpful? [4MB\ \ vdo\_ai\_podcast.mp3](https://2943598173-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MZHXv1G8N0MDxwotaT9%2Fuploads%2FLelR2888GrB4etj4f7qu%2Fvdo_ai_podcast.mp3?alt=media&token=468f166b-3b4b-4aed-91fa-6495500d5ed2) Check out this AI-generated audio generated intro to what VDO.Ninja is --- # Why use VDO.Ninja over other solutions? | Ninja Docs In some cases, the functionality of [VDO.Ninja](https://vdo.ninja) may overlap with existing solutions. However, in its primary function as an ultra-low latency peer-to-peer video bridge to OBS, it has many benefits and advantages over other methods: * **100% free.** There's **no downloads** required, **no personal data collected**, and **no sign-in** needed. * Compatible with most modern browsers and mobile devices. * **Free support** offered via email, Discord, Reddit and numerous written guides. * **Video data is peer-to-peer**, so unlike Skype, your video data does not go thru the NSA's spying servers. * **Video can be transferred over a LAN directly**, so if using your phone as a webcam, you can crank the bitrates up to 40-mbps if you want, and your bandwidth won't be affected. * **Low latency**. I'm talking as low as 30-ms, and normally it never goes higher than 200-ms. * **Adjustable resolutions and video bitrates** (1920x1080p60 @ 30-mbps -- or even custom resolutions). 4K @ 30fps is possible, but CPU intensive. * **Control over audio denoise**, **echo-cancellation**, and **auto-gain** is available, along with custom audio bitrates, and **stereo-sound**. It is an exceptional tool for podcasters and live streaming DJs. * You can **parameterize many aspects of VDO.Ninja** such as total bitrate usage, bitrate per viewer usage, auto-select a device, autostart a session, removing the preview window. * The interface is **open-source**, so you can white-label, stylize, tweak, and deploy the website code however you want. * **Reusable invite links**, meaning OBS Browser Sources don't need to be recreated or changed once created and shared. * Playback of video has been tested to work on using Amazon's Firestick's with Silk browser, along with a Tesla's Model 3's infotainment display. * **No plugins needed for OBS** \-- just drag the selected link into OBS (v25 or newer on PC\*) and it auto generates the OBS Browser source with the correct resolution. (\*[macOS](https://github.com/steveseguin/obsninja/wiki/FAQ#MacOS) users need to update to OBS v26.1.2 to access support for VDO.Ninja natively.) * **QR Code support for invite links**, which allows for easy ingestion of mobile devices without needing to use the keyboard. * **Browser-based control of OBS scenes**. * **No overlays or windows to crop** \-- VDO.Ninja auto-fills the window and if there is a black border, it becomes a transparent layer. * **Group rooms available** with a Director able to control participants, the options presented to them, and even an autojoin experience. * **Group chat rooms** have an "auto-mix" mode, making for easy management of dynamic group chat sessions. * Those in a **group-chat can also be split up into individual streams**, so the Director has control to treat them like different sources in OBS, switching and mixing as they want. * **Free TURN servers** are hosted for VDO.Ninja users, which normally are quite costly, but are kindly subsidized by community sponsors and by Steve, the developer of the application. [Sponsor ❤](/sponsor) * **Tally-light** support is offered when VDO.Ninja is used in conjunction with OBS. * Group rooms and streams can be **password protected** and given extra security. * The group-room director has a **"push to talk"** capability, along with text-chat being available. * Support for **ISO feed recording** via the Director's Control Room. * With little dependence on video servers, at peak usage hours video quality does not suffer. * VDO.Ninja is a **project of passion**, **built by creators for creators**, and we like to think it shows. [PreviousUse cases](/master/use-cases) [NextGetting started](/getting-started) Last updated 1 month ago Was this helpful? --- # Even higher quality video | Ninja Docs [PreviousRooms](/getting-started/rooms) [NextMobile phone camera into webcam](/getting-started/mobile-phone-camera-into-webcam) Last updated 1 month ago Was this helpful? You can customize the capture resolution and playback quality of videos by adding parameters to the VDO.Ninja URL. ### [](#viewer-side-options) Viewer side options The default video bitrate of most modern browsers is around 2500-kbps, which is okay, but we can achieve higher video quality if we manually set this to something even higher. [`https://vdo.ninja/?view=streamid&videobitrate=6000`](https://vdo.ninja/?view=streamid&videobitrate=6000) You’ll notice that we added [`&videobitrate=6000`](/advanced-settings/video-bitrate-parameters/bitrate) to the viewer’s side and not the publishing side. The viewer gets to control the bitrate; every viewer can set their own custom video bitrate in fact. (For some games, a bitrate of 20000-kbps may be needed, but normally that's overkill though, and can actually increase frame loss if it is higher than your connection can handle.) You can also play with different video codecs; [`&codec=av1`](/advanced-settings/video-parameters/codec#av1) is a viewer side option and tends to offer better colors and quality than the default vp8 or h264 codecs, but av1 will use a up a lot more CPU. Another viewer side option is [`&scale=100`](/advanced-settings/video-parameters/scale) , which will disable dynamic fit-to-window scaling optimizations. This is especially valuable if wanting to downscale 4K to 1080p video, as otherwise VDO.Ninja would limit the resolution to the size of the OBS Browser source window. It can also help when there is more than one video on screen, but do note that disabling the auto-scale optimizations to achieve better quality will increase the CPU and network load for all parties. Sometimes adding some sharpness to the video as a digital video effect in OBS can help improve video quality, especially for video containing fine-text, like a screen share or video overlay. By default text might look a bit soft with VDO.Ninja, and sharpening can resolve it. ### [](#sender-side-options) Sender side options On the publishing side, the _default_ target resolution is already 1280x720 @ 60-fps, but we can set this higher by adding [`&quality=0`](/advanced-settings/video-parameters/and-quality) to the push link. This will have the publisher’s side try to make available a 1920x1080 video stream, if their camera or video device supports it. If not, it will fall back to 1280x720p. [`https://vdo.ninja/?push=streamid&quality=0`](https://vdo.ninja/?push=streamid&quality=0) For 1080p60 gaming, you’ll want to set the video bitrate to 12000-kbps or higher, as lower bitrates might cause the frame rate to be quite low otherwise. Otherwise, for talking head-type videos, the default video bitrate is often going to be adequate. Higher resolution streams, especially 1080p60, requires a LOT of CPU power. Having 4-CPU cores is generally recommend for 1080p60 video streams, and 6 to 8 cores are recommended if you are intending to game at the same time. Up to 4K or beyond is possible as well, but you'll need to manually specify the capture resolution with [`&width`](/advanced-settings/video-parameters/and-width) and [`&height`](/advanced-settings/video-parameters/and-height) instead, and it will require significantly more CPU and network bandwidth than even 1080p. You can also gently ask for a specific frame rate with [`&maxframerate=60`](/advanced-settings/video-parameters/and-maxframerate) , which is sometimes needed with certain iPhones to force 60-fps at 1080p. ### [](#connection-quality) Connection Quality As VDO.Ninja dynamically also adjusts video resolution and bitrate to match the available Internet connection bandwidth availability, sometimes 1280x720 video resolutions won’t be maintainable. You can run the [https://vdo.ninja/speedtest](https://VDO.Ninja/speedtest) to see if you are able to hit at least 2000-kbps, which is about what is needed for smooth 720p video. Using Ethernet instead of Wi-Fi will also help to ensure the quality and frame loss at these higher resolutions is obtainable. At higher resolutions, frame rates are more likely to be unstable and the resolution might be throttled to something lower. Packet loss will impact the quality of a video stream quite a bit, and in rare cases, you may need to use [`&relay`](/advanced-settings/turn-and-stun-parameters/and-relay) or [`&meshcast`](/advanced-settings/meshcast-parameters/and-meshcast) mode to assist in overcoming network throttling or routing issues. ### [](#group-room-settings) Group Room Settings When in a group room, specifically as a guest or director sharing video with another guest, the video will be limited to 500-kbps by default. The director can increase the total room bitrate using a slider under the room settings menu; the button for is found in the director's lower menu bar. You can also use [`&totalroombitrate=4000`](/advanced-settings/video-bitrate-parameters/totalroombitrate) to set a higher room bitrate via the URL, as well as experiment with other bitrate options or trying out [`&meshcast`](/advanced-settings/meshcast-parameters/and-meshcast) . Setting the room bitrate too high though can cause everyone in the room to have problems, specifically with overloaded CPUs or network bandwidth saturation. 500-kbps is the default for a reason. ![](https://docs.vdo.ninja/~gitbook/image?url=https%3A%2F%2F2943598173-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F-MZHXv1G8N0MDxwotaT9%252Fuploads%252FTjwNARgMhlalyHl3DnRl%252Fimage.png%3Falt%3Dmedia%26token%3D8693824f-f8b9-4590-a9e7-ab4c7b41623a&width=300&dpr=4&quality=100&sign=362b630a&sv=2) ![](https://docs.vdo.ninja/~gitbook/image?url=https%3A%2F%2F2943598173-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F-MZHXv1G8N0MDxwotaT9%252Fuploads%252FIjtLdW2ijoyIfi7Yyzr2%252Fimage.png%3Falt%3Dmedia%26token%3D526566d1-af9b-4f68-89d6-67a8da97a075&width=300&dpr=4&quality=100&sign=35c7f54&sv=2) --- # VDO.Ninja basics | Ninja Docs [PreviousGetting started](/getting-started) [NextWhat are stream IDs?](/getting-started/stream-ids) Last updated 6 months ago Was this helpful? VDO.Ninja needs two things to work: * Someone pushing a video feed out from their device * Someone viewing that video feed 1. Visit [https://vdo.ninja/](https://vdo.ninja/) with your web browser (Chrome, Edge, Safari). 2. Select `Add your camera to OBS`. 3. Select your camera and audio device from the list of devices. You will see the video feed of the device on screen. 4. Select `Start` and at the top of the screen a ‘view’ link will appear. 5. Copy this view link and send it to someone you want to have access to this feed, or place it inside an OBS browser source. ### [](#powered-by-webrtc) Powered by WebRTC [WebRTC](https://webrtc.org/) is the magic behind VDO.Ninja. While the magic sauce is so much more than that, WebRTC powers the engine. This way VDO.Ninja works everywhere there is a modern browser. MS Edge, Google Chrome, Mozilla Firefox, Safari, Opera, Vivaldi, Brave. You name it. VDO.Ninja is a peer-to-peer system. This means for each new person viewing your feed, a new encode is processed. It also is CPU bound since encoding usually takes place on the CPU. Take care not to overload your system. Keep an eye on your CPU usage. ![](https://docs.vdo.ninja/~gitbook/image?url=https%3A%2F%2F2943598173-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F-MZHXv1G8N0MDxwotaT9%252Fuploads%252FhpeTXMpjOKufVM4HM7Xp%252Fcamera%2520picker%3Falt%3Dmedia&width=300&dpr=4&quality=100&sign=c7347086&sv=2) ![](https://docs.vdo.ninja/~gitbook/image?url=https%3A%2F%2F2943598173-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F-MZHXv1G8N0MDxwotaT9%252Fuploads%252FxZVdvlgvHg4jhxOymLRi%252Fimage.png%3Falt%3Dmedia%26token%3D875637e7-6fbe-4194-827d-ea66646ccd78&width=768&dpr=4&quality=100&sign=bd745a4f&sv=2) ![](https://docs.vdo.ninja/~gitbook/image?url=https%3A%2F%2F2943598173-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F-MZHXv1G8N0MDxwotaT9%252Fuploads%252FrYUrOR7EOBf1H01qRrrW%252Fobs%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=4941cbdc&sv=2) --- # The power of the URL parameter | Ninja Docs [PreviousWhat are stream IDs?](/getting-started/stream-ids) [NextMulti-Person Chat](/getting-started/multi-person-chat) Last updated 1 year ago Was this helpful? You can customize the playback of videos by adding query string parameters to the [VDO.Ninja](https://vdo.ninja/) URL links, along with many other aspects. VDO.Ninja is highly flexible in this regard, letting you achieve your desired outcome without needing to code and without additional software. For example, a simple viewer URL link such as Copy https://vdo.ninja/?view=streamid could be amended to Copy https://vdo.ninja/?view=streamid&videobitrate=500 which will cause the viewer to receive the publisher's video stream at a video bitrate of 500-kbps. Multiple parameters can be appended together by using the ampersand (`&`) as a separating character. For example, to view the video stream published at stream ID `streamid` at a video bitrate of 500-kbps and set the [`&proaudio`](/advanced-settings/audio-parameters/and-proaudio) parameter to `1`: Copy http://vdo.ninja/?view=streamid&videobitrate=500&proaudio=1 Some parameters, like [`&view`](/advanced-settings/mixer-scene-parameters/view) will accept a comma-separated list of valid values, so you can do some rather powerful combos, such as publishing your own video (using [`&push`](/advanced-settings/setup-parameters/push) ) while also viewing multiple others videos. VDO.Ninja will auto-mix the videos together into a single layout for you: Copy http://vdo.ninja/?push=aaa&view=bbb,ccc,ddd [Advanced Options (URL Parameters)](/advanced-settings) [Most common Parameters](/advanced-settings/cheat-sheet-of-basic-parameters) --- # Getting started | Ninja Docs ### [](#vdo.ninja-your-gateway-to-effortless-live-video) **VDO.Ninja: Your Gateway to Effortless Live Video** VDO.Ninja is a versatile tool that empowers you to bring remote video and audio directly into your favorite applications, whether it's for professional broadcasts, casual chats, or creative projects. Let's explore how to get started with VDO.Ninja and unlock its potential for different scenarios. #### [](#core-concepts) **Core Concepts** * **WebRTC Magic:** VDO.Ninja leverages WebRTC, a technology that allows browsers to communicate directly, ensuring low-latency, high-quality video transmission. * **Peer-to-Peer Power:** Most of the heavy lifting happens within your browser, minimizing server reliance and maximizing performance. * **Two URL Types:** * **PUSH URL:** Used on the sending device (smartphone, webcam) to capture and send the stream. * **VIEW URL:** Opened on any device to watch the live stream. ### [](#resources-for-beginners) Resources for beginners * [VDO.Ninja basics](/getting-started/vdo.ninja-basics) (with screenshots) * [What are stream IDs?](/getting-started/stream-ids) * [The power of the URL parameter](/getting-started/the-power-of-the-url-parameter) * [Multi-Person Chat](/getting-started/multi-person-chat) * [Rooms](/getting-started/rooms) * [Even higher quality video](/getting-started/even-higher-quality-video) * [Mobile phone camera into webcam](/getting-started/mobile-phone-camera-into-webcam) * [Most common Parameters](/advanced-settings/cheat-sheet-of-basic-parameters) #### [](#quick-start) **Quick Start:** 1. **Open VDO.Ninja:** Visit [https://vdo.ninja/](https://vdo.ninja/) in your web browser (Chrome, Edge, Firefox, Safari). 2. **Choose Your Source:** Select "Add your Camera to OBS" to use your webcam or "Share your Screen" to stream your desktop or an application window. 3. **Grant Permissions:** Allow VDO.Ninja to access your camera and microphone when prompted. 4. **Start Streaming:** Click "Start" and copy the provided VIEW link. 5. **Share or Capture:** * **Direct Sharing:** Send the VIEW link to anyone you want to watch your stream. * **OBS Integration:** Add the VIEW link as a Browser Source in OBS to capture the stream for your broadcast. #### [](#use-case-spotlight) **Use Case Spotlight** * **Smartphone as Webcam:** Turn your phone into a high-quality wireless webcam for video calls or live streams. * **Remote Guests:** Easily bring in remote participants for podcasts, interviews, or collaborative broadcasts. * **Gaming Together:** Share your gameplay with friends or co-streamers for a side-by-side experience. * **High-Quality Audio:** Stream music, podcasts, or DJ sets with crystal-clear audio and minimal delay. * **Professional Video Capture:** Capture remote video feeds directly into your production software for seamless integration. * **And More!** VDO.Ninja's flexibility opens doors to countless creative applications. #### [](#tips-for-success) **Tips for Success** * **Stable Internet:** A reliable internet connection is crucial for smooth streaming. Ethernet is preferred over Wi-Fi. * **Hardware Acceleration:** Enable hardware acceleration in your browser and OBS for optimal performance. * **Experiment with Settings:** Explore VDO.Ninja's URL parameters to fine-tune video quality, audio settings, and more. * **Community Support:** Join the VDO.Ninja Discord or Reddit community for help and inspiration. #### [](#native-mobile-apps) **Native Mobile Apps** VDO.Ninja also offers [native mobile apps for iOS and Android](/getting-started#native-mobile-apps) , providing a streamlined experience for mobile users. These apps are particularly useful for: * **Screen Sharing on Android:** The Android app allows you to share your phone's screen, a feature not available in the browser version. * **Simplified Setup:** The apps offer a user-friendly interface for quick and easy streaming. **Remember:** VDO.Ninja is constantly evolving, so keep an eye out for new features and updates. Don't hesitate to explore the documentation and experiment to discover all the amazing things you can achieve with this powerful tool! **Happy Streaming!** [PreviousWhy use VDO.Ninja over other solutions?](/master/why-use-obs.ninja-over-other-solutions) [NextVDO.Ninja basics](/getting-started/vdo.ninja-basics) Last updated 6 months ago Was this helpful? --- # Meshcast.io | Ninja Docs [![Logo](https://meshcast.io/favicon.ico)Meshcast.io](https://meshcast.io) [https://meshcast.io/](https://meshcast.io/) This is a free to use service that can work in conjunction with VDO.Ninja. It's a low latency video CDN (content delivery network), which can be used to host larger group rooms in VDO.Ninja. It's not designed for mass broadcast, not at present anyways, but it can handle upwards of 100-viewers without taxing your CPU or network. [https://youtu.be/-7QsLChfdsE](https://youtu.be/-7QsLChfdsE) [&meshcast](/advanced-settings/meshcast-parameters/and-meshcast) [Meshcast Parameters](/advanced-settings/meshcast-parameters) [](#updates) Updates ------------------------- [Updates - Meshcast.io](/updates/updates-meshcast.io) [PreviousDocumentation reference](/steves-helper-apps/social-stream-ninja/documentation-reference) [NextCaption.Ninja](/steves-helper-apps/caption.ninja) Last updated 1 month ago Was this helpful? --- # Documentation | Ninja Docs [PreviousElectron Capture](/steves-helper-apps/electron-capture) [NextSocial Stream Ninja](/steves-helper-apps/social-stream-ninja) Last updated 1 month ago Was this helpful? **PLEASE NOTE:** This copy of documentation for the Electron Capture app is not kept up to date. For the most recent version of Electron Capture documentation, please visit: [https://github.com/steveseguin/electroncapture](https://github.com/steveseguin/electroncapture) . This copy of the documentation is provided here simply as a consolidated resource for our LMM AI support bot to learn from. It will be updated only occasionally, as needed. Chronologically updates are here: ### [](#this-is-the-electron-capture-app) This is the **Electron Capture app**, Created originally for [VDO.Ninja](https://vdo.ninja) users, it can provide users a clean way of window capturing websites or as a production-oriented Chrome-alternative with numerous performance tweaks. It can also be used to pin [live chat overlays](https://socialstream.ninja) on screen, screen share without user interaction, increase the resolution of Zoom streams, and much much more. [**Jump to Downloads Section**](https://github.com/steveseguin/electroncapture#links-to-downloads-below) ### [](#why-was-this-made) Why was this made ? On some systems the OBS Browser Source plugin isn't available or doesn't work all that well, so this tool was made as a viable agnostic alternative. It was originally built to let you cleanly screen-grab just a video stream without the need of the OBS Browser Source plugin. The app was also made to make selecting the output audio playback device easy, outputting audio to something such as a Virtual Audio device: i.e.) https://vb-audio.com/Cable/ (Windows & macOS; donationware) or VAC (Windows @ https://vac.muzychenko.net/), or Loopback (macOS). While the OBS Browser source is ever maturing, and issues with video smearing, crashing, and dropped audio are far less common these days, there are still user reports of desync issues and other mishaps with OBS browser sources. As a result, Electron Capture remains the preference for many professional VDO.Ninja users, and over time it has evolved to offer additional solutions for many different use cases in the video production world. The app can be set to remain on top of other windows, can hide the mouse cursor when possible, provides accurate window sizes options for 1:1 pixel mapping, and supports global system hotkeys (CTRL+M on Windows, for example). It also offers relatively low-CPU usage, command-line launch tools, built-in recording options, and it won't crash if OBS crashes. It may be worth exploring before your next production. The Electron Capture app uses recent versions of Chromium, and is setup to more resistant to desync, video smearing, and other issues that might exist in the native OBS browser source capture method. If a cutting edge web feature becomes available within browsers, it will also become available to Electron Capture first, making certain experimental features within VDO.Ninja accessible. The app is also optimized to not throttle when the system is stressed, ensuring that production-critical web-oriented code and media does not slow down or stop when its most needed. For non-VDO.Ninja users, the window-sharing focus of Electron Capture is also useful for Zoom or other users. For example, when screen sharing it into Zoom, the published video will be high-resolution, since Zoom publishes virtual webcam and other camera streams at lower quality compared to screen shares. You can screen share websites without the browser frame, search history, or nav bar from appearing. When doing a Power Point presentation, you can screen share the window via Electron Capture, while also pinning the it in place on top, avoiding having to toggle between multiple windows as you present. [More benefits listed here](https://github.com/steveseguin/electroncapture/blob/master/BENEFITS.md) Lastly, since playback is agnostic, you can window-capture the same video multiple times, using one copy in a mixed-down live stream, while using a window-capture to record a clean full-resolution isolated video stream. Both YouTube, Twitch, Facebook, and more are supported in this regard, where a full-window clean output option is available for those sites as well. There's even optimizations for sites like Twitch, letting you easily full-window any video on the page, without overlays or other effects from appearing. ### [](#video-guide-on-how-to-use-electron-capture) Video guide on how to use Electron Capture ### [](#settings-and-parameters) Settings and Parameters Parameter Alias Description Example values Notes \--width \-w Window width 1280 Value in px \--height \-h Window height 720 Value in px \--x X position on screen 1 Left side is 1 \--y Y position on screen 1 Top side is 1 \--pin \-p Pin window on top (Takes no values) Display this window always on top. \--url \-u Set a custom link on start https://vdo.ninja/?view=aCustomID You can push and pull with single links or rooms. \--title \-t Set a custom window title Guest 1 Handy for use with OBS window capture \--node \-n Use advanced features true Enable with `true`. Allows for screen capture, global hotkeys, prompts and more. \--hwa \-a Hardware acceleration false Disable with `false` \--minimized \-min start the app minimized \--css \-css Pass a CSS file to insert into newly created windows test.css \--chroma \-color Pass a 3 or 4 character HEX value to change the background color of websites 0F0C * note: Use the --help command to get the most recent available commands and options. While I try to keep the documenation update to date, I'm not always the best at it. The default frameless resolution of the capture window is 1280x720. The app automatically accounts for high-DPI displays, so it is always 1:1 pixel-accurate with the specified resolution on even Apple Retina displays. The optional Command Line arguments can be seen as examples below, along with their default values. Copy elecap.exe --width 1280 --height 720 --url 'https://vdo.ninja/electron' --title 'my Window name' --x 1 --y 1 --node 1 or for example Copy ./elecap -w 1280 -h 720 -u 'https://vdo.ninja/electron' -t 'my Window name' --x 10 --y 10 -n 1 If running from Windows command prompt, any ampersand "&" characters will need to be escaped with a "^" character, as seen below: Copy C:\Users\Steve\Desktop>elecap -t feed2 --url https://vdo.ninja/?view=ePz9hnx^&scene^&codec=h264^&room=SOMETHINGTEST123 You can also use it like this, if you are in the same folder as the app itself: Copy elecap.exe --node true --title feed2 --url "https://vdo.ninja/?view=ePz9hnx&scene&codec=h264&room=SOMETHINGTEST123" If running from a Windows batch file with the goal of launching multiple instances at a time, try the following: Copy start elecap.exe -t feed1 -u https://vdo.ninja/?view=2P342n5^&scene^&codec=h264^&room=SOMETHINGTEST123 timeout /T 1 start elecap.exe -t feed2 -u https://vdo.ninja/?view=ePz9hnx^&scene^&codec=h264^&room=SOMETHINGTEST123 timeout /T 1 start elecap.exe -t feed3 -u https://vdo.ninja/?view=12342n5^&scene^&codec=h264^&room=SOMETHINGTEST123 timeout /T 1 start elecap.exe -t feed4 -u https://vdo.ninja/?view=eP543hnx^&scene^&codec=h264^&room=SOMETHINGTEST123 timeout /T 1 start elecap.exe -t feed5 -u https://vdo.ninja/?view=432n5^&scene^&codec=h264^&room=SOMETHINGTEST123 timeout /T 1 start elecap.exe -t feed6 -u https://vdo.ninja/?view=eP654x^&scene^&codec=h264^&room=SOMETHINGTEST123 timeout /T 1 start elecap.exe -t feed7 -u https://vdo.ninja/?view=76542n5^&scene^&codec=h264^&room=SOMETHINGTEST123 timeout /T 1 start elecap.exe -t feed8 -u https://vdo.ninja/?view=gfd9hnx^&scene^&codec=h264^&room=SOMETHINGTEST123 * Please note, do not use double-quotes, rather single-quotes, if needing to enclose text via the command line. * Please also note, the use to timeout /T 1, as adding a delay between loading apps allows them to load correctly * x and y position is available in v1.5.2 and up; x or y values must be greater than 0. If you right-click the application, you'll get a context menu with additional options. Changing resolutions dynamically is an option, for example. #### [](#screen-share-global-hotkeys-and-user-prompts) Screen-share, global hotkeys, and user-prompts **Screen-sharing** Starting with version 1.6.0, to enable screen-share support and some other features, the app needs Node Integration enabled; aka, Elevated Privileges. This will allow remote websites to run node-based code, which is a security concern if visiting untrusted websites. You can enable Elevated Privileges for the app via the command line with `--node 1` or in the app by right-clicking and selecting "Elevate Privileges" from the context-menu. If right-clicking to enable this mode, the app may reload the page afterwards. A unique feature about the Electron Capture app is that it can auto-select a screen or window when screen-sharing with VDO.Ninja, without user-input. Adding to the VDO.Ninja URL, [`&ss=1`](/advanced-settings/setup-parameters/screenshare) will select display 1, `&ss=2` for the second display, etc. Or specify a window with `&ss=window_name_here`. To select Screen 1 automatically on load, for example you can do: `elecap.exe --node 1 --url "https://vdo.ninja/beta/?ss=1&autostart"` or to select Discord automatically Copy elecap.exe --node 1 --url "https://vdo.ninja/beta/?ss=Discord&autostart" It's also possible to select audio-only when screen sharing via Electron Capture with VDO.Ninja; you do not need to select a video if you wish to share audio-only. **Global hotkeys** Global Hotkeys, such as CTRL+M, are supported. CTRL+M will mute the mic, in the most recently opened window. You can assign a custom global hot-key in VDO.Ninja, and it will be respected by Electron Capture. (VDO.Ninja Settings -> User -> Global Hotkey) YouTube has a built-in automatic ad-skipper added, and for both YouTube, Twitch, and more, when watching a video, you can full-window the video, allowing for clean video capture. This option is available via the context menu of Electron Capture; just right-click somewhere on the page that is empty and select Clean Video Output. #### [](#audio-output) Audio Output A popular way of outputting audio from the Electron Capture app into OBS is done using a virtual audio cable. Some such cables include: Mac Audio Options: https://rogueamoeba.com/loopback/ (macOS & non-free, but excellent), and [https://existential.audio/blackhole/](https://existential.audio/blackhole/) (macOS & free) (and more here [https://github.com/steveseguin/vdoninja/wiki/FAQ#macaudio](https://github.com/steveseguin/vdoninja/wiki/FAQ#macaudio) ) Windows Audio Option: [https://www.vb-audio.com/Cable/](https://www.vb-audio.com/Cable/) (donation ware) If you intend to have more than a 6 virtual audio cables, you can try VAC instead of VB Cables, as VAC seems to support dozens of virtual audio cables, while VB Cable supports just a few: https://vac.muzychenko.net/ You can also use some advanced URL parameters to output the audio to specific channels. The following link links the parameters and the outcome, based on device/software used: [https://docs.google.com/spreadsheets/d/1R-y7xZ2BCn-GzTlwqq63H8lorXecO02DU9Hu4twuhuA/edit?usp=sharing](https://docs.google.com/spreadsheets/d/1R-y7xZ2BCn-GzTlwqq63H8lorXecO02DU9Hu4twuhuA/edit?usp=sharing) You can still capture audio via OBS Browser source, appending [`&novideo`](/advanced-settings/video-parameters/and-novideo) to the URL to disable video. Appending [`&noaudio`](/advanced-settings/audio-parameters/noaudio) to the Electron Capture URL would conversely disable audio there, allowing you to capture audio with OBS browser source and video with Electron Capture. The audio/video sync might be slightly off in this setup, but not noticeable in most cases. More recently, with newer versions of OBS, you can capture an application's audio using OBS natively, but with older versions you can use the following OBS plugin to also do it: [https://github.com/bozbez/win-capture-audio](https://github.com/bozbez/win-capture-audio) **Changing the audio output device** If you right click the app when on a site, you can change the audio output device for that site. This is useful for setting a YouTube or VDO.Ninja video to output to a virtual audio cable or headphones, rather than playout via the default audio device. On macOS, this is especially helpful since there is a lack of audio routing controls. Please note: To use this feature, you will need to elevate the app's privileges, which can expose the user to security issues on untrusted websites. #### [](#pinning-and-click-pass-thru) Pinning and click-pass thru You can pin the app on top of other apps via the right-click menu, and when enabled, you can then also enable "click thru" mode also via the context-menu, so no mouse input is captured. The app acts a bit like it is invisible, turning it into a bit of HUD for other applications and games. If using Social Stream or VDO.ninja, you can append &transparent to those URLs to make the background transparent. You can also use custom CSS to make web pages shown semi-transparent, so you can still see underneath. Once "click thru" mode is enabled, you can re-enable click-capture by just selecting the app via the task bar, as bringing the app into focus will disable the click-thru mode. #### [](#syphon-output) Syphon Output While there is no native Syphon or NDI output option yet available, one user has mentioned a solution for some users: [http://www.sigmasix.ch/syphoner/](http://www.sigmasix.ch/syphoner/) #### [](#automation-workflows-with-vdo.ninja) Automation Workflows with VDO.Ninja You can see a quick start / cheat sheet guide for example uses of the app with VDO.Ninja here: [https://github.com/steveseguin/vdo.ninja/blob/quickstart/automation/cheatsheet\_obsn\_automation.md](https://github.com/steveseguin/vdo.ninja/blob/quickstart/automation/cheatsheet_obsn_automation.md) ### [](#notes-on-using-and-closing-the-app) Notes on Using and Closing the App **For Windows users:** * Right click to bring up the context menu, which allows you to close the app. You can also press ALT-F4 in many cases. * You can disable hardware-assisted rendering by passing '-a 0' to the command line when lauching; this can help hide the windows mouse cursor with some setups when using BitBlt capture mode. * You can use the Win+Tab key combo on Windows 10 machines to create a secondary desktop and load the Electron Capture into that. In this way, you can hide your electron capture windows, yet still have them be available to OBS for window-capture. This is a great option for window-capturing without on computers with limited desktop screen space. **For Mac users:** * You can hover your mouse cursor over the top-left corner of the app to show the close button. * Also note, the top portion of the app is draggable, so you can move it around to place it accordingly. It is also resizable. * Multiple versions of the app can run on macOS; just make a copy of the file with a different name to open up a new window. * Desktop audio capture with screen share is not supported by Electron (https://www.electronjs.org/docs/latest/api/desktop-capturer#caveats) * You need to enable Screen Capture support in the macOS security preferences for the app to enable desktop capture support on macOS 10.15 Catalina or higher. You also need to enable elevated privileges in the Electron Capture app itself. * If capturing the window with OBS, you can use either DISPLAY CAPTURE with a WINDOW CROP -or- WINDOW CAPTURE \--- _WINDOW CAPTURE_ will have a video delay of up to ~800ms, but Windows can be stacked without issue \--- _DISPLAY CAPTURE_ will have no delay, but the windows cannot be stacked, which could be a problem if you only have one screen [](#links-to-downloads-below) Links to downloads below. ------------------------------------------------------------ You can find the newest release builds of the app here: [https://github.com/steveseguin/electroncapture/releases](https://github.com/steveseguin/electroncapture/releases) or see below. Please note that the Electron Capture app does not auto-update to newer versions of Chromium. This can become a security issue if it is left to become out of date. It's also recommended to not use the Electron Capture app with websites and remote VDO.Ninja peers that you do not trust. #### [](#windows-version) Windows Version There are two versions for Windows. An installer for x64 systems. There's also a portable version, which is larger in size, but supports x64 and x86 (32-bit) systems. The portable version requires no install and is easier to use from the command-line or from a batch file. New release here: [https://github.com/steveseguin/electroncapture/releases/](https://github.com/steveseguin/electroncapture/releases/) If you have problems, try a different version or contact me on Discord. #### [](#mac-version) Mac Version * Newest version can be found here: [https://github.com/steveseguin/electroncapture/releases/](https://github.com/steveseguin/electroncapture/releases/) * If having problems, there's an older version here (v1.1.3) [https://github.com/steveseguin/electroncapture/releases/download/1.1.3/obsn-1.1.3.dmg](https://github.com/steveseguin/electroncapture/releases/download/1.1.3/obsn-1.1.3.dmg) If on version of Electron doesn't work for you all that well, try a different version. There may be some issues with rounded edges depending on you macOS version and the Electron version used. #### [](#linux-version) Linux Version There are two pre-build versions of Electron Capture available currently. One built for Pop!\_OS and another for Raspbian. Those builds are here: https://github.com/steveseguin/electroncapture/releases/tag/2.5.0 For most Linux users though, we're recommending Linux users build it themselves. Details below Getting the correct nodejs/npm versions can be hard on linux, but using snap can help there. Copy sudo apt-get update sudo apt-get install snapd -y sudo snap install node --classic --channel=16 Next, close the shell and open a new one, to ensure the installation is completed. To get the actual app source code and to build a distributable version, see below Copy git clone https://github.com/steveseguin/electroncapture cd electroncapture npm install npm run build:linux The file you need to run will be in the dist folder. ### [](#building-for-the-raspberry-pi) Building for the Raspberry Pi If you want to compile on Raspberry Pi, it's possible, but keep in mind the GPU may not work without also patching Electron.js to support the GPU. Currently you'll need to run it without hardware-acceleration disabled, which is rather disappointing. Contributions that can help fix this are welcomed. Anyways, this is all much like with the Linux install, but we also need to install `fpm` before trying to build the app. Copy sudo apt-get update sudo apt-get install snapd -y sudo apt-get remove nodejs -y sudo snap install node --classic --channel=14 ## close the current terminal shell and open a new one here ## sudo apt install ruby ruby-dev -y sudo gem install fpm We also need to build the app using `build:rpi` instead of `build:linux`, as we need to target ARM versus x64. Copy git clone https://github.com/steveseguin/electroncapture cd electroncapture npm install npm run build:rpi You should get a `.deb` file in the dist file with this option. If you install the deb file, it should appear in the Raspbian start menu, under `Other -> ElectronCapture` This will probably file if you do not disable the GPU / hardware-acceration within the Electron Capture app first, but who knows -- maybe you can get it working? ### [](#building-from-source-on-windows) Building from source on Windows You'll also need nodejs and npm installed. If on Windows, you can find the NPM/Nodejs install files here: [https://nodejs.org/en/download/current/](https://nodejs.org/en/download/current/) and then to get the source code for Electron Capture, Copy git clone https://github.com/steveseguin/electroncapture.git cd electroncapture To just run the app from source without building, you can: Copy npm install npm start If you get an error about node versions, you can install the required version with something like this: Copy npm install -g node@14.6.0 npm install npm run build:win32 #### [](#building-the-app-from-source-on-macos) Building the app from source on macOS : * For Mac, please also see this issue for building: https://github.com/electron-userland/electron-builder/issues/3828 The basic idea is is to first install node, npm, and git. Then to clone and build the folder: Copy git clone https://github.com/steveseguin/electroncapture.git cd electroncapture npm install -g node@14.6.0 npm install npm run build:darwin If you need to sign the build, for distribution, you can then try: Copy npm install export appleId={yourApp@dev.email} export appleIdPassword={app-specific-password-here} sudo -E npm run build:darwin #### [](#trouble-shooting-if-cant-hide-cursor-when-window-capturing-using-obs) Trouble-shooting -- if can't hide cursor when window capturing using OBS: Change the capture method in OBS to "BitBlt"and uncheck the Capture Cursor. Also make sure OBS runs in compatibility mode for win 7, so you don't get a black screen Adding [`&nocursor`](/advanced-settings/design-parameters/and-nocursor) to VDO.Ninja will hide the cursor in that browser window, but that often isn't enough. If the above fails, make sure you are window capturing with OBS using the same display adapter for both OBS and the Electron window. Lastly, if that still doesn't help, you can try Windows + Tab (on windows), and host the Electron Capture app on the secondary windows desktop. Windows + Tab back to the main one and select the window then. You may need to toggle between the two desktops after selecting the window to capture, to get it to show in OBS, but it is one way of hiding the mouse. You can also drag the Electron Capture far off screen, so the cursor can't approach it really. **Issues with dependencies when compiling** Sometimes a dependency won't update to the value stated in the package.json. This option might be able to update the package.json to the newest version of dependencies automatically, Copy npx npm-check-updates -u npm install Seems to work with newer npm versions #### [](#thank-you) Thank you "Electron capture is one process that unstable atoms can use to become more stable. " - [https://education.jlab.org/glossary/electroncapture.html](https://education.jlab.org/glossary/electroncapture.html) image image image [Updates - Electron Capture App](/updates/updates-electron-capture-app) ![](https://docs.vdo.ninja/~gitbook/image?url=https%3A%2F%2Fuser-images.githubusercontent.com%2F2575698%2F80891745-290d3000-8c94-11ea-85c4-ae0e7cd1ec19.png+&width=300&dpr=4&quality=100&sign=e69ec7a8&sv=2) ![](https://docs.vdo.ninja/~gitbook/image?url=https%3A%2F%2Fuser-images.githubusercontent.com%2F2575698%2F126881462-b6916972-aa46-41bd-be01-54e3c2a58906.png&width=768&dpr=4&quality=100&sign=980eafbc&sv=2) ![](https://docs.vdo.ninja/~gitbook/image?url=https%3A%2F%2Fuser-images.githubusercontent.com%2F2575698%2F121296394-94292d00-c8be-11eb-908e-638e5616691a.png+&width=768&dpr=4&quality=100&sign=26283ca5&sv=2) ![](https://docs.vdo.ninja/~gitbook/image?url=https%3A%2F%2Fuser-images.githubusercontent.com%2F2575698%2F130308991-4a6e15f2-00e3-453f-a79f-8a874d2a6417.png&width=768&dpr=4&quality=100&sign=af739d9c&sv=2) ![](https://docs.vdo.ninja/~gitbook/image?url=https%3A%2F%2Fuser-images.githubusercontent.com%2F2575698%2F126881460-1d8fe840-6ec4-4c35-bde2-fc6db5a9ae30.png&width=768&dpr=4&quality=100&sign=dc29bc2d&sv=2) New option in OBS for capture a window's audio ![](https://docs.vdo.ninja/~gitbook/image?url=https%3A%2F%2F2943598173-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F-MZHXv1G8N0MDxwotaT9%252Fuploads%252FVacwcxWTVuFQmpmMSGjD%252Fimage.png%3Falt%3Dmedia%26token%3D2d552fc5-83a9-4e42-a3a4-e8a919d86195&width=768&dpr=4&quality=100&sign=4357cb2b&sv=2) ---