Code

Discussion on MiroTalk SFU: Scalable WebRTC for Webinars, Live Classes & Conferences with Video Avatars & ChatGPT

Discussion on MiroTalk SFU: Scalable WebRTC for Webinars, Live Classes & Conferences with Video Avatars & ChatGPT

Cart 105 sales
Recently Updated

miroslavpejic85 supports this item

Supported

This author's response time can be up to 1 business day.

135 comments found.

qpali

qpali Purchased

can you please tell me how to disable Video feature ? i am looking for voice-only meeting rooms , i am edit .env & config files , i am failed !!! give me the full details to turn-off video streaming please.

Everything was already fixed 15 hours ago. Please update your instance by following the documentation and you’re good to go, no need to wait for this to be uploaded here. We’ll also release it here soon

qpali

qpali Purchased

One word: you are amazing

That’s kind of you, thank you! I’m always happy to help to make things better!

Hi, I’m planning to use MiroTalk SFU. Is it possible to embed the meeting room or use a static URL for each professional?

Inquiry about Admin Dashboard and User Management

Hello, I am evaluating MiroTalk SFU for a professional multi-vertical booking platform. Does MiroTalk SFU include an Admin Dashboard to manage meetings, view logs, or control system settings? Since I am building a SaaS, is there a built-in way to restrict room creation only to authorized users/API keys, or is it completely open by default? Does the script support “Guest Access” via a direct link without the need for account registration? Regards.

Hi Vpanos,
Thank you for your questions. Please find the answers below:

Is it possible to embed the meeting room or use a static URL for each professional?

Yes, you can embed MiroTalk SFU into any website in two different ways.

1. Using an Iframe

You can embed a meeting room directly inside your webpage using an iframe.

Example: View Iframe Example

<iframe
  allow="camera; microphone; speaker-selection; display-capture; fullscreen; clipboard-read; clipboard-write; web-share; autoplay; picture-in-picture" 
  src="https://sfu.mirotalk.com/newroom" 
  style="height:100vh; width:100vw; border:0;">
</iframe>

This can also be combined with static room URLs, allowing you to create a dedicated meeting room for each professional.

2. Using the MiroTalk Widget

You can integrate a floating support widget that allows users to start a call directly from your website.

Example: View Widget Example

<!DOCTYPE html>
<html>
<head>
  <script src="https://YOUR-DOMAIN-NAME/js/Widget.js"></script>
</head>
<body>

<div
  id="support-widget" 
  data-mirotalk-auto
  data-domain="YOUR-DOMAIN-NAME" 
  data-room="support-room" 
  data-theme="dark" 
  data-widget-type="support" 
  data-widget-state="normal" 
  data-position="bottom-right" 
  data-draggable="false" 
  data-check-online="false" 
  data-expert-images="https://i.pravatar.cc/40?img=1,https://i.pravatar.cc/40?img=2,https://i.pravatar.cc/40?img=3" 
  data-buttons="audio,video,screen,chat,join" 
  data-heading="Need Help?" 
  data-subheading="Get instant support from our expert team!" 
  data-connect-text="connect in < 5 seconds" 
  data-online-text="We are online" 
  data-offline-text="We are offline" 
  data-powered-by="Powered by MiroTalk">
</div>

</body>
</html>

mirotalk_sfu_widget

You can also generate direct join links with custom parameters using this tool:

Customize Room Link Generator

Does MiroTalk SFU include an Admin Dashboard to manage meetings, view logs, or control system settings?

Yes. To manage meetings you can use the MiroTalk Web Room Scheduler together with MiroTalk SFU.

Demo: Open Demo

Demo credentials:

Product page: View on CodeCanyon

We also provide MiroTalk ADM (Admin Panel) that allows you to:

  • Manage updates
  • Monitor system status
  • Manage configurations
  • Control system settings
  • Access logs and diagnostics

After purchase, you can contact us by email and we will provide the full documentation.

Since I am building a SaaS, is there a built-in way to restrict room creation only to authorized users/API keys, or is it completely open by default?

By default the public demo instance has no restrictions.

However, when you self-host your own instance, you can enable several protection mechanisms, including:

  • Host protection mode
  • User authentication (username/password)
  • OIDC authentication
  • API-based access control

We also provide a full REST API to interact with MiroTalk from external applications:

View API Documentation

Does the script support “Guest Access” via a direct link without the need for account registration?

Yes, guest access is supported.

Users can join a meeting directly via a link without requiring account registration. This can also be managed programmatically using the API endpoint:

Join Endpoint Documentation

If you need further information, email me any time at:
miroslav.pejic.85@gmail.com

Hi, I have a question regarding your development. Is it possible to have a live video call with others, while showing myself as AI video avatar in real-time? Please let me know. Thank you, best regards

Hi spysofly,

With MiroTalk SFU, you can add an AI avatar to a meeting and interact with it, but you cannot replace your own live video with an avatar yet. Showing yourself as a real-time AI avatar isn’t supported.

Still, it’s a very interesting point of view and a promising future direction

qpali

qpali Purchased

WKWebView WebRTC Limitations on iOS – MiroTalk Integration in Flutter App

Hello Miroslav,

Thank you very much for your reply and for sharing the iframe-based Flutter example. We truly appreciate your openness and the work you’ve done on MiroTalk — it’s an impressive and feature-rich WebRTC solution.

After carefully reviewing your suggestion and testing similar approaches, we’d like to clarify the exact issue we are facing, as it appears to be a platform-level limitation rather than an integration or configuration problem.

Context of Our Integration

Our application is a Flutter native mobile app (iOS & Android), not Flutter Web.

We embed MiroTalk inside the app using WebView (WKWebView on iOS).

The same MiroTalk instance works perfectly on:

Desktop browsers

Mobile browsers (Safari / Chrome)

Android WebView

However, it fails on iOS WKWebView.

Why the iframe approach does not resolve the issue on iOS

dart:html / IFrameElement

This API is only supported on Flutter Web.

It does not run in native Flutter apps (iOS / Android).

Therefore, this approach cannot be used in our production iOS app.

WKWebView WebRTC limitations Even when using a WebView and rendering HTML with an iframe:

WKWebView does not reliably support WebRTC media capture

The system does not present the camera/microphone permission prompt

The iframe allow=”camera; microphone” attribute is ignored or partially applied

This is a long-standing Apple limitation:

Safari Browser ✅ full WebRTC + permission handling

WKWebView ❌ incomplete WebRTC APIs and restricted permission flow

Permissions are the core blocker

The issue is not signaling, TURN/STUN, or MiroTalk logic

The media permission dialog simply never appears inside WKWebView

Without explicit user-granted permissions, WebRTC cannot start

No native signaling interface

MiroTalk is web-first and iframe-based

There is currently no documented:

Native signaling API

WebSocket protocol spec for mobile SDKs

Flutter / iOS native SDK

This makes it impossible to bypass WebView and integrate MiroTalk as a true native WebRTC client

Summary

The iframe solution works well for web contexts

Unfortunately, on iOS native apps, WKWebView fundamentally blocks the required WebRTC permission flow

This behavior is controlled by Apple and cannot be fixed at the application or iframe level

What would solve this long-term (from a product perspective)

We believe MiroTalk could become even stronger for mobile apps if, in the future, it offers one of the following:

A documented native signaling API (WebSocket / REST)

Or a lightweight mobile SDK (even signaling-only)

Or official guidance confirming WKWebView limitations on iOS

Again, thank you for your time and for building such a great open-source project. We wanted to share this detailed technical feedback transparently, as we believe others integrating MiroTalk into native iOS apps may encounter the same limitation.

Kind regards, Fadi Ajrab

Hello Fadi,

I’m back from holiday, Thank you very much for the detailed explanation and for taking the time to clearly document your findings. I truly appreciate both the technical depth and the constructive tone of your message.

You are absolutely correct in your assessment. This behavior is not a MiroTalk limitation, but a well-known platform restriction of iOS WKWebView.

While WebRTC works correctly in Safari, Apple currently provides incomplete and inconsistent WebRTC media permission handling inside WKWebView, especially regarding camera and microphone access. As you correctly noted, this results in missing or blocked permission prompts that cannot be controlled or overridden at the application or iframe level.

To clarify this point for other users:

  • MiroTalk works as expected on:
    • Desktop browsers
    • Mobile browsers (Safari / Chrome)
    • Android WebView
  • On iOS WKWebView, WebRTC media capture may fail due to Apple’s restrictions, regardless of signaling, TURN/STUN configuration, or iframe permissions.

Regarding native integration, MiroTalk is currently designed as a web-first solution. At this time, there is no official native SDK or documented signaling-only API intended for direct mobile client implementation.

Because of this, embedding via WebView remains the only supported approach for mobile apps, with the above-mentioned iOS limitation.

Your feedback is valuable and aligns with requests I have seen from other developers. Improving mobile integration options (documentation, signaling APIs, or alternative approaches) is something I will continue to evaluate, keeping in mind project scope and sustainability.

Thank you again for sharing your experience so transparently. I agree that this information can be helpful for other developers considering iOS native integrations.

Kind regards,
Miroslav

Hi, I want to buy your products, but I have a few questions: please guide us

Do we need to pay anything else to ChatGPT or any other service for these calls?

Do we need a server? I already have a VPS on Hostinger.

What server configurations are required for live meetings? I also want to connect it to YouTube to broadcast my meetings live.

How many people can join the meeting? Is there any limit?

Here are the products I’m looking at:

MiroTalk SFU – WebRTC Real-Time Video Conferences

MiroTalk BRO – WebRTC P2P Live Broadcast

Can I stream to YouTube Live? Yes — via RTMP/FFmpeg or via OBS connection.

which one is good for our project

We want to do live online classes for our students and attach with live you tube as well.

Hey @aidal6,

I’m back from holiday, I will answer you below:

Do we need to pay anything else to ChatGPT or any other service for these calls?

By default, no. This feature can be completely disabled.
If you choose to enable it, you only need to pay for the usage of your own API key, based on the model you decide to use.

Do we need a server? I already have a VPS on Hostinger.

Yes. You can self-host all MiroTalk projects, including this one, on a single VPS.
We also provide easy-to-use installation scripts for self-hosting.
A clean server with Ubuntu 22.04 LTS is required for a fast and smooth installation.

What server configurations are required for live meetings? I also want to connect it to YouTube to broadcast my meetings live.

MiroTalk includes a built-in RTMP server, so you don’t need third-party services to handle streaming.
You can stream directly using OBS as well.

How many people can join the meeting? Is there any limit?

By default, you can support up to 100 concurrent users per single CPU core, with no time limits.
However, limits and many other options can be customized through a single configuration file.

Here are the products I’m looking at:

  • MiroTalk SFU – WebRTC Real-Time Video Conferences
  • MiroTalk BRO – WebRTC P2P Live Broadcast

Can I stream to YouTube Live? Yes — via RTMP/FFmpeg or via OBS connection.

Which one is good for our project?

We want to do live online classes for our students and attach with live YouTube as well.

MiroTalk SFU is the best choice for your use case.
It is a complete solution for live online classes and includes a built-in RTMP server, allowing you to stream via OBS or broadcast the room (one-to-many).

If you have any other questions, please feel free to email me anytime at miroslav.pejic.85@gmail.com.

Glad to help,
Thank you!

can it be integrated with flutter mobile app. for one to one chat ,audio calls, video calls, conference call

For simple cam-to-cam communication, check out our MiroTalk C2C product:

https://codecanyon.net/item/mirotalk-c2c-webrtc-real-time-cam-2-cam-video-conferences-and-screen-sharing/43383005

All of our products can be integrated into any device or browser using a simple iframe. MiroTalk P2P and SFU are also available in widget mode, eg for this item:

https://codepen.io/Miroslav-Pejic/pen/LEpzGXO

If you have further questions email me. Thank you.

Hello, I would like a refund because this is not the product I was looking for. I made a mistake in purchasing this and the planner. Thank you for your attention.

I’m not sure whether a refund is still possible after 1+ years from the purchase date. In any case, here is the relevant link: https://themeforest.net/refund_requests/new For any further questions, please contact the Envato Help Center. Thank you.

Ciao Miro, sono Luca Simeone, ci siamo sentiti su LinkedIn un po’ di tempo fa.

Ho appena acquistato la licenza Standard, così che il mio team possa stimare il lavoro necessario per l’integrazione beta del prodotto su cui sto lavorando.

Per il supporto, saresti disponibile a partecipare a un gruppo Telegram che potrei creare io? Servirebbe solo per chiarire alcuni punti tecnici con il team e sarebbe sicuramente più efficace rispetto a messaggi o email.

Fammi sapere gentilmente se per te va bene. Grazie!

Hi Luca, thank you for purchasing the license.

We recommend joining our community forum on Discord at the following link: https://discord.gg/rgGYfeYW3N

You or any member of your team can contact me privately, making sure to include the license code, to receive direct support.

Within the community, you’ll also find answers to many common questions, have the opportunity to interact with other users, and stay up to date on the project’s progress and future developments.

I will also send you shortly all the developer documentation related to your item.

For any additional requests, please contact us via email at miroslav.pejic.85@gmail.com so we can better track and manage communications.

Thank you, and best regards.

Hello, is it possible to get documentation for Mirotalk?

i was about to report your products including the SFU, but then i discovered that you’re both owner of github repo & envato account, fortunately. good luck with sales my friend. Question: do you have any plan to add flutter sdk to the SFU, so i can integrate it in my flutter app? Thanks, Tayeb.

Hi Tayeb :),

Yeah, thank you for your kind words and for checking things out!

If you search for Flutter in the search bar, you’ll find a response about it:

flutter-mirotalk

By the way, feel free to join our community forum to stay updated and find many answers ;)

PS: We’ve also recently added support for widget integration!

mirotalk-sfu-widget

Customize this in your app, and you’re all set!

<!doctype html>
<html>
  <head>
    <script src="https://sfu.mirotalk.com/js/Widget.js"></script>
  </head>
  <body>
    <div
      id="support-widget" 
      data-mirotalk-auto
      data-domain="sfu.mirotalk.com" 
      data-room="support-room" 
      data-theme="dark" 
      data-widget-type="support" 
      data-widget-state="normal" 
      data-position="bottom-right" 
      data-check-online="false" 
      data-expert-images="https://i.pravatar.cc/40?img=1,https://i.pravatar.cc/40?img=2,https://i.pravatar.cc/40?img=3" 
      data-buttons="audio,video,screen,chat,join" 
      data-heading="Need Help?" 
      data-subheading="Get instant support from our expert team!" 
      data-connect-text="connect in <5 seconds" 
      data-online-text="We are online" 
      data-offline-text="We are offline" 
      data-powered-by="Powered by MiroTalk" 
    ></div>
  </body>
</html>

Tip: Just drop this snippet into your app, customize the options like theme, room, or buttons, and your support widget is ready to go!

Note: When you self-hosting your own SFU instance, simply replace https://sfu.mirotalk.com with your instance domain, that’s all!

A quick question. What is the vps sizing needed to host a webinar of 500 people?

The SFU can handle about 100 concurrent users per CPU core. We also explain this in more detail on our community forum, where we cover both vertical and horizontal scaling best practices.

Nice work but how does admin monetize the app. I don’t seem to see monetization features on this script?

Good point, the script has no built-in monetization. It’s flexible, so admins can integrate it into their existing system or platform, adding payments, subscriptions, or access control as they prefer, for example, by connecting it with MiroTalk or other existing solutions. For any questions or doubits join our community forum as well.

Buonasera, ho bisogno dei chiarimenti in merito ai suoi software. Scusi, scrivo in italiano per comodità dopo aver notato che l’autore è in Italia. Premetto sono poco esperto. Ho un server dedicato mio (in abbonamento) dove ho installato alcuni domini e sottodomini. Il server è configurato con ubuntu e Plek (condiviso) e io utilizzo php. E’ possibile installare i vostri software? Se sì, gradirei avere un colloquio telefonico per maggiori chiarimenti.

Grazie. Saluti. Giacomo Racioppi Tel. 039 2725065

Buonasera Sig. Racioppi,

La ringraziamo per il suo interesse nei nostri software. Per motivi di privacy e sicurezza, non è consigliabile condividere dati personali come numero di telefono o altri contatti in chat pubbliche.

Per proseguire in modo sicuro, la invitiamo a scrivere direttamente a miroslav.pejic.85@gmail.com, dove potremo rispondere a tutte le sue domande.

Cordiali saluti, Miroslav

DH2016 Purchased

Hey Miroslav,

I recently purchased CONNECT on Envato. Since I can’t get it installed, I asked for support, but the seller hasn’t responded in weeks…

My question: Is it easy to install your SFU on my own server? TURN/STUN is already running…

I see that you always provide prompt support and take good care of your community.

Thank you very much for your feedback.

Best regards Maik

Hi Maik,

Thank you for your message and kind words!

MiroTalk SFU as Selective Forwarding Unit doesn’t require any TURN or STUN servers, it handles all of that internally. For self-hosting, we provide clear documentation and even recommend VPS providers with great performance, prices, and discounts.

Please just attach your purchase code and feel free to email me anytime if you have any questions. I’ll be happy to assist you!

Thank you!

DH2016 Purchased

Thank you for your quickly answer. :)

You’re welcome!

Hi,

I’m very interested in purchasing your MiroTalk SFU script and would like to clarify a few important points before proceeding. Could you please help me with the following questions?

1. License Type & Usage Rights – Is the license (Regular or Extended) a one-time purchase? – Does it include lifetime usage rights?

2. Source Code Access & Customization – Will I receive the complete source code after purchase? – Am I allowed to modify the code, add new features, rebrand the UI/UX, and integrate it into my own platform? – Are there any restrictions on customizing the application (e.g., removing branding, changing functionality)?

4. Updates & Support – What exactly is included in the 6 months (or extended 12 months) of support? – Bug fixes? Installation help? Feature guidance? – Are future updates provided for free after purchase, even after support ends? – How frequently are updates released?

7. White Labeling for LMS Integration – I plan to integrate MiroTalk SFU into a custom Learning Management System (LMS) for live classes and teaching sessions — not as a standalone video conferencing tool. – Can it be fully white-labeled so that all “MiroTalk” branding (logo, footer, credits, etc.) can be removed? – Can the interface be seamlessly embedded or themed to match my LMS design?

11. Future Updates & Version Syncing – If you release a new version with bug fixes or new features, will I be able to download and update my self-hosted instance? – If I’ve made custom changes to my version, is there a recommended way to merge or sync with your updates (e.g., via Git, patch files, changelogs)?

12. Difference from Free GitHub Version – There’s a publicly available version of MiroTalk SFU on GitHub. What additional features, improvements, or benefits does the paid version on Envato offer compared to the open-source one? – Is the paid version more stable, better optimized, or enhanced with exclusive features (e.g., advanced security, scalability, AI avatars, RTMP, etc.)?

13. Possibility of a Short Call – If you don’t mind, would it be possible to schedule a quick 10–15 minute call so I can better understand the product and get answers to my questions live? – If yes, could you please share your Calendly link or any similar scheduling tool?

I really appreciate your work on this project — it’s impressive and well-designed.

Looking forward to your response!

Best regards,

Hi,

Thank you for reaching out and for your interest in MiroTalk SFU. I’ve addressed your questions in detail below:

1. License Type & Usage Rights

  • Regular License: Use by you or one client in a single end product where users are not charged.
  • Extended License: Use by you or one client in a single end product where users can be charged.
  • Both licenses are one-time purchases and include lifetime usage rights.

2. Source Code Access & Customization

  • You will receive the full source code after purchase.
  • You are free to modify the code, add new features, rebrand the UI/UX, and integrate it into your own platform.
  • There are no restrictions on customization, including removing branding or changing functionality.

4. Updates & Support

  • Support includes priority answers to your questions, guidance on setup, bug fixes, and best practices for feature integration.
  • A step-by-step installation guide is included for smooth self-hosting.
  • MiroTalk evolves quickly, and we regularly release updates with improvements and new features.
  • Future updates are free even after your support period ends.

7. White Labeling & LMS Integration

  • You can fully white-label MiroTalk SFU under both Regular and Extended licenses.
  • All branding (logo, footer, credits, etc.) can be removed.
  • The interface can be embedded and themed to seamlessly match your LMS design, making it feel like a native part of your platform.

Note: White-labeling allows you to present the product as your own to end users, while the underlying intellectual property (IP) of MiroTalk remains with the original author.

11. Future Updates & Version Syncing

  • You can always download and update your self-hosted instance with the latest version.
  • If you’ve made custom changes, you may need to resolve merge conflicts when syncing with updates.
  • However, most customizations can be done via dedicated configuration files, so you can stay up-to-date with 0 conflicts

12. Difference from Free GitHub Version

  • The GitHub version is FOSS under AGPLv3, which requires that any modifications you make must also be made publicly available.
  • The Envato version avoids those legal compliance obligations and comes with priority support and a license to use it in your private project without the need to make your changes public. So your code, changes, and customizations remain yours.
  • To avoid compliance issues when modifying the FOSS edition — purchasing a license ensures peace of mind. We’ve seen cases in the past with other Envato products where users ran into legal problems by not respecting the AGPLv3 license terms, so obtaining a proper license is the safest path.

13. Possibility of a Short Call

  • Instead of 1:1 calls, we provide access to our dedicated community forum, where you can:
    • Stay updated on new features and releases
    • Interact with other developers and users
    • Find answers to many common questions

Thank you once again for your kind words about the project. I’m confident that MiroTalk SFU will integrate with easy into your LMS and provide a reliable solution for your live teaching sessions.

For additional questions, feel free to email me anytime at: miroslav.pejic.85@gmail.com

Best regards,
Miroslav

Hello, Just purchased the Webrtc sfu on codecanyon but nothing downloaded

No worries at all, thank you for letting me know! Please take your time to review everything once you’re on your PC, and if you need any help along the way, just email me, I’ll be happy to assist.

Thanks again, is there any documentation on how users can connect with obs and other live streaming services

In the documentation, under the RTMP section, please check the Streaming with OBS guide. For better assistance, we kindly ask you to continue reaching out via email so we can keep all conversations organized there. Thank you!

Hello, after purchasing the license, will you provide the complete source code? I need to do secondary development.

Hello dorisy12, Yes, the full source code is always included with the license purchase.

HelloMiroslav, First of all, congratulation on this amazing software. Best of what i’ve seen so far. I would like to buy a licence. I just want to know if you provide complete set up and deployment as well as post support ? If yes how much?

Usually people use a lot of third partys which cost a lot of money before even the project takes off ( if it even does take off ) .

Hello sadiatrading18,

Thank you very much for your kind words and interest in our software. Yes, we provide full setup, deployment, and have a dedicated community forum for support if needed. Of course my direct support is included for any questions you may have.

We also include step-by-step documentation so you can self-host it on your own. Please send me an email so we can discuss the installation details.

You are also welcome to join our community forum, where you can find many answers and stay updated with the latest progress. MiroTalk is growing fast, Sponsored by valuable company that trust in our vision and we are improving it every day.

Best regards, Miroslav

Where are you installation docs? I’m considering purchasing your Scalable WebRTC Video App and can’t locate any docs or installation docs. I have a VPS running Coolify via Hostinger on the KVM4 VPS plan. I need clarity on installation before I purchase. Thank you

Hi cueallus,

Thank you for your interest in our MiroTalk SFU Solution!

The installation guide for self-hosting is available in the project’s docs folder. You’ll find detailed steps there to get everything up and running.

Your current KVM4 VPS plan with Hostinger is an excellent choice for this solution—it’s fully compatible and provides the performance needed.

If you’d like to get a discount on Hostinger services, you can use our affiliate referral link:

https://www.hostinger.com/referral?REFERRALCODE=MIROTALK

Feel free to email me with the purchase code if you have any questions during setup—we’re happy to help.

Can MiroTalk SFU run on CloudLinux v9.3.0 STANDARD?

Sure, you can install it from the source or Using Docker (recommended for simplicity): Just pull the Docker image and run it with the required ports and environment settings. No need to worry about local dependencies. If you have any questions or doubts join our community forum where you can find many answers as well.

by
by
by
by
by
by

Tell us what you think!

We'd like to ask you a few questions to help improve CodeCanyon.

Sure, take me to the survey