<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: OneLime Studio</title>
    <description>The latest articles on DEV Community by OneLime Studio (@onelime_studio_e385c6295c).</description>
    <link>https://dev.to/onelime_studio_e385c6295c</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3924996%2F4b3d63cf-303f-4b27-a747-a6df76ca3c8f.jpg</url>
      <title>DEV Community: OneLime Studio</title>
      <link>https://dev.to/onelime_studio_e385c6295c</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/onelime_studio_e385c6295c"/>
    <language>en</language>
    <item>
      <title>An open-source Virtual WebCam (alternative to DroidCam/Irium )</title>
      <dc:creator>OneLime Studio</dc:creator>
      <pubDate>Mon, 11 May 2026 12:44:41 +0000</pubDate>
      <link>https://dev.to/onelime_studio_e385c6295c/an-open-source-virtual-webcam-alternative-to-droidcamirium--nk3</link>
      <guid>https://dev.to/onelime_studio_e385c6295c/an-open-source-virtual-webcam-alternative-to-droidcamirium--nk3</guid>
      <description>&lt;p&gt;If you've ever tried using your Android phone as a webcam on Windows, you've probably met DroidCam. And you've probably met its paywalled 1080p, the mid-stream ads, and the laggy experience that makes you look like you're broadcasting from 2009.&lt;/p&gt;

&lt;p&gt;I got tired of it. So I built &lt;strong&gt;BestCam&lt;/strong&gt; — a fully open-source Android-to-Windows webcam that works natively with Zoom, OBS, Discord, and Teams over USB with ~20–100ms latency. No paywalls, no ads, no nonsense.&lt;/p&gt;




&lt;h2&gt;
  
  
  How It Works (Quick Version)
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Android:&lt;/strong&gt; CameraX captures raw &lt;code&gt;YUV_420_888&lt;/code&gt; frames and streams them as MJPEG over a local HTTP server on the device.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Windows Receiver (Python):&lt;/strong&gt; Connects via ADB USB port forwarding (that's where the low latency comes from). Uses libjpeg-turbo to decode frames 2–3× faster than OpenCV, converts to NV12, and writes into a cross-session Named Shared Memory buffer (&lt;code&gt;Global\&lt;/code&gt;).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Virtual Camera Driver (C++17):&lt;/strong&gt; Uses the modern &lt;strong&gt;Windows 11 Media Foundation Virtual Camera API&lt;/strong&gt; (&lt;code&gt;MFCreateVirtualCamera&lt;/code&gt;) — not legacy DirectShow. Reads NV12 frames directly from RAM via Win32 Mutex. Because it's fully user-mode, &lt;strong&gt;no kernel driver signing required&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why Not Just Use DroidCam?
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;DroidCam Free&lt;/th&gt;
&lt;th&gt;BestCam&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Max Resolution&lt;/td&gt;
&lt;td&gt;480p&lt;/td&gt;
&lt;td&gt;1080p&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ads&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;USB Low Latency&lt;/td&gt;
&lt;td&gt;Limited&lt;/td&gt;
&lt;td&gt;Native ADB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Kernel Driver&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No (user-mode)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Open Source&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Come Build With Us
&lt;/h2&gt;

&lt;p&gt;👉 &lt;strong&gt;&lt;a href="https://github.com/OneLimeStudio/BestCam" rel="noopener noreferrer"&gt;github.com/OneLimeStudio/BestCam&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Looking for help with Wi-Fi support, C++ Media Foundation optimizations, Android app improvements, and cross-device testing. Drop a PR or open an issue!&lt;/p&gt;

</description>
      <category>programming</category>
      <category>opensource</category>
      <category>cpp</category>
      <category>discuss</category>
    </item>
  </channel>
</rss>
