<?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: Malti Thakur</title>
    <description>The latest articles on DEV Community by Malti Thakur (@malti_thakur_fc70e73f4dde).</description>
    <link>https://dev.to/malti_thakur_fc70e73f4dde</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3566448%2Ff43902aa-5776-4e36-a6aa-418b591d0ecc.jpg</url>
      <title>DEV Community: Malti Thakur</title>
      <link>https://dev.to/malti_thakur_fc70e73f4dde</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/malti_thakur_fc70e73f4dde"/>
    <language>en</language>
    <item>
      <title>Flutter Video Conference App for iOS, Android, Web and Desktop.</title>
      <dc:creator>Malti Thakur</dc:creator>
      <pubDate>Thu, 08 Oct 2026 06:43:24 +0000</pubDate>
      <link>https://dev.to/antmedia_io/flutter-video-conference-app-for-ios-android-web-and-desktop-563m</link>
      <guid>https://dev.to/antmedia_io/flutter-video-conference-app-for-ios-android-web-and-desktop-563m</guid>
      <description>&lt;p&gt;&lt;em&gt;Originally published on the &lt;a href="https://antmedia.io/flutter-video-conference-app-for-ios-android-web-and-desktop/" rel="noopener noreferrer"&gt;Ant Media blog&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;By the end of this guide you'll have a &lt;strong&gt;working Flutter video conference app&lt;/strong&gt; running on your iPhone, with people joining the same call from their browsers. Because it's built with Flutter, the same code also runs on Android, the web, Windows, macOS and Linux, and the sample project and the Ant Media Flutter SDK give you everything you need to shape the app to your own product.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Flutter for a Video Conference App?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Flutter lets you write the video conference app once and run it almost everywhere.&lt;/strong&gt; One Dart codebase builds native apps for iOS and Android, a web app, and desktop apps for Windows, macOS and Linux. The Ant Media Flutter SDK handles the WebRTC connection to Ant Media Server on top of that, so the call screen you set up in this guide is the same one your Android, web and desktop users get, with around 0.5 seconds of latency.&lt;/p&gt;

&lt;p&gt;This guide uses an iPhone because iOS has the most setup steps: code signing, Developer Mode and device trust. Once the app runs there, running it on an Android phone is a single &lt;code&gt;flutter run&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Do You Need Before You Start?
&lt;/h2&gt;

&lt;p&gt;You need four things:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;A Mac&lt;/strong&gt; with the latest Xcode and the &lt;a href="https://docs.flutter.dev/get-started/install/macos" rel="noopener noreferrer"&gt;Flutter SDK&lt;/a&gt; installed&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;An iPhone&lt;/strong&gt; and a USB cable&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;An Apple ID&lt;/strong&gt;: a free account is enough&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A running Ant Media Server Enterprise Edition.&lt;/strong&gt; Conferencing is an Enterprise Edition feature; with Community Edition, the Flutter SDK supports WebRTC publishing only. If you don't have a server yet, pick one of these:

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;14-day free trial (self-hosted):&lt;/strong&gt; fill in the &lt;a href="https://antmedia.io/self-hosted-free-trial/?utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=flutter-conference" rel="noopener noreferrer"&gt;trial request form&lt;/a&gt;, get the license key by email, then follow the &lt;a href="https://docs.antmedia.io/category/installation/" rel="noopener noreferrer"&gt;installation guide&lt;/a&gt;. No credit card required.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Buy a license:&lt;/strong&gt; monthly or annual subscription, or a one-time perpetual license. See &lt;a href="https://antmedia.io/pricing/?utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=flutter-conference" rel="noopener noreferrer"&gt;Ant Media Server pricing&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Throughout this guide, &lt;code&gt;AMS_HOST&lt;/code&gt; is the server address: an IP address (for example &lt;code&gt;192.168.1.20&lt;/code&gt;) or a domain name.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Confirm the iPhone Reaches Ant Media Server
&lt;/h2&gt;

&lt;p&gt;Open Safari on the iPhone and load the Ant Media Server web panel:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://AMS_HOST:5080
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Result: the Ant Media Server page loads in Safari.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Every later step depends on this connection, so fix it first when the page does not load. When Ant Media Server runs on the Mac, use the Mac's IP address, never &lt;code&gt;localhost&lt;/code&gt;. The command &lt;code&gt;ipconfig getifaddr en0&lt;/code&gt; prints the Mac's IP address.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Clone the Flutter SampleProject
&lt;/h2&gt;

&lt;p&gt;Clone the Ant Media Flutter SDK repository and install the SampleProject dependencies. SampleProject bundles all 5 modes (Publish, Play, Peer to Peer, Conference and Data Channel) in one app.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/ant-media/WebRTC-Flutter-SDK.git
&lt;span class="nb"&gt;cd &lt;/span&gt;WebRTC-Flutter-SDK/example/SampleProject
flutter pub get
&lt;span class="nb"&gt;cd &lt;/span&gt;ios &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; pod &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;cd&lt;/span&gt; ..
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Result: the terminal prints &lt;code&gt;Pod installation complete!&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Sign the App in Xcode
&lt;/h2&gt;

&lt;p&gt;iOS installs only apps signed with an Apple ID. Open the Xcode workspace:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;open ios/Runner.xcworkspace
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In Xcode, complete these 5 actions in order:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Click the blue &lt;strong&gt;Runner&lt;/strong&gt; icon in the left sidebar.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Runner&lt;/strong&gt; under &lt;strong&gt;TARGETS&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Open the &lt;strong&gt;Signing &amp;amp; Capabilities&lt;/strong&gt; tab.&lt;/li&gt;
&lt;li&gt;Tick &lt;strong&gt;Automatically manage signing&lt;/strong&gt; and choose your Apple ID under &lt;strong&gt;Team&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Change &lt;strong&gt;Bundle Identifier&lt;/strong&gt; to a unique value, such as &lt;code&gt;com.yourname.conferencedemo&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Result: the Signing section shows no red errors.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4: Enable Developer Mode on the iPhone
&lt;/h2&gt;

&lt;p&gt;Developer Mode lets Xcode and Flutter install debug builds on the iPhone. Complete these 3 actions:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Connect the iPhone to the Mac and tap &lt;strong&gt;Trust&lt;/strong&gt; on the phone.&lt;/li&gt;
&lt;li&gt;Open &lt;strong&gt;Settings → Privacy &amp;amp; Security → Developer Mode&lt;/strong&gt; on the iPhone, turn Developer Mode on and restart. The option appears only after the phone has connected to Xcode.&lt;/li&gt;
&lt;li&gt;Run the device list command on the Mac:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;flutter devices
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Result: the iPhone appears in the device list.&lt;/strong&gt; Copy the iPhone's device ID for Step 5.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 5: Run the App on the iPhone
&lt;/h2&gt;

&lt;p&gt;Build and launch the SampleProject on the iPhone with the copied device ID:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;flutter run &lt;span class="nt"&gt;-d&lt;/span&gt; YOUR_DEVICE_ID
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;iOS blocks the first launch as an untrusted developer. Open &lt;strong&gt;Settings → General → VPN &amp;amp; Device Management&lt;/strong&gt; on the iPhone, trust your Apple ID, and run the command again.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Result: the app lists 5 modes: Play, Publish, Peer to Peer, Conference and Data Channel.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 6: Connect the App to the WebSocket URL
&lt;/h2&gt;

&lt;p&gt;Tap the &lt;strong&gt;settings icon&lt;/strong&gt; (top right) and enter the WebSocket URL of the &lt;code&gt;WebRTCAppEE&lt;/code&gt; application, the default Enterprise Edition application:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ws://AMS_HOST:5080/WebRTCAppEE/websocket
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Servers with SSL on a domain use &lt;code&gt;wss://AMS_HOST:5443/WebRTCAppEE/websocket&lt;/code&gt; instead.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F150e7m4a8fsr0eg3cukx.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F150e7m4a8fsr0eg3cukx.webp" alt="Flutter video conference app server settings screen on iPhone with the Ant Media Server WebSocket URL entered" width="600" height="1301"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Result: the server indicator turns green.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 7: Join the Conference Room from the iPhone
&lt;/h2&gt;

&lt;p&gt;Join room &lt;code&gt;demo&lt;/code&gt; from the iPhone with these 4 actions:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Tap &lt;strong&gt;Conference&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Enter a &lt;strong&gt;Stream ID&lt;/strong&gt;, for example &lt;code&gt;iphone&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Enter the &lt;strong&gt;Room ID&lt;/strong&gt; &lt;code&gt;demo&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Tap &lt;strong&gt;Connect&lt;/strong&gt;, then allow camera, microphone and local network access.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fe6gfw3ak8hm0pytc7caa.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fe6gfw3ak8hm0pytc7caa.webp" alt="Flutter conference screen on iPhone with Stream ID iphone and Room ID demo entered before connecting to Ant Media Server" width="600" height="1301"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Result: the iPhone camera appears in the first tile.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 8: Add 3 Browser Participants
&lt;/h2&gt;

&lt;p&gt;Open the multitrack conference sample page in &lt;strong&gt;three browser tabs&lt;/strong&gt; to add three more people to room &lt;code&gt;demo&lt;/code&gt;. Browsers allow camera access over &lt;code&gt;http://&lt;/code&gt; only on &lt;code&gt;localhost&lt;/code&gt;, so choose the URL that matches the server setup.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Option A — browser on the machine running Ant Media Server:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://localhost:5080/WebRTCAppEE/multitrack-conference.html?roomId=demo
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Option B — any computer, server with SSL:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://AMS_HOST:5443/WebRTCAppEE/multitrack-conference.html?roomId=demo
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Option C — any computer, server without SSL (development only):&lt;/strong&gt; add &lt;code&gt;http://AMS_HOST:5080&lt;/code&gt; to &lt;code&gt;chrome://flags/#unsafely-treat-insecure-origin-as-secure&lt;/code&gt; in Chrome, relaunch Chrome, then open &lt;code&gt;http://AMS_HOST:5080/WebRTCAppEE/multitrack-conference.html?roomId=demo&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Click &lt;strong&gt;Join Room&lt;/strong&gt; in each tab and allow the camera.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Result: the iPhone shows the three browser participants alongside its own camera.&lt;/strong&gt; Open more tabs, or join from other devices with the same Room ID, to add more people.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbz386stgln4jajry3jzp.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbz386stgln4jajry3jzp.webp" alt="Multi-party Flutter WebRTC video conference on iPhone with three browser participants in Ant Media Server room demo" width="600" height="1301"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 9: Test Controls and Adaptive Bitrate
&lt;/h2&gt;

&lt;p&gt;Test the 2 conference features on the iPhone:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Camera and microphone:&lt;/strong&gt; tap the buttons at the bottom of the screen. Each button turns red while its device is off.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Adaptive bitrate:&lt;/strong&gt; each tile shows that participant's resolution and bitrate. Open &lt;strong&gt;Settings → Developer → Network Link Conditioner&lt;/strong&gt; on the iPhone, choose the &lt;strong&gt;3G&lt;/strong&gt; profile and turn it on. The resolution and bitrate values drop, then recover when Network Link Conditioner is off.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How Do You Fix the 8 Common Setup Errors?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Each of the 8 setup errors below has a single fix&lt;/strong&gt;, covering server reachability, room mismatches, permissions, code signing, stream IDs and CocoaPods.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Problem&lt;/th&gt;
&lt;th&gt;Fix&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;The app never connects&lt;/td&gt;
&lt;td&gt;Repeat Step 1. On a physical iPhone, &lt;code&gt;localhost&lt;/code&gt; refers to the phone itself; use the server's IP address or domain.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Browser participants do not appear on the iPhone&lt;/td&gt;
&lt;td&gt;Use the same application (&lt;code&gt;WebRTCAppEE&lt;/code&gt;) and the same room on every device. Open &lt;code&gt;multitrack-conference.html&lt;/code&gt;, not &lt;code&gt;conference.html&lt;/code&gt;, because the Flutter SDK joins &lt;a href="https://antmedia.io/reveal-the-secrets-of-3-types-of-video-conference-solutions/" rel="noopener noreferrer"&gt;track-based SFU conferences&lt;/a&gt; and the browser page has to match that room type.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Browser tabs cannot access the camera&lt;/td&gt;
&lt;td&gt;The page is loaded over &lt;code&gt;http://&lt;/code&gt; from a host other than &lt;code&gt;localhost&lt;/code&gt;. Install an SSL certificate and use port 5443; the guide to &lt;a href="https://antmedia.io/enable-ssl-on-ant-media-server/" rel="noopener noreferrer"&gt;enabling SSL certificates&lt;/a&gt; covers the domain setup. Option C in Step 8 covers development-only testing.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;The app cannot reach a server on the local network&lt;/td&gt;
&lt;td&gt;The local network permission was denied. Enable the app under &lt;strong&gt;Settings → Privacy &amp;amp; Security → Local Network&lt;/strong&gt;.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Xcode: "cannot be registered to your development team"&lt;/td&gt;
&lt;td&gt;The bundle identifier is taken. Change the bundle identifier to a unique value (Step 3).&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;"This app can only be launched from Flutter tooling"&lt;/td&gt;
&lt;td&gt;Debug builds start only through &lt;code&gt;flutter run&lt;/code&gt;. Start the app from the Mac instead of tapping the icon.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;invalidStreamName&lt;/code&gt; error&lt;/td&gt;
&lt;td&gt;Use only English letters and numbers in stream IDs.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;pod install&lt;/code&gt; fails with &lt;code&gt;XCLocalSwiftPackageReference&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;CocoaPods is older than 1.16. Upgrade with &lt;code&gt;brew upgrade cocoapods&lt;/code&gt; (Homebrew installs) or &lt;code&gt;sudo gem install cocoapods&lt;/code&gt; (RubyGems installs).&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The room mismatch in row 2 is the error most specific to this tutorial: every device connects to Ant Media Server successfully, yet the iPhone and the browser tabs never see each other because the devices joined different room types.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Can You Build Next?
&lt;/h2&gt;

&lt;p&gt;Your conference app works. From here you can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Run it on other platforms.&lt;/strong&gt; Flutter builds the same code for Android, the web, Windows, macOS and Linux, so you don't rewrite the call screen for each one.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Make it interactive.&lt;/strong&gt; Send chat messages, reactions or other in-call events over &lt;a href="https://antmedia.io/how-to-use-webrtc-data-channels/" rel="noopener noreferrer"&gt;WebRTC data channels&lt;/a&gt;, without touching audio or video.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Try the other SDK modes.&lt;/strong&gt; The same sample app includes Publish &amp;amp; Play for one-to-many streaming and P2P for direct calls. The &lt;a href="https://docs.antmedia.io/category/flutter-sdk/" rel="noopener noreferrer"&gt;Flutter SDK documentation&lt;/a&gt; covers each mode.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Frequently Asked Questions
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Does Ant Media Server Community Edition support Flutter video conferencing?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;No. Flutter video conferencing requires Ant Media Server Enterprise Edition.&lt;/strong&gt; With Community Edition, the Flutter SDK supports WebRTC publishing only; WebRTC playback, conference rooms and data channels are Enterprise Edition features.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Which WebSocket URL does the Flutter app use?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Flutter app uses &lt;code&gt;ws://AMS_HOST:5080/APP_NAME/websocket&lt;/code&gt; without SSL and &lt;code&gt;wss://AMS_HOST:5443/APP_NAME/websocket&lt;/code&gt; with SSL.&lt;/strong&gt; This tutorial uses &lt;code&gt;WebRTCAppEE&lt;/code&gt; as the application name. Production apps use &lt;code&gt;wss://&lt;/code&gt; on port 5443.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why does the browser use multitrack-conference.html?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The browser uses &lt;code&gt;multitrack-conference.html&lt;/code&gt; because the Flutter SDK joins multitrack conference rooms.&lt;/strong&gt; The Flutter SDK's Room ID parameter targets WebRTC multitrack conference mode, and a browser participant appears on the iPhone only when the browser page joins the same room type.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How does adaptive quality work in the conference?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Adaptive quality lowers each stream's resolution and bitrate when bandwidth drops and raises both when bandwidth recovers.&lt;/strong&gt; The tile captions display the current values, and the relationship between &lt;a href="https://antmedia.io/video-bitrate-vs-resolution-4-key-differences-and-their-role-in-video-streaming/" rel="noopener noreferrer"&gt;bitrate and resolution&lt;/a&gt; explains why both numbers move together.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Does the conference work when participants are on different networks?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Yes. Participants on different networks connect through STUN, and participants behind restrictive firewalls require a TURN server.&lt;/strong&gt; The Flutter SDK's &lt;code&gt;connect()&lt;/code&gt; method accepts a custom ICE server list. The guide to &lt;a href="https://antmedia.io/publish-and-play-streams-behind-nat/" rel="noopener noreferrer"&gt;NAT traversal setup&lt;/a&gt; covers TURN configuration.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Does the same Flutter app run on Android?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Yes. The same SampleProject runs on Android without code changes.&lt;/strong&gt; Enable developer options and USB debugging on the Android device, connect the device, and run the project with &lt;code&gt;flutter run&lt;/code&gt; or from Android Studio.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How do you secure Flutter conference rooms?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Flutter conference rooms are secured with stream tokens passed through the &lt;code&gt;token&lt;/code&gt; parameter of &lt;code&gt;connect()&lt;/code&gt;.&lt;/strong&gt; Ant Media Server validates the token before allowing publish or play. &lt;a href="https://antmedia.io/how-to-secure-stream-with-jwt-stream-security-filter/" rel="noopener noreferrer"&gt;JWT stream security&lt;/a&gt; adds time-based expiration to each token.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is the difference between the Flutter SDK and the native iOS SDK?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Flutter SDK builds one codebase for iOS and Android; the native iOS SDK builds iOS-only apps in Swift.&lt;/strong&gt; Teams with an existing Swift app start from the &lt;a href="https://antmedia.io/build-and-try-webrtc-ios-app-for-dummies/" rel="noopener noreferrer"&gt;native iOS SDK&lt;/a&gt;. Both SDKs ship free with an Enterprise Edition license.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;You now have a multi-party Flutter video conference app running on your iPhone, with browser participants in the same room, camera and microphone controls, and video quality that adapts to the network. The same Flutter code runs on Android, the web and desktop, so the next step is taking it to the platforms your users are on. To test &lt;a href="https://antmedia.io/self-hosted-free-trial/?utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=flutter-conference" rel="noopener noreferrer"&gt;multi-party WebRTC rooms&lt;/a&gt; beyond a single server, a 14-day free trial of Ant Media Server Enterprise Edition gives you clustering, adaptive bitrate and every SDK, with no credit card required.&lt;/p&gt;

&lt;p&gt;Source code: &lt;a href="https://github.com/ant-media/WebRTC-Flutter-SDK" rel="noopener noreferrer"&gt;Ant Media Flutter SDK on GitHub&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>flutter</category>
      <category>webrtc</category>
      <category>ios</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Ant Media Server v3.0 Is Here — AI-Powered Streaming, AV1, MoQ &amp; More 🚀</title>
      <dc:creator>Malti Thakur</dc:creator>
      <pubDate>Wed, 13 May 2026 10:34:31 +0000</pubDate>
      <link>https://dev.to/antmedia_io/ant-media-server-v30-is-here-ai-powered-streaming-av1-moq-more-2aea</link>
      <guid>https://dev.to/antmedia_io/ant-media-server-v30-is-here-ai-powered-streaming-av1-moq-more-2aea</guid>
      <description>&lt;p&gt;Ant Media Server v3.0 Released 🚀&lt;/p&gt;

&lt;p&gt;Ant Media Server&lt;br&gt;
 has officially launched v3.0, bringing major upgrades for low-latency streaming and AI-powered video applications.&lt;/p&gt;

&lt;p&gt;Highlights of v3.0&lt;br&gt;
🔹 AV1 Codec Support&lt;/p&gt;

&lt;p&gt;Better compression, lower bandwidth usage, and improved video quality for modern streaming workflows.&lt;/p&gt;

&lt;p&gt;🔹 Media over QUIC (MoQ)&lt;/p&gt;

&lt;p&gt;New MoQ plugin support enables next-gen ultra-low-latency media delivery using QUIC transport.&lt;/p&gt;

&lt;p&gt;🔹 AI Plugin&lt;/p&gt;

&lt;p&gt;A powerful new AI plugin lets developers process live video streams with external Python AI modules for:&lt;/p&gt;

&lt;p&gt;Object detection&lt;br&gt;
Face recognition&lt;br&gt;
Real-time analytics&lt;br&gt;
Smart surveillance&lt;br&gt;
🔹 Improved LL-HLS &amp;amp; SRT&lt;/p&gt;

&lt;p&gt;Enhanced LL-HLS playback and better SRT re-streaming support for professional broadcasting pipelines.&lt;/p&gt;

&lt;p&gt;🔹 Security &amp;amp; Stability&lt;/p&gt;

&lt;p&gt;v3.0 also includes architecture cleanup, deprecated API removal, HSTS support, and several stability improvements.&lt;/p&gt;

&lt;p&gt;Why It Matters&lt;/p&gt;

&lt;p&gt;Ant Media Server v3.0 focuses on the future of streaming:&lt;/p&gt;

&lt;p&gt;AI-powered video workflows&lt;br&gt;
Modern low-latency protocols&lt;br&gt;
Efficient codecs&lt;br&gt;
Scalable real-time delivery&lt;/p&gt;

&lt;p&gt;A solid update for developers building WebRTC, live streaming, and real-time video applications.&lt;/p&gt;

&lt;p&gt;👉 Official release: &lt;a href="https://antmedia.io/ant-media-server-v3-0-release/" rel="noopener noreferrer"&gt;https://antmedia.io/ant-media-server-v3-0-release/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>networking</category>
      <category>news</category>
      <category>python</category>
    </item>
    <item>
      <title>Ant Media Server v2.17.0 — SSAI, Web SDK v2 &amp; Low-Latency Streaming at Scale</title>
      <dc:creator>Malti Thakur</dc:creator>
      <pubDate>Wed, 18 Mar 2026 10:35:54 +0000</pubDate>
      <link>https://dev.to/antmedia_io/ant-media-server-v2170-ssai-web-sdk-v2-low-latency-streaming-at-scale-3hkf</link>
      <guid>https://dev.to/antmedia_io/ant-media-server-v2170-ssai-web-sdk-v2-low-latency-streaming-at-scale-3hkf</guid>
      <description>&lt;p&gt;If you’re working with real-time video or live streaming, the new release of Ant Media Server v2.17.0 is worth a look.&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://antmedia.io/ant-media-server-v2-17-0/" rel="noopener noreferrer"&gt;https://antmedia.io/ant-media-server-v2-17-0/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🔥 &lt;strong&gt;What’s new?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;💰 Server-Side Ad Insertion (SSAI)&lt;br&gt;
Monetize your streams without disrupting playback — ads are stitched directly into the stream.&lt;/p&gt;

&lt;p&gt;⚙️ &lt;strong&gt;Web SDK v2&lt;/strong&gt;&lt;br&gt;
Cleaner API, better reconnection handling, and modern async/await support.&lt;/p&gt;

&lt;p&gt;⚡ Improved Low-Latency HLS (LL-HLS)&lt;br&gt;
Scale to larger audiences while keeping latency low (≈2–5s).&lt;/p&gt;

&lt;p&gt;🧠 &lt;strong&gt;Why it matters&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This update focuses on what developers actually need:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Better monetization&lt;/li&gt;
&lt;li&gt;Smoother developer experience&lt;/li&gt;
&lt;li&gt;More reliable scaling
Whether you’re building a live streaming app, webinar platform, or real-time product, these upgrades make things easier.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
    </item>
    <item>
      <title>🚀 Enhance Your Android Live Streams with DeepAR &amp; Custom Overlays Using Ant Media SDK</title>
      <dc:creator>Malti Thakur</dc:creator>
      <pubDate>Wed, 04 Mar 2026 11:06:53 +0000</pubDate>
      <link>https://dev.to/antmedia_io/enhance-your-android-live-streams-with-deepar-custom-overlays-using-ant-media-sdk-19ni</link>
      <guid>https://dev.to/antmedia_io/enhance-your-android-live-streams-with-deepar-custom-overlays-using-ant-media-sdk-19ni</guid>
      <description>&lt;p&gt;Live streaming has come a long way. Viewers today expect engaging, interactive experiences — not just a static camera feed. With the Ant Media Android SDK, you can bring Augmented Reality (AR) effects and branded overlays right into your live streams. In this post, we’ll explore how to add DeepAR effects and Custom Canvas Overlays to Android live streams using Ant Media Server’s WebRTC SDK.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔧 Getting Started&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;There are two sample activities available in the companion GitHub repo:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;DeepARActivity.java&lt;/code&gt; — for AR effects&lt;/p&gt;

&lt;p&gt;&lt;code&gt;CustomCanvasActivity.java&lt;/code&gt; — for custom overlays&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;📌 To get started:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Clone the sample:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git clone https://github.com/USAMAWIZARD/AntMedia-DeepAR-And-Overlay
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Build and run on your Android device.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Start streaming with dynamic effects or branded overlays!&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;🪄 &lt;strong&gt;Section 1: DeepAR Activity — Augmented Reality for Live Streaming&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;What is DeepAR?&lt;/p&gt;

&lt;p&gt;DeepAR is an AR SDK for real-time face tracking, filters, and visual effects. When integrated with the Ant Media Server SDK, you can stream AR-enhanced video with ultra-low latency to your viewers.&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;How It Works&lt;br&gt;
*&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The camera captures the video feed.&lt;/li&gt;
&lt;li&gt;Frames pass through the DeepAR SDK.&lt;/li&gt;
&lt;li&gt;DeepAR applies selected AR effects.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Processed frames are sent via WebRTC to the Ant Media Server and streamed live to viewers.&lt;/p&gt;

&lt;p&gt;Example effects include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Viking helmets&lt;/li&gt;
&lt;li&gt;Neon devil horns&lt;/li&gt;
&lt;li&gt;Playful AR elements&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;*&lt;em&gt;Code Snippet — Initialize DeepAR&lt;br&gt;
*&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;deepAR = new DeepAR(this);
deepAR.setLicenseKey("your-license-key");
deepAR.initialize(this, this);

initializeEffects();
setupCamera();
setupStreamingAndPreview();
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;*&lt;em&gt;WebRTC Client Setup&lt;br&gt;
*&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;webRTCClient = IWebRTCClient.builder()
    .setServerUrl("wss://test.antmedia.io/LiveApp/websocket")
    .setActivity(this)
    .setVideoSource(IWebRTCClient.StreamSource.CUSTOM)
    .setWebRTCListener(createWebRTCListener())
    .setInitiateBeforeStream(true)
    .build();
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;*&lt;em&gt;Camera Frame Processing&lt;br&gt;
*&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;imageAnalysis.setAnalyzer(ContextCompat.getMainExecutor(this), image -&amp;gt; {
    try {
        feedDeepAR(image);
    } finally {
        image.close();
    }
});
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can also cycle through effects with simple UI controls.&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;🎨 Section 2: Custom Canvas Activity — Branded Overlays&lt;br&gt;
*&lt;/em&gt;&lt;br&gt;
While AR effects are fun, sometimes streams need branding elements, such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Logos&lt;/li&gt;
&lt;li&gt;Watermarks&lt;/li&gt;
&lt;li&gt;Text captions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That’s where Custom Canvas Overlays come in.&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;Built-in Overlay Types&lt;br&gt;
*&lt;/em&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Image Overlay&lt;br&gt;
Use your own logo or branding graphic, positioned anywhere on the screen.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Text Overlay&lt;br&gt;
Show custom text like titles or hashtags, with adjustable font size and color.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;How It Works&lt;/li&gt;
&lt;li&gt;CameraX captures frames.&lt;/li&gt;
&lt;li&gt;An OpenGL ES renderer composites overlays.&lt;/li&gt;
&lt;li&gt;Final frames are streamed via WebRTC.
*&lt;em&gt;Sample Overlay Setup
*&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;imageProxyRenderer = new ImageProxyRenderer(webRTCClient, this, surfaceView, new CanvasListener() {
    @Override
    public void onSurfaceInitialized() {
        // Image overlay
        logoOverlay = new Overlay(getApplicationContext(), R.drawable.test, 0.8f, 0.8f);
        logoOverlay.setSize(0.2f);

        // Text overlay
        textOverlay = new Overlay(getApplicationContext(), "Hello", 64, Color.RED, 0f, -0.3f);
        textOverlay.setSize(0.12f);
    }
});
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;*&lt;em&gt;🚀 Why Ant Media Server?&lt;br&gt;
*&lt;/em&gt;&lt;br&gt;
Using WebRTC with Ant Media Server gives you:&lt;/p&gt;

&lt;p&gt;✔ Ultra-low latency streaming&lt;br&gt;
✔ Scalable streaming to thousands of viewers&lt;br&gt;
✔ Adaptive bitrate support&lt;br&gt;
✔ Cross-platform playback on any device or browser&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;🏁 Wrap Up&lt;br&gt;
*&lt;/em&gt;&lt;br&gt;
Whether you want fun AR effects or professional overlays, the Ant Media Android SDK gives you powerful tools to elevate your Android live streaming.&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;👉 Clone the project and start experimenting!&lt;br&gt;
*&lt;/em&gt;&lt;br&gt;
Would you like a formatted Markdown version with images and GitHub links ready for DEV.to (so it looks even better when published)? Just let me know!&lt;br&gt;
👉 Check the original tutorial here: &lt;a href="https://antmedia.io/deepar-and-custom-overlay-with-ant-media-android-sdk/" rel="noopener noreferrer"&gt;https://antmedia.io/deepar-and-custom-overlay-with-ant-media-android-sdk/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>ai</category>
      <category>livestreaming</category>
      <category>mobile</category>
    </item>
    <item>
      <title>Build a WebRTC Streaming App in Flutter Using Ant Media SDK</title>
      <dc:creator>Malti Thakur</dc:creator>
      <pubDate>Wed, 04 Feb 2026 09:34:05 +0000</pubDate>
      <link>https://dev.to/antmedia_io/build-a-webrtc-streaming-app-in-flutter-using-ant-media-sdk-562p</link>
      <guid>https://dev.to/antmedia_io/build-a-webrtc-streaming-app-in-flutter-using-ant-media-sdk-562p</guid>
      <description>&lt;p&gt;WebRTC enables real-time, ultra-low latency audio and video streaming. While it’s widely used on the web, integrating WebRTC into Flutter applications can be challenging without the right tools.&lt;/p&gt;

&lt;p&gt;In this post, I’ll walk you through how to use the Ant Media WebRTC Flutter SDK to publish and play live streams in a Flutter app with minimal setup.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What you’ll learn&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How to create a Flutter project&lt;/li&gt;
&lt;li&gt;How to add Ant Media’s WebRTC Flutter SDK&lt;/li&gt;
&lt;li&gt;How to publish a live WebRTC stream&lt;/li&gt;
&lt;li&gt;How to play the stream in your app&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Why Ant Media WebRTC Flutter SDK?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cross-platform support (Web &amp;amp; Mobile)&lt;/li&gt;
&lt;li&gt;Ultra-low latency streaming&lt;/li&gt;
&lt;li&gt;Easy API integration&lt;/li&gt;
&lt;li&gt;Production-ready WebRTC infrastructure
Getting Started&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;First, create a Flutter project and make sure Flutter Web is enabled.&lt;/p&gt;

&lt;p&gt;Then add the SDK to your &lt;code&gt;pubspec.yaml&lt;/code&gt;:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;dependencies:&lt;br&gt;
  ant_media_flutter: ^1.4.1&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Run:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;flutter pub get&lt;br&gt;
&lt;/code&gt;&lt;br&gt;
&lt;strong&gt;Publish a Stream&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Using the SDK, you can connect to Ant Media Server and start publishing a WebRTC stream by setting the connection type to Publish.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Play a Stream&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To play the live stream, simply change the connection type to Play and run the app again.&lt;/p&gt;

&lt;p&gt;That’s it 🎉&lt;br&gt;
With just a few steps, you can build real-time video streaming applications such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Live events&lt;/li&gt;
&lt;li&gt;Online education platforms&lt;/li&gt;
&lt;li&gt;Video conferencing apps&lt;/li&gt;
&lt;li&gt;Interactive streaming solutions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 Full tutorial:&lt;br&gt;
&lt;a href="https://antmedia.io/webrtc-flutter-sdk/" rel="noopener noreferrer"&gt;https://antmedia.io/webrtc-flutter-sdk/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>flutter</category>
      <category>webrtc</category>
      <category>livestreaming</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Join the Ant Media AI Hackathon | Feb 25–28, 2026</title>
      <dc:creator>Malti Thakur</dc:creator>
      <pubDate>Fri, 16 Jan 2026 11:49:44 +0000</pubDate>
      <link>https://dev.to/antmedia_io/join-the-ant-media-ai-hackathon-feb-25-28-2026-d54</link>
      <guid>https://dev.to/antmedia_io/join-the-ant-media-ai-hackathon-feb-25-28-2026-d54</guid>
      <description>&lt;div class="ltag__link"&gt;
  &lt;a href="/malti_thakur_fc70e73f4dde" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3566448%2Ff43902aa-5776-4e36-a6aa-418b591d0ecc.jpg" alt="malti_thakur_fc70e73f4dde"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/malti_thakur_fc70e73f4dde/ant-media-ai-hackathon-build-ai-powered-real-time-streaming-apps-2j5b" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Ant Media AI Hackathon: Build AI-Powered Real-Time Streaming Apps&lt;/h2&gt;
      &lt;h3&gt;Malti Thakur ・ Jan 16&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#hackathon&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#ai&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#streaming&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#webrtc&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>Malti Thakur</dc:creator>
      <pubDate>Fri, 16 Jan 2026 11:47:54 +0000</pubDate>
      <link>https://dev.to/malti_thakur_fc70e73f4dde/-bje</link>
      <guid>https://dev.to/malti_thakur_fc70e73f4dde/-bje</guid>
      <description>&lt;div class="ltag__link"&gt;
  &lt;a href="/malti_thakur_fc70e73f4dde" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3566448%2Ff43902aa-5776-4e36-a6aa-418b591d0ecc.jpg" alt="malti_thakur_fc70e73f4dde"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/malti_thakur_fc70e73f4dde/ant-media-ai-hackathon-build-ai-powered-real-time-streaming-apps-2j5b" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Ant Media AI Hackathon: Build AI-Powered Real-Time Streaming Apps&lt;/h2&gt;
      &lt;h3&gt;Malti Thakur ・ Jan 16&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#hackathon&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#ai&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#streaming&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#webrtc&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>hackathon</category>
      <category>ai</category>
      <category>streaming</category>
      <category>webrtc</category>
    </item>
    <item>
      <title>Ant Media AI Hackathon: Build AI-Powered Real-Time Streaming Apps</title>
      <dc:creator>Malti Thakur</dc:creator>
      <pubDate>Fri, 16 Jan 2026 10:58:38 +0000</pubDate>
      <link>https://dev.to/malti_thakur_fc70e73f4dde/ant-media-ai-hackathon-build-ai-powered-real-time-streaming-apps-2j5b</link>
      <guid>https://dev.to/malti_thakur_fc70e73f4dde/ant-media-ai-hackathon-build-ai-powered-real-time-streaming-apps-2j5b</guid>
      <description>&lt;p&gt;The Ant Media AI Hackathon is an online hackathon focused on building &lt;br&gt;
AI-powered real-time streaming solutions using Ant Media Server.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftaeadgdrdgbppwxh78xo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftaeadgdrdgbppwxh78xo.png" alt=" " width="800" height="232"&gt;&lt;/a&gt;&lt;br&gt;
📅 Hackathon Dates: Feb 25–28, 2026&lt;br&gt;&lt;br&gt;
🗓 Registration Deadline: Jan 25, 2026&lt;br&gt;&lt;br&gt;
🏆 Prizes: $5,000 | $3,000 | $2,000&lt;br&gt;&lt;br&gt;
👥 Participation: Individuals or teams (up to 5 members)&lt;/p&gt;

&lt;p&gt;Participants can build projects such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Speech-to-text or translation for live streams&lt;/li&gt;
&lt;li&gt;Real-time video effects&lt;/li&gt;
&lt;li&gt;AI-driven media generation&lt;/li&gt;
&lt;li&gt;Detection, analytics, or AR/VR streaming features&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 Learn more and register here:&lt;br&gt;
&lt;a href="https://antmedia.io/ai-hackathon/" rel="noopener noreferrer"&gt;https://antmedia.io/ai-hackathon/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>hackathon</category>
      <category>ai</category>
      <category>streaming</category>
      <category>webrtc</category>
    </item>
    <item>
      <title>Deploy Ant Media Server on Amazon Web Services Marketplace in Minutes</title>
      <dc:creator>Malti Thakur</dc:creator>
      <pubDate>Wed, 10 Dec 2025 07:20:20 +0000</pubDate>
      <link>https://dev.to/malti_thakur_fc70e73f4dde/deploy-ant-media-server-on-amazon-web-services-marketplace-in-minutes-5b5j</link>
      <guid>https://dev.to/malti_thakur_fc70e73f4dde/deploy-ant-media-server-on-amazon-web-services-marketplace-in-minutes-5b5j</guid>
      <description>&lt;p&gt;If you need low-latency live streaming for events, webinars, gaming, auctions or interactive apps, Ant Media Server on AWS is one of the fastest and easiest ways to get started.&lt;/p&gt;

&lt;p&gt;From the AWS Marketplace, you can deploy a fully working streaming server in just a few clicks — no manual installation and no complex setup.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why Ant Media on AWS?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sub-second WebRTC latency&lt;/li&gt;
&lt;li&gt;Auto-Scaling for large audiences&lt;/li&gt;
&lt;li&gt;Global coverage with multiple AWS regions&lt;/li&gt;
&lt;li&gt;Pay-as-you-go pricing&lt;/li&gt;
&lt;li&gt;Simple deployment from AWS Marketplace
It’s perfect for real-time applications where delay matters.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Deployment Options&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You can deploy Ant Media on AWS in several ways depending on your needs:&lt;/p&gt;

&lt;p&gt;1️⃣ Fully Managed AMI (Fastest)&lt;/p&gt;

&lt;p&gt;Best for production streaming when you want everything handled.&lt;/p&gt;

&lt;p&gt;👉 Launch from Marketplace:&lt;br&gt;
&lt;a href="https://aws.amazon.com/marketplace/pp/prodview-gq2v7oq22uvos" rel="noopener noreferrer"&gt;https://aws.amazon.com/marketplace/pp/prodview-gq2v7oq22uvos&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2️⃣ CloudFormation (Infrastructure-as-Code)&lt;/p&gt;

&lt;p&gt;Ideal for DevOps teams who need custom VPC, subnets, scaling, etc.&lt;/p&gt;

&lt;p&gt;Deployment guide:&lt;br&gt;
&lt;a href="https://docs.antmedia.io/guides/clustering-and-scaling/aws/aws-cloudformation/scale-with-aws-cloudformation/" rel="noopener noreferrer"&gt;https://docs.antmedia.io/guides/clustering-and-scaling/aws/aws-cloudformation/scale-with-aws-cloudformation/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3️⃣ Container Deployments (ECS / EKS)&lt;/p&gt;

&lt;p&gt;For dockerized environments and CI/CD pipelines.&lt;/p&gt;

&lt;p&gt;👉 Container listing:&lt;br&gt;
&lt;a href="https://aws.amazon.com/marketplace/pp/prodview-w5vfsfcf3puju" rel="noopener noreferrer"&gt;https://aws.amazon.com/marketplace/pp/prodview-w5vfsfcf3puju&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4️⃣ Simple EC2 AMI&lt;/p&gt;

&lt;p&gt;Good for testing, labs, quick demos.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What You Need Before Launch&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Active AWS account&lt;/li&gt;
&lt;li&gt;Subscribe to Ant Media from AWS Marketplace&lt;/li&gt;
&lt;li&gt;Optional: domain + SSL for production security&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Tips for Smooth Deployment&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Choose CPU or GPU optimized instances if you expect transcoding or large audiences.&lt;/li&gt;
&lt;li&gt;Store recordings in S3, not on EC2.&lt;/li&gt;
&lt;li&gt;Secure ports and enable HTTPS for WebRTC.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Why This Matters&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;With Ant Media + AWS, you can go from zero to streaming in minutes — and scale to thousands or millions of viewers when needed. Whether it’s a virtual event, online class, auction platform, or real-time collaboration app, low latency makes all the difference.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Useful Links&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ant Media Website: &lt;a href="https://antmedia.io" rel="noopener noreferrer"&gt;https://antmedia.io&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Marketplace AMI: &lt;a href="https://aws.amazon.com/marketplace/pp/prodview-gq2v7oq22uvos" rel="noopener noreferrer"&gt;https://aws.amazon.com/marketplace/pp/prodview-gq2v7oq22uvos&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Container listing: &lt;a href="https://aws.amazon.com/marketplace/pp/prodview-w5vfsfcf3puju" rel="noopener noreferrer"&gt;https://aws.amazon.com/marketplace/pp/prodview-w5vfsfcf3puju&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Documentation &amp;amp; Guides: &lt;a href="https://docs.antmedia.io" rel="noopener noreferrer"&gt;https://docs.antmedia.io&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>antmedia</category>
      <category>streaming</category>
      <category>webdev</category>
      <category>webrtc</category>
    </item>
  </channel>
</rss>
