<?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: Akeel Almas</title>
    <description>The latest articles on DEV Community by Akeel Almas (@akeel_almas_9a2ada3db4257).</description>
    <link>https://dev.to/akeel_almas_9a2ada3db4257</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%2F3344818%2F3d3da67a-ec06-4857-82e4-4834d486abaa.jpg</url>
      <title>DEV Community: Akeel Almas</title>
      <link>https://dev.to/akeel_almas_9a2ada3db4257</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/akeel_almas_9a2ada3db4257"/>
    <language>en</language>
    <item>
      <title>MoQ Support Is Now Available in Ant Media Server</title>
      <dc:creator>Akeel Almas</dc:creator>
      <pubDate>Wed, 20 May 2026 10:33:20 +0000</pubDate>
      <link>https://dev.to/akeel_almas_9a2ada3db4257/moq-support-is-now-available-in-ant-media-server-22li</link>
      <guid>https://dev.to/akeel_almas_9a2ada3db4257/moq-support-is-now-available-in-ant-media-server-22li</guid>
      <description>&lt;p&gt;Home&lt;br&gt;
›&lt;br&gt;
Announcement&lt;br&gt;
›&lt;br&gt;
MoQ Support Is Now Available in Ant Media Server&lt;br&gt;
moq-hero&lt;/p&gt;

&lt;p&gt;Petar Ostojic&lt;br&gt;
Author&lt;br&gt;
Apr 17, 2026&lt;br&gt;
12 min read&lt;br&gt;
We are excited to announce that MoQ support is now available in Ant Media Server. Media over QUIC (MoQ) is one of the most interesting developments in live streaming right now, and we wanted to get early support out so you can start experimenting with it alongside us.&lt;/p&gt;

&lt;p&gt;In this post, we walk through what the AMS MoQ plugin offers, how it works under the hood, and everything you need to know to get started.&lt;/p&gt;

&lt;p&gt;moq-hero&lt;br&gt;
Table of Contents&lt;br&gt;
What Is MoQ?&lt;br&gt;
Introducing MoQ Support in Ant Media Server&lt;br&gt;
MoQ vs. WebRTC vs. HLS&lt;br&gt;
moq-lite vs. Full IETF moq-transport: Where Things Stand&lt;br&gt;
How It Works: Architecture Overview&lt;br&gt;
Built-In Browser Player and Publisher&lt;br&gt;
Supported Codecs&lt;br&gt;
Getting Started&lt;br&gt;
Playing Streams via MoQ&lt;br&gt;
Publishing Streams into AMS via MoQ&lt;br&gt;
Configuration&lt;br&gt;
Frequently Asked Questions&lt;br&gt;
Conclusion&lt;br&gt;
What Is MoQ?&lt;br&gt;
Media over QUIC (MoQ) is an emerging live media protocol built on QUIC and WebTransport. It is being standardized by the IETF working group and has backing from Google, Cisco, Akamai, Cloudflare, and others, which gives a clear signal of where the industry is heading.&lt;/p&gt;

&lt;p&gt;At its core, MoQ is built on QUIC, a modern transport protocol that handles multiple streams of data independently over a single connection. This means a delayed video frame will not hold up the ones behind it, which is a known limitation of older TCP-based delivery used by protocols like HLS. On top of QUIC, MoQ uses WebTransport to make this accessible directly from the browser, with no plugins or native apps required. The end result is latency in the range of WebRTC, with a delivery model that scales through a CDN just like HLS does.&lt;/p&gt;

&lt;p&gt;If you want a deeper technical comparison, read our article WebRTC vs. MoQ — Two Protocols, One Platform Completely Built for Both. In this post, we focus on the practical: what the AMS MoQ plugin does and how to use it.&lt;/p&gt;

&lt;p&gt;Introducing MoQ Support in Ant Media Server&lt;br&gt;
Heads up&lt;br&gt;
MoQ is still an evolving protocol. The IETF standard is actively being developed, and the current plugin is based on moq-lite, a pragmatic and deployable subset of the specification. We are continuously monitoring the standard’s progress and will ship updates as it matures. We recommend keeping that in mind when planning your integration.&lt;br&gt;
The AMS MoQ plugin adds bidirectional MoQ support to any Ant Media Server deployment:&lt;/p&gt;

&lt;p&gt;Egress&lt;br&gt;
AMS → Browser Viewer&lt;br&gt;
Live streams on AMS are automatically published as MoQ broadcasts. Browser clients connect via WebTransport and receive video with sub-second latency. No plugins, WebRTC peer connections, or SFU infrastructure required.&lt;br&gt;
Ingest&lt;br&gt;
External MoQ Relay → AMS&lt;br&gt;
AMS can pull streams from any moq-compatible relay and treat them as regular AMS broadcasts, available for recording, transcoding, or re-distribution via WebRTC, HLS, or RTMP.&lt;br&gt;
The plugin ships with an embedded moq-lite-relay (running on port 4443), so there is no extra infrastructure to stand up for a first test. If you already have a moq-lite-compatible relay running, whether self-hosted or a third-party service like Cloudflare’s MoQ CDN edge, you can point the plugin at that instead. A ready-to-use browser player and publisher page are also included out of the box.&lt;/p&gt;

&lt;p&gt;MoQ vs. WebRTC vs. HLS&lt;br&gt;
Feature MoQ WebRTC  HLS / DASH&lt;br&gt;
Origin  ~2022–present, IETF draft 2011, W3C &amp;amp; IETF standard   2009, RFC 8216+&lt;br&gt;
Latency Sub-second (configurable) Flexible  ~0.2–0.5s Ultra-low   3–30 seconds&lt;br&gt;
Architecture    Pub/Sub + CDN relay SFU CDN / origin&lt;br&gt;
CDN Cacheable   Yes No  Yes&lt;br&gt;
Browser Support Chrome, Edge Limited    All major browsers Universal    All major browsers Universal&lt;br&gt;
Transport   QUIC / WebTransport UDP / DTLS-SRTP TCP / HTTP&lt;br&gt;
moq-lite vs. Full IETF moq-transport: Where Things Stand&lt;br&gt;
It is worth being precise about what “MoQ support” means today, because there are two distinct layers to understand.&lt;/p&gt;

&lt;p&gt;moq-lite&lt;br&gt;
Deployable Today&lt;br&gt;
A deliberately simplified and forwards-compatible subset of the IETF draft. The philosophy: rather than waiting years for a finalized standard, ship something real today and stay compatible as the spec evolves. moq-lite already interoperates with moq-transport CDNs such as Cloudflare’s MoQ edge.&lt;br&gt;
This is what the AMS MoQ plugin is based on.&lt;br&gt;
IETF moq-transport&lt;br&gt;
Full Specification (In Progress)&lt;br&gt;
Covers full session negotiation, complex track namespacing, subscribe and announce filtering, priority ordering, and delivery preferences. Still an active draft, so it continues to change. Support for moqtail.dev is on our roadmap as it matures.&lt;br&gt;
Think of it like early HTTP: the core ideas were solid and deployable long before the formal RFCs were complete. moq-lite takes the same approach for live media.&lt;br&gt;
How It Works: Architecture Overview&lt;br&gt;
The plugin integrates at the muxer level inside AMS. When a broadcast starts, a MoQMuxer is attached to the stream’s mux pipeline: one for the source quality and one for each adaptive rendition. Encoded frames flow from the encoder directly into the muxer, which forwards them to the embedded relay for fan-out over WebTransport.&lt;/p&gt;

&lt;p&gt;Egress (AMS → Browser)&lt;br&gt;
ams-moq-to-browser&lt;br&gt;
Ingest (Browser → AMS)&lt;br&gt;
WebBrowserToAMS&lt;br&gt;
This architecture keeps AMS at the center. Whether you are sending video out to MoQ viewers or pulling video in from a MoQ source, the stream is fully integrated into the AMS ecosystem. The REST API, management console, recording, and all other AMS features apply as normal.&lt;/p&gt;

&lt;p&gt;Built-In Browser Player and Publisher&lt;br&gt;
The plugin ships two ready-to-use HTML pages built on the moq-lite TypeScript web components.&lt;/p&gt;

&lt;p&gt;AMS MoQ Player&lt;br&gt;
Browser Compatibility Note&lt;br&gt;
The MoQ player currently works on Chromium-based browsers only (Chrome, Edge, Brave, etc.). Safari does not support WebTransport. Firefox has partial WebTransport support but is currently unstable for MoQ playback. We expect this to improve as browser vendors continue adopting the WebTransport specification.&lt;br&gt;
The player page (play.html) is built on the  web component and requires no JavaScript beyond what is bundled. Key capabilities:&lt;/p&gt;

&lt;p&gt;Dual Render Mode&lt;br&gt;
Auto-selects between WebCodecs (canvas-based, lowest latency) and MSE (video element, broader compatibility), or can be forced manually.&lt;br&gt;
Relay URL Probing&lt;br&gt;
Automatically tries multiple relay URL candidates and connects to the first that responds. Useful when the relay is on a different port or behind a proxy.&lt;br&gt;
Live Debug Panel&lt;br&gt;
Real-time FPS, buffer size, stall events, latency, codec in use, and video bytes received. Invaluable during integration and testing.&lt;br&gt;
AMS MoQ Publisher&lt;br&gt;
The publisher page (publish.html) is built on the  web component and allows browser-based publishing directly to the MoQ relay:&lt;/p&gt;

&lt;p&gt;Camera &amp;amp; Screen Capture&lt;br&gt;
Capture from camera or screen share with a single click.&lt;br&gt;
Audio &amp;amp; Video Controls&lt;br&gt;
Toggle audio mute and video off independently.&lt;br&gt;
Relay URL Probing&lt;br&gt;
Live relay URL probing with per-candidate status indicators.&lt;br&gt;
Supported Codecs&lt;br&gt;
Track   Supported Codecs&lt;br&gt;
Video   H.264 (AVC) H.265 (HEVC)&lt;br&gt;
Audio   AAC Opus&lt;br&gt;
H.264 streams use Annex B SPS/PPS extraction to ensure correct decoder initialization on the receiver side. Codecs outside this list (such as VP8) are not yet supported. Expect this to expand as the MoQ ecosystem matures.&lt;/p&gt;

&lt;p&gt;Getting Started&lt;br&gt;
Requirements: Ant Media Server 3.0.0 or later, Linux x86_64, sudo access.&lt;/p&gt;

&lt;p&gt;Download MoQPlugin-release.zip and upload it to your server, then run:&lt;/p&gt;

&lt;h1&gt;
  
  
  1. Unzip the release
&lt;/h1&gt;

&lt;p&gt;unzip MoQPlugin-release.zip&lt;/p&gt;

&lt;h1&gt;
  
  
  2. Install the plugin and relay binaries
&lt;/h1&gt;

&lt;p&gt;cd MoQ-Plugin&lt;br&gt;
sudo chmod +x install-moq-plugin.sh&lt;br&gt;
sudo ./install-moq-plugin.sh&lt;/p&gt;

&lt;h1&gt;
  
  
  3. Copy the MoQ player pages to your AMS application
&lt;/h1&gt;

&lt;p&gt;sudo mkdir -p /usr/local/antmedia/webapps/live/moq&lt;br&gt;
sudo cp -r moq-ams-player-build/* /usr/local/antmedia/webapps/live/moq&lt;/p&gt;

&lt;h1&gt;
  
  
  4. Restart AMS
&lt;/h1&gt;

&lt;p&gt;sudo service antmedia restart&lt;br&gt;
The install script copies MoQPlugin.jar to the plugins directory and extracts the relay binaries. After restart, the play.html and publish.html pages will be available at &lt;a href="https://your-server:5443/live/moq/play.html" rel="noopener noreferrer"&gt;https://your-server:5443/live/moq/play.html&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Once the server is running, open the publish and play pages in your browser, that’s all it takes!&lt;/p&gt;

&lt;p&gt;MoQ Publish Page&lt;br&gt;
publish.html — broadcast over MoQ&lt;br&gt;
MoQ Play Page&lt;br&gt;
play.html — watch with sub-second latency&lt;br&gt;
The standalone MoQ player pages are temporary. MoQ playback and publishing will be built directly into the main Ant Media Server web player in a future release.&lt;br&gt;
A couple of things to check before you open the pages:&lt;br&gt;
HTTPS required on real servers. MoQ uses WebTransport, and browsers only allow it over HTTPS. If your server is on a real domain or IP address, it needs a valid SSL certificate. Localhost is the one exception browsers allow without SSL.&lt;br&gt;
Open port 4443. The embedded MoQ relay listens on UDP/TCP port 4443. If your server is behind a firewall, make sure that port is open to inbound traffic or the browser won’t be able to reach the relay.&lt;br&gt;
Playing Streams via MoQ&lt;br&gt;
Once a stream is live on AMS, viewers can connect directly via the built-in MoQ player or any moq compatible client. Each quality level is available as a separate named track:&lt;/p&gt;

&lt;p&gt;Source quality:   moq://ams-server-ip:4443/streamId/source&lt;br&gt;
720p rendition:  moq://ams-server-ip:4443/streamId/720p&lt;br&gt;
When the player opens, you will see a list of available tracks for the stream. The source track is the original quality as published into AMS. Named renditions like 720p or 480p are adaptive bitrate versions that AMS transcoded on the way through.&lt;/p&gt;

&lt;p&gt;About the “publish” track&lt;br&gt;
If you see a publish track in the list, the stream was sent to the relay directly from the browser publisher, without passing through AMS at all. Selecting it plays the stream straight from the MoQ relay, skipping AMS encoding, transcoding, and recording entirely. It is the most direct path with the lowest overhead, though that also means no ABR renditions, no recording, and none of AMS’s pipeline features.&lt;br&gt;
The browser player connects to the relay via WebTransport and subscribes to the preferred track. The relay handles all fan-out, so a single stream can support any number of concurrent viewers without the per-connection overhead that makes WebRTC challenging at scale.&lt;/p&gt;

&lt;p&gt;Publishing Streams into AMS via MoQ&lt;br&gt;
AMS also accepts incoming MoQ streams. Beyond the built-in browser publisher, any moq-compatible client can publish directly to the relay and AMS will pick it up as a regular broadcast. Two ways to do it:&lt;/p&gt;

&lt;p&gt;Browser&lt;br&gt;
Built-in Publisher Page&lt;br&gt;
Open publish.html from the plugin, enter your relay address, and start publishing from your camera or screen. No setup required.&lt;br&gt;
Any MoQ Client&lt;br&gt;
Direct Relay Publish&lt;br&gt;
Publish directly to the relay URL using any moq-lite-compatible tool:&lt;br&gt;
moq://relay-ip:4443/moq/streamId/publish&lt;br&gt;
Once received, the stream becomes a standard AMS broadcast, ready for recording, transcoding, or re-distribution over WebRTC, HLS, or RTMP.&lt;/p&gt;

&lt;p&gt;Configuration&lt;br&gt;
Configuration is optional. The plugin works out of the box with the defaults shown below. To override any value, go to your application’s Settings &amp;gt; Advanced in the AMS web panel and add your MoQ settings nested inside customSettings, under the plugin.moq key:&lt;/p&gt;

&lt;p&gt;{&lt;br&gt;
  "customSettings": {&lt;br&gt;
    "plugin.moq": {&lt;br&gt;
      "useEmbeddedRelay":     true,&lt;br&gt;
      "ingestEnabled":        true,&lt;br&gt;
      "externalRelayUrl":     "&lt;a href="https://relay.example.com:9000/moq" rel="noopener noreferrer"&gt;https://relay.example.com:9000/moq&lt;/a&gt;",&lt;br&gt;
      "ingestPollIntervalMs": 2000&lt;br&gt;
    }&lt;br&gt;
  }&lt;br&gt;
}&lt;br&gt;
Setting Default Description&lt;br&gt;
useEmbeddedRelay    true    Use the bundled moq-relay on port 4443. Set to false to use an external relay.&lt;br&gt;
ingestEnabled   true    Enable MoQ ingest via announce polling. Set to false if AMS is publish-only.&lt;br&gt;
externalRelayUrl    localhost:4443  URL of the external relay. Only used when useEmbeddedRelay is false.&lt;br&gt;
ingestPollIntervalMs    2000    How often (in ms) to poll the relay’s /announced endpoint for new streams.&lt;br&gt;
When useEmbeddedRelay is true, the relay URL resolves automatically to &lt;a href="http://localhost:4443/moq" rel="noopener noreferrer"&gt;http://localhost:4443/moq&lt;/a&gt; and the external URL setting is ignored.&lt;/p&gt;

&lt;p&gt;Frequently Asked Questions&lt;br&gt;
Is the MoQ plugin ready for production use?&lt;br&gt;
The plugin is functional and actively maintained. That said, MoQ as a protocol is still being standardized, so your production readiness depends on your tolerance for an evolving spec. If you are planning a serious integration, we recommend starting with a staging environment and reaching out to us to discuss your use case.&lt;/p&gt;

&lt;p&gt;Which browsers support MoQ playback?&lt;br&gt;
MoQ playback requires WebTransport. Chrome and Edge have stable support. Safari does not currently support WebTransport at all. Firefox has partial WebTransport support but is unstable for MoQ playback. We expect browser coverage to improve as the WebTransport specification matures.&lt;/p&gt;

&lt;p&gt;Can I use my own external MoQ relay instead of the embedded one?&lt;br&gt;
Yes. Set useEmbeddedRelay: false in the plugin configuration and provide your relay URL via externalRelayUrl. Any moq-compatible relay works, including self-hosted deployments or Cloudflare’s MoQ CDN offering.&lt;/p&gt;

&lt;p&gt;Does MoQ replace WebRTC in Ant Media Server?&lt;br&gt;
No, they serve complementary roles. WebRTC remains the right choice for interactive, two-way communication such as video conferencing or ultra-low-latency broadcast (under 200ms). MoQ targets one-to-many broadcast scenarios where you need both sub-second latency and CDN-scale delivery at the same time. Both protocols are supported by AMS and can run side by side on the same server. For a detailed breakdown, see our article WebRTC vs. MoQ — Two Protocols, One Platform Completely Built for Both.&lt;/p&gt;

&lt;p&gt;What is moqtail.dev, and when will AMS support it?&lt;br&gt;
moqtail.dev represents the next step in the MoQ ecosystem as the IETF standard matures. We are monitoring its development closely. Support will be added to the AMS MoQ plugin as the library stabilizes and it becomes practical to integrate.&lt;/p&gt;

&lt;p&gt;Conclusion&lt;br&gt;
The AMS MoQ plugin is an early but functional step toward the next generation of live streaming infrastructure. By building on moq-lite today, Ant Media Server gives developers a hands-on way to explore what MoQ brings to the table: sub-second latency, CDN-scale fan-out, and a modern browser stack built on WebTransport and WebCodecs. No need to wait for the IETF to wrap up the spec.&lt;/p&gt;

&lt;p&gt;We will keep shipping updates as moq-lite evolves and as moqtail.dev support becomes practical to integrate. If you are experimenting with the MoQ plugin or building something on top of it, tell us about it on our community forum or reach out directly.&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>backend</category>
      <category>networking</category>
      <category>news</category>
    </item>
    <item>
      <title>Ant Media Server v3.0</title>
      <dc:creator>Akeel Almas</dc:creator>
      <pubDate>Wed, 13 May 2026 10:20:39 +0000</pubDate>
      <link>https://dev.to/akeel_almas_9a2ada3db4257/ant-media-server-v30-1fja</link>
      <guid>https://dev.to/akeel_almas_9a2ada3db4257/ant-media-server-v30-1fja</guid>
      <description>&lt;p&gt;We’re excited to introduce Ant Media Server v3.0 🚀&lt;/p&gt;

&lt;p&gt;This is not just another release. It’s a major step forward that lays the groundwork for the next generation of Ant Media Server (AMS).&lt;/p&gt;

&lt;p&gt;Compared to the last version (2.17), this release focuses on three main areas:&lt;/p&gt;

&lt;p&gt;Cleaning up the code base for the future&lt;br&gt;
Adding new capabilities and plugins for modern streaming workflows&lt;br&gt;
Improving security and stability&lt;br&gt;
Table of Contents&lt;br&gt;
Getting Ready for the Future&lt;br&gt;
New Streaming Capabilities&lt;br&gt;
New Plugins&lt;br&gt;
MoQ Plugin&lt;br&gt;
AI Plugin&lt;br&gt;
Partner Plugins&lt;br&gt;
Security &amp;amp; Stability Improvements&lt;br&gt;
Conclusion&lt;br&gt;
Getting Ready for the Future&lt;br&gt;
With v3.0, we removed many deprecated methods and outdated structures to simplify the code base. For API, deprecated methods have already been replaced by more powerful ones. In this release the old and deprecated methods are completely removed.&lt;/p&gt;

&lt;p&gt;This makes AMS easier to maintain, easier to extend with plugins, and more stable for long-term development.&lt;/p&gt;

&lt;p&gt;Ant Media Server Deprecated Feature Removals&lt;br&gt;
Ant Media Server Deprecated Feature Removals&lt;br&gt;
New Streaming Capabilities&lt;br&gt;
With v3.0 we have some new features on streaming. Some of these extensions are involved in the code base. Also some new features are implemented in new Plugins as an extension of Ant Media Server.&lt;/p&gt;

&lt;p&gt;Let’s start with the new features developed in the code base.&lt;/p&gt;

&lt;p&gt;Introducing AV1 Codec: AV1 codec is one of the new features now supported in AMS. AV1 codec promises better compression, lower bandwidth usage, and more future-proof streaming.&lt;br&gt;
Re-streaming via SRT: SRT workflows are improved with re-stream support. This helps distribute streams across multiple endpoints not only with RTMP and also through SRT.&lt;br&gt;
Improvement on VoD Streaming: We also improved Video-on-Demand (VOD) streaming. You can now add metadata when uploading VOD via REST and search VODs using metadata. This makes content management more flexible.&lt;br&gt;
Enhancements on LL-HLS: Low-Latency HLS continues to improve with LL-HLS cluster play support. Also we are happy to include that Ant Media Server web player can now play LL-HLS streams. This means you won’t need any other player while switching between play protocols.&lt;br&gt;
Security Improvements: We also had additions for security improvements, including the Strict-Transport-Security (HSTS) header and fixes for known vulnerabilities.&lt;br&gt;
You can reach the whole list of the new implementations in v3.0 here.&lt;/p&gt;

&lt;p&gt;New Plugins&lt;br&gt;
Beside the features listed above, we also introduced great features with the new plugins to extend streaming capabilities. As a good news we have some plugins from Ant Media Server community. Also more plugins are on the way and coming soon.&lt;/p&gt;

&lt;p&gt;MoQ Plugin&lt;br&gt;
Media over QUIC (MoQ) is a promising new real-time streaming protocol. Ant Media Server now supports it with MoQ plugin. You can read this blogpost to understand how to install it on AMS and use it.&lt;/p&gt;

&lt;p&gt;moq-hero&lt;br&gt;
AI Plugin&lt;br&gt;
This plugin acts as a bridge between Ant Media Server and mainly Python modules that process video frames. It streams video frames from an ongoing stream to external Python modules, enabling use cases like object detection and other AI-based processing to be handled by external AI workflows.&lt;/p&gt;

&lt;p&gt;Ant Media Server and AI&lt;br&gt;
Ant Media Server and AI&lt;br&gt;
Partner Plugins&lt;br&gt;
Besides these plugins we have new plugins listed in Ant Media Server marketplace which are created by Partners.&lt;/p&gt;

&lt;p&gt;Scribe: Automatic subtitling for live video streams using speech-to-text technology. More details are here.&lt;/p&gt;

&lt;p&gt;Scotty: Easy Server-Side Ad Insertion to seamlessly deliver ads within live and on-demand streams without interrupting playback. More details are here.&lt;/p&gt;

&lt;p&gt;Security &amp;amp; Stability Improvements&lt;br&gt;
Indeed, we haven’t inserted new features only. Besides them we focused heavily on making the system more stable and predictable. This release also includes various bug fixes and security improvements. You can reach them here.&lt;/p&gt;

&lt;p&gt;Conclusion&lt;br&gt;
As we announced before we plan to release a new version each quarter. This time it was a major release v3.0. With v3.0, we continue improving the Ant Media Server experience by simplifying the code base, adding support for new codecs and protocols, improving APIs and SDKs, and expanding the plugin ecosystem. We will come with a new minor release with some new good improvements. Please keep following us.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>MoQ Support Is Now Available in Ant Media Server</title>
      <dc:creator>Akeel Almas</dc:creator>
      <pubDate>Wed, 29 Apr 2026 10:19:15 +0000</pubDate>
      <link>https://dev.to/akeel_almas_9a2ada3db4257/moq-support-is-now-available-in-ant-media-server-4l8i</link>
      <guid>https://dev.to/akeel_almas_9a2ada3db4257/moq-support-is-now-available-in-ant-media-server-4l8i</guid>
      <description>&lt;p&gt;Ant Media Server now supports Media over QUIC (MoQ), a next-gen streaming protocol built on QUIC and WebTransport. It enables sub-second latency with CDN-scale delivery, combining the best of WebRTC and HLS.&lt;/p&gt;

&lt;p&gt;With the new MoQ plugin, you can:&lt;/p&gt;

&lt;p&gt;Deliver live streams to browsers with ultra-low latency&lt;br&gt;
Ingest streams from MoQ-compatible sources&lt;br&gt;
Scale efficiently using relay-based architecture&lt;br&gt;
Use built-in browser player and publisher (no extra setup)&lt;/p&gt;

&lt;p&gt;MoQ is still evolving, but Ant Media provides early support via moq-lite, allowing developers to start experimenting today while staying aligned with future standards.&lt;/p&gt;

&lt;p&gt;👉 Read full article: &lt;a href="https://antmedia.io/moq-support-now-available-in-ant-media-server/" rel="noopener noreferrer"&gt;https://antmedia.io/moq-support-now-available-in-ant-media-server/&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>What is Simulcasting in Live Streaming?</title>
      <dc:creator>Akeel Almas</dc:creator>
      <pubDate>Wed, 15 Apr 2026 10:36:36 +0000</pubDate>
      <link>https://dev.to/akeel_almas_9a2ada3db4257/what-is-simulcasting-in-live-streaming-32d</link>
      <guid>https://dev.to/akeel_almas_9a2ada3db4257/what-is-simulcasting-in-live-streaming-32d</guid>
      <description>&lt;p&gt;Simulcasting&lt;/p&gt;

&lt;p&gt;Owais&lt;br&gt;
Author&lt;br&gt;
Apr 9, 2026&lt;br&gt;
12 min read&lt;br&gt;
You’ve got one stream. Your audience is on YouTube, Facebook, Twitch, and LinkedIn — all at the same time. Simulcasting lets you reach all of them simultaneously from a single broadcast, without running multiple encoders or creating separate content for each platform.&lt;/p&gt;

&lt;p&gt;That’s the short version. Here’s everything else you need to know — from how the architecture works under the hood to exactly how to set it up with Ant Media Server.&lt;/p&gt;

&lt;p&gt;Table of Contents&lt;br&gt;
What is Simulcasting and How Does It Differ from Standard Streaming?&lt;br&gt;
How Does Simulcast Architecture Work Technically?&lt;br&gt;
What Are the 5 Key Benefits of Simulcasting?&lt;br&gt;
What is the Difference Between Simulcasting, Multicasting, and Adaptive Bitrate Streaming?&lt;br&gt;
How Do You Set Up Simulcasting with Ant Media Server?&lt;br&gt;
What are the Supported Simulcast Destination Types in Ant Media Server?&lt;br&gt;
What are the Bandwidth and Encoding Requirements for Simulcasting?&lt;br&gt;
Frequently Asked Questions&lt;br&gt;
Conclusion&lt;br&gt;
What is Simulcasting and How Does It Differ from Standard Streaming?&lt;br&gt;
Simulcasting is the simultaneous transmission of the same encoded video stream to 2 or more destination platforms from a single ingest point. A media server takes that one incoming stream, duplicates it, and pushes independent copies to every platform you’ve configured — all at the same time.&lt;/p&gt;

&lt;p&gt;Standard streaming sends one stream to one platform. Simulcasting sends that same stream to N platforms in parallel. The key thing: your encoder doesn’t do the heavy lifting here. It pushes once to the media server. The media server handles everything else.&lt;/p&gt;

&lt;p&gt;The term comes from “simultaneous broadcast” — a concept that goes back to radio in the 1920s. The BBC first simulcast a live symphony performance over both medium and long-wave frequencies in 1926. Today, it describes real-time multi-platform distribution to destinations like YouTube Live, Facebook Live, Twitch, and any RTMP-compatible endpoint including custom servers and CDN ingest points.&lt;/p&gt;

&lt;p&gt;The critical difference from standard streaming: your encoder (OBS, Wirecast, vMix) sends one RTMP stream to the media server’s ingest endpoint. The media server — not the encoder — duplicates and forwards to each destination. Your encoder’s CPU and upload bandwidth don’t scale with the number of platforms you’re targeting.&lt;/p&gt;

&lt;p&gt;How Does Simulcast Architecture Work Technically?&lt;br&gt;
Simulcast architecture in Ant Media Server runs across 4 sequential stages: ingest, optional transcoding, stream duplication, and parallel forwarding. Here’s what actually happens at each stage.&lt;/p&gt;

&lt;p&gt;Stage 1 — RTMP Ingest&lt;br&gt;
Your encoder publishes a single H.264 or H.265 stream to Ant Media Server’s RTMP ingest endpoint: rtmp://[server-ip]/LiveApp/[streamId]. The server accepts the stream on port 1935 and buffers the incoming encoded bitstream.&lt;/p&gt;

&lt;p&gt;Stage 2 — Optional Transcoding&lt;br&gt;
If adaptive bitrate transcoding is enabled, Ant Media Server decodes the ingest stream and re-encodes it at multiple quality levels (1080p, 720p, 480p). For simulcasting to social platforms, the original bitstream is typically passed through without re-encoding — this keeps CPU overhead low and preserves your encoder-side quality settings.&lt;/p&gt;

&lt;p&gt;Stage 3 — Stream Duplication&lt;br&gt;
Ant Media Server creates parallel stream copies in memory. Each copy is an independent data pathway with its own buffer, connection state, and destination RTMP URL. Duplication happens at the application layer — the server doesn’t retransmit the ingest stream from your encoder. It forwards from its own buffer to each destination.&lt;/p&gt;

&lt;p&gt;Stage 4 — Parallel RTMP Forwarding&lt;br&gt;
Each duplicated stream is pushed simultaneously to its configured destination using that platform’s RTMP ingest URL and stream key. Ant Media Server maintains an independent TCP connection to each platform, handles reconnection on failure, and monitors each output stream’s connection state and bitrate.&lt;/p&gt;

&lt;p&gt;A failure on one destination doesn’t interrupt the others. Your YouTube stream stays live even if Facebook’s RTMP ingest goes down.&lt;/p&gt;

&lt;p&gt;One thing to plan for: a 5 Mbps 1080p30 ingest stream requires 5 Mbps × N Mbps of outbound bandwidth from the Ant Media Server instance, where N equals the number of simultaneous destination streams. A 3-platform simulcast at 5 Mbps per destination needs 15 Mbps of sustained outbound throughput from the server.&lt;/p&gt;

&lt;p&gt;What Are the 5 Key Benefits of Simulcasting?&lt;br&gt;
Simulcasting isn’t just a nice-to-have for large broadcasters. These 5 advantages apply whether you’re running a startup webinar or a stadium live event.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Multiply Your Audience Reach Without Extra Production Overhead&lt;br&gt;
One encoder session, one camera setup, one production workflow — distributed to YouTube, Facebook, LinkedIn, and Twitch at the same time. Production cost stays constant while your addressable viewer count scales with every platform you add.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Activate Multiple Platform Algorithms Simultaneously&lt;br&gt;
Each destination platform registers an independent live stream event. That triggers its notification system and live content feed ranking for that platform’s subscriber base. A 3-platform simulcast activates 3 separate recommendation algorithms from a single broadcast.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Meet Your Audience Where They Already Are&lt;br&gt;
Your audience has strong platform preferences — gaming audiences cluster on Twitch, professionals prefer LinkedIn Live, casual viewers default to YouTube — and committing to one platform means losing everyone else. Understanding live streaming platform reach shows that simulcasting eliminates that segmentation loss entirely, letting a single broadcast event activate every platform’s notification and recommendation system simultaneously.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Build Resilient Broadcast Delivery&lt;br&gt;
Single-platform streaming has no fallback path — if that platform’s RTMP ingest failure takes your entire broadcast offline. Simulcasting maintains parallel TCP connections to each destination independently, so one disconnection leaves every other output stream untouched. You get inherent redundancy across output paths without any extra infrastructure.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Collect Cross-Platform Analytics From One Event&lt;br&gt;
Every destination platform generates independent viewer count, engagement, and retention data for the same broadcast event — parallel performance datasets from a single production workflow that live streaming analytics simply cannot provide from single-platform streaming alone. Cross-platform data reveals which audiences engage longest, which platforms drive the highest interaction rate, and where to concentrate future broadcast investment.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;What is the Difference Between Simulcasting, Multicasting, and Adaptive Bitrate Streaming?&lt;br&gt;
These 3 methods operate at different layers of the streaming stack. They’re often confused — here’s how they actually differ across 5 technical dimensions.&lt;/p&gt;

&lt;p&gt;Dimension   Simulcasting    Multicasting    Adaptive Bitrate (ABR)&lt;br&gt;
Network layer   Application (RTMP/HTTP) Network (IP multicast)  Application (HLS/DASH)&lt;br&gt;
Stream copies   N copies pushed to N platforms  1 copy to N receivers at network level  1 stream per quality tier&lt;br&gt;
Destination YouTube, Facebook, Twitch, any RTMP endpoint    Private LAN, IPTV, enterprise   CDN delivery to individual viewers&lt;br&gt;
Bandwidth   Scales linearly with destination count  Constant regardless of receivers    Scales with viewer count × bitrate&lt;br&gt;
Primary use case    Multi-platform social distribution  Campus/corporate IPTV   Adaptive viewer delivery&lt;br&gt;
The important thing: simulcasting and adaptive bitrate streaming are complementary, not competing. Ant Media Server can simultaneously simulcast to YouTube Live while serving HLS adaptive bitrate streams to viewers on your own website — both running from the same single ingest stream.&lt;/p&gt;

&lt;p&gt;How Do You Set Up Simulcasting with Ant Media Server?&lt;br&gt;
Install and configure Ant Media Server. Deploy on Ubuntu 22.04 LTS using the one-line installation script or deploy from AWS Marketplace, Azure Marketplace, or Google Cloud Marketplace. Make sure ports 1935 (RTMP), 5080 (HTTP), and 5443 (HTTPS) are open on your instance’s security group or firewall.&lt;br&gt;
Create a live stream in the web panel. Log in to the Ant Media Server web panel at https://[your-domain]:5443. Navigate to the LiveApp application, select “New Live Stream,” and assign a stream ID. Your ingest URL follows the pattern rtmp://[server-address]/LiveApp/[streamId].&lt;br&gt;
Configure RTMP endpoint forwarding. In the stream settings, click the hamburger icon on the right of your stream row, then select Edit RTMP Endpoint. Enter each destination’s RTMP ingest URL and stream key. YouTube Live uses rtmp://a.rtmp.youtube.com/live2/[stream-key]; Facebook Live uses rtmps://live-api-s.facebook.com:443/rtmp/[stream-key]. Click Add RTMP Endpoint for each platform.&lt;br&gt;
Publish the ingest stream. When your encoder goes live, Ant Media Server simultaneously forwards to all configured destination endpoints. For OBS RTMP configuration with Ant Media Server, set the server URL to rtmp://[server-address]/LiveApp and the stream key to your assigned streamId — the same ingest point feeds every simulcast destination from that single connection.&lt;br&gt;
Monitor stream health via REST API (advanced). The REST API endpoint GET /LiveApp/rest/v2/broadcasts/{streamId} returns real-time status for the source stream including connection state and bitrate. To manage RTMP endpoints programmatically, use POST /LiveApp/rest/v2/broadcasts/{streamId}/rtmp-endpoint to add destinations and DELETE to remove them. For the full endpoint reference and authentication setup, see the REST API guide, which covers IP filter configuration, JWT token authentication, and the complete broadcast object schema.&lt;br&gt;
What are the Supported Simulcast Destination Types in Ant Media Server?&lt;br&gt;
Ant Media Server supports simulcast forwarding to any RTMP or RTMPS-compatible destination endpoint. The official docs confirm the following platforms with their specific ingest URL formats:&lt;/p&gt;

&lt;p&gt;YouTube Live — rtmp://a.rtmp.youtube.com/live2/[stream-key]&lt;br&gt;
Facebook Live — rtmps://live-api-s.facebook.com:443/rtmp/&lt;a&gt;stream-key&lt;/a&gt;&lt;br&gt;
Twitch — [nearest-ingest-endpoint]/&lt;a href="https://dev.toget%20your%20nearest%20ingest%20server%20from%20the%20Twitch%20Ingest%20Server%20list"&gt;stream-key&lt;/a&gt;&lt;br&gt;
Periscope — rtmp://de.pscp.tv:80/x/[stream-key]&lt;br&gt;
Any RTMP-compatible platform — including LinkedIn Live, Twitter/X, and other services that provide an RTMP ingest URL and stream key&lt;br&gt;
Custom RTMP servers — any RTMP-compliant ingest endpoint, including other Ant Media Server instances and CDN ingest points&lt;br&gt;
Because Ant Media Server forwards to any RTMP endpoint, you’re not limited to the platforms listed above. If a platform gives you an RTMP URL and stream key, it works as a simulcast destination. This also enables cascaded architectures — forwarding from one Ant Media Server instance to another for multi-hop distribution pipelines.&lt;/p&gt;

&lt;p&gt;What are the Bandwidth and Encoding Requirements for Simulcasting?&lt;br&gt;
Simulcast bandwidth requirements scale linearly with destination count multiplied by per-stream bitrate. Planning this correctly before you go live is the most common thing people skip.&lt;/p&gt;

&lt;p&gt;A 1080p30 simulcast at 4 Mbps per stream to 4 destinations requires 16 Mbps of sustained outbound bandwidth from the Ant Media Server instance. That’s the primary infrastructure scaling factor — it’s what determines whether you need a larger instance or not. Size your server instance based on outbound bandwidth capacity, not CPU, when running pass-through simulcast (no transcoding).&lt;/p&gt;

&lt;p&gt;Here are the encoding specs that work reliably across all major social platform RTMP ingest systems:&lt;/p&gt;

&lt;p&gt;Spec    Value   Why It Matters&lt;br&gt;
Video codec H.264 (Baseline or Main Profile)    Universal RTMP ingest compatibility across all social platforms&lt;br&gt;
1080p30 bitrate 4–6 Mbps  Meets YouTube Live, Facebook Live, and Twitch quality requirements&lt;br&gt;
720p30 bitrate  2.5–4 Mbps    Reliable delivery with lower server bandwidth overhead&lt;br&gt;
Audio codec AAC-LC, 128 kbps stereo Required by YouTube and Facebook RTMP ingest (YouTube rejects streams without audio)&lt;br&gt;
Keyframe interval   2 seconds (every 60 frames at 30fps)    Required by most social platform RTMP ingest systems for segment alignment&lt;br&gt;
The wrong audio codec selection causes immediate rejection at the platform ingest level — which is why verifying encoder audio settings before going live with a simulcast is a non-negotiable pre-flight step. AAC-LC at 128 kbps stereo is the standard requirement across YouTube and Facebook RTMP ingest systems.&lt;/p&gt;

&lt;p&gt;CPU overhead in pass-through mode is low. When simulcasting without transcoding, Ant Media Server forwards the incoming encoded bitstream without decode/re-encode. CPU load scales primarily with the number of TCP connections managed, not video resolution. The key resource to monitor and size for is outbound bandwidth — add the per-stream bitrate for every destination you’re targeting.&lt;/p&gt;

&lt;p&gt;Frequently Asked Questions&lt;br&gt;
What is simulcasting in live streaming?&lt;br&gt;
Simulcasting is the simultaneous transmission of one live stream to multiple destination platforms — such as YouTube, Facebook, and Twitch — from a single RTMP ingest point. A media server duplicates the ingest stream and pushes independent copies to each configured RTMP endpoint in parallel.&lt;/p&gt;

&lt;p&gt;Does simulcasting require a separate encoder for each platform?&lt;br&gt;
No. You need one encoder publishing to one media server ingest endpoint. The media server handles duplication and parallel forwarding to all destination platforms. Adding destinations increases server outbound bandwidth, not encoder load or production complexity.&lt;/p&gt;

&lt;p&gt;How many platforms does Ant Media Server simulcast to simultaneously?&lt;br&gt;
Ant Media Server supports simulcasting to multiple RTMP and RTMPS destination endpoints from a single ingest stream. The practical limit is your server’s available outbound bandwidth — each destination consumes bandwidth equal to the forwarded stream’s bitrate.&lt;/p&gt;

&lt;p&gt;What is the difference between simulcasting and adaptive bitrate streaming?&lt;br&gt;
Simulcasting forwards the same encoded stream to multiple platform destinations simultaneously. Adaptive bitrate streaming delivers multiple quality tiers of a stream to individual viewers, where each viewer’s player selects the appropriate bitrate based on network conditions. Both work from a single Ant Media Server ingest stream and run in parallel.&lt;/p&gt;

&lt;p&gt;What encoder settings work best for simulcasting?&lt;br&gt;
H.264 video at 4–6 Mbps for 1080p30, AAC-LC audio at 128 kbps, and a 2-second keyframe interval. These settings satisfy the ingest requirements of YouTube Live, Facebook Live, Twitch, and other RTMP-compatible platforms simultaneously. In OBS, use the zerolatency tune setting for x264 or enable Low Latency mode for NVENC to minimize encoder-side delay.&lt;/p&gt;

&lt;p&gt;Does Ant Media Server support simulcasting via REST API?&lt;br&gt;
Yes. The REST API provides programmatic control over simulcast RTMP endpoint management. Use POST /LiveApp/rest/v2/broadcasts/{streamId}/rtmp-endpoint to add a destination and DELETE /LiveApp/rest/v2/broadcasts/{streamId}/rtmp-endpoint?endpointServiceId={dataId} to remove one. The GET /LiveApp/rest/v2/broadcasts/{streamId} endpoint returns the broadcast object with current connection state and bitrate.&lt;/p&gt;

&lt;p&gt;Is simulcasting the same as multistreaming?&lt;br&gt;
Yes — same outcome, different framing. Simulcasting is the technical method (server-side stream duplication and parallel RTMP forwarding). Multistreaming is the same workflow described in product interfaces and marketing. They refer to the same thing.&lt;/p&gt;

&lt;p&gt;Conclusion&lt;br&gt;
Simulcasting routes a single RTMP ingest stream to multiple simultaneous platform destinations through server-side duplication and parallel forwarding — one production workflow reaches YouTube Live, Facebook Live, Twitch, and any RTMP-compatible endpoint at the same time. No extra encoders. No extra production overhead.&lt;/p&gt;

&lt;p&gt;Ant Media Server handles ingest, optional transcoding, stream duplication, and parallel RTMP forwarding — with per-destination connection monitoring and full REST API control over every endpoint. In pass-through mode, CPU overhead scales with TCP connection count, not resolution — the resource to size for is outbound bandwidth per destination stream.&lt;/p&gt;

&lt;p&gt;You can validate the complete simulcast forwarding pipeline — including RTMP endpoint configuration, REST API management, and adaptive bitrate integration — during a 14-day free trial of Ant Media Server’s simulcast streaming deployment.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>WebRTC vs. MoQ — Two Protocols, One Platform Completely Built for Both</title>
      <dc:creator>Akeel Almas</dc:creator>
      <pubDate>Wed, 08 Apr 2026 10:51:40 +0000</pubDate>
      <link>https://dev.to/akeel_almas_9a2ada3db4257/webrtc-vs-moq-two-protocols-one-platform-completely-built-for-both-3684</link>
      <guid>https://dev.to/akeel_almas_9a2ada3db4257/webrtc-vs-moq-two-protocols-one-platform-completely-built-for-both-3684</guid>
      <description>&lt;p&gt;Two powerful protocols. One streaming platform built for both. Lets focus on what happens today and what’s waiting for us in the future as Ant Media Server perspective.&lt;/p&gt;

&lt;p&gt;WebRTC vs. MoQ — Two Protocols, One Platform Built for Both&lt;/p&gt;

&lt;p&gt;The live streaming world is buzzing about Media over QUIC (MoQ) — a new IETF-standard protocol that promises to combine the scalability of CDN-based streaming with the sub-second latency as we used to associate with WebRTC only so far. At Ant Media Server, we’ve built our platform around WebRTC since day one as known globally.&lt;/p&gt;

&lt;p&gt;So the question we get asked constantly is: Should you be worried? Is WebRTC dead?&lt;/p&gt;

&lt;p&gt;The short answer: No. But MoQ is genuinely exciting — and understanding the difference between the two is critical to making smart infrastructure decisions now and also for future.&lt;/p&gt;

&lt;p&gt;Two Protocols, Two Philosophies&lt;/p&gt;

&lt;p&gt;WebRTC and MoQ weren’t designed for the same problem. They emerged from different eras, different constraints, and different visions of what the real-time web should look like.&lt;/p&gt;

&lt;p&gt;WebRTC&lt;br&gt;
Web Real-Time Communication&lt;br&gt;
Born in 2011&lt;br&gt;
Standardized by W3C &amp;amp; IETF, shipped in Chrome in 2012&lt;br&gt;
~0.2–0.5s latency&lt;br&gt;
True sub-second, ideal for interactive apps&lt;br&gt;
SFU Architecture&lt;br&gt;
Server-side Selective Forwarding Units for scalability&lt;br&gt;
Universal browser support&lt;br&gt;
Chrome, Safari, Firefox, Edge — no plugins needed&lt;br&gt;
Transport: UDP / DTLS-SRTP&lt;br&gt;
Built on RTP, approximately 20 referenced standards&lt;br&gt;
MoQ&lt;br&gt;
Media over QUIC&lt;br&gt;
Emerging standard, ~2022–present&lt;br&gt;
IETF working group, still in active development&lt;br&gt;
Sub-second to near-real-time&lt;br&gt;
Configurable latency from ultra-low to VOD-grade&lt;br&gt;
Pub/Sub + CDN Relay Architecture&lt;br&gt;
Relays fan out live media with structured tracks&lt;br&gt;
Chrome &amp;amp; Edge only (2026)&lt;br&gt;
Safari iOS WebTransport support is on the way&lt;br&gt;
Transport: QUIC / WebTransport&lt;br&gt;
Built on HTTP/3, no RTP dependency&lt;/p&gt;

&lt;p&gt;WebRTC: Where Ant Media Focuses Today&lt;/p&gt;

&lt;p&gt;Ant Media Server was built around WebRTC — and for good reason. WebRTC delivers sub-0.5 second latency across every major browser on the planet without requiring a plugin, app download, or special configuration from your end users. For use cases where responsiveness is existential — live auctions, telehealth consultations, remote drone monitoring, interactive sports betting — there is simply no better option available at production scale today.&lt;/p&gt;

&lt;p&gt;Our SFU-based architecture means viewer connections are handled efficiently: the origin node accepts and transcodes incoming streams, while edge nodes play them out. This scales from a few person virtual classroom to a global live event with tens of thousands of concurrent viewers — and it does so on infrastructure that auto-scales on AWS, Azure, GCP, or your own on-premise cluster via Kubernetes.&lt;/p&gt;

&lt;p&gt;Where WebRTC Wins&lt;/p&gt;

&lt;p&gt;Telehealth &amp;amp; Remote Consultation&lt;br&gt;
HIPAA-compliant, real-time patient-provider video with sub-500ms responsiveness. Latency matters when a doctor needs to notice a patient’s reaction.&lt;br&gt;
Live Auctions &amp;amp; Bidding&lt;br&gt;
Fairness depends on all bidders seeing the same moment simultaneously. Any latency asymmetry is a legal and commercial liability.&lt;br&gt;
Interactive Gaming &amp;amp; Betting&lt;br&gt;
Engagement and revenue in real-time gaming require immediate feedback loops. WebRTC delivers the interactivity that keeps users in the moment.&lt;br&gt;
Surveillance &amp;amp; IoT Monitoring&lt;br&gt;
Real-time CCTV and IP camera feeds benefit from WebRTC’s encrypted, browser-native delivery without buffering delays or plugins.&lt;/p&gt;

&lt;p&gt;The Honest Limitations&lt;/p&gt;

&lt;p&gt;WebRTC’s complexity is legendary. The protocol stack references approximately 20 standards, making it genuinely difficult to customize outside the bounds of what browser vendors choose to implement. ICE negotiation, STUN/TURN traversal, and SDP signaling are all layers of complexity that sit between you and “just streaming video.” At Ant Media, we abstract most of this — but it’s worth being honest that at true internet-scale one-to-many streaming, WebRTC’s architecture requires significant investment to remain cost-efficient.&lt;/p&gt;

&lt;p&gt;WebRTC also has no native concept of CDN-friendly relay architectures. It scales through SFUs and clustering which means infrastructure costs grow with your viewer count in ways that pure CDN-used protocols avoid.&lt;/p&gt;

&lt;p&gt;MoQ: The Architecture That Fixes the Middle Ground&lt;/p&gt;

&lt;p&gt;Media over QUIC is the most thoughtful attempt yet to bridge the long-standing gap between two worlds: the cost efficiency and CDN-scalability of HLS, and the near-zero latency that WebRTC enables. MoQ is built on QUIC — the same transport layer behind HTTP/3 — which eliminates TCP’s head-of-line blocking, handles connection migration gracefully.&lt;/p&gt;

&lt;p&gt;The key innovation in MoQ is its publish/subscribe model built around “tracks” — linear flows of media data (video, audio, captions, metadata) that relays can cache and fan out at the live edge. Unlike WebRTC, which requires a full SFU session per viewer, MoQ’s relay architecture lets CDN nodes participate natively. That’s why giant companies like YouTube are paying attention: MoQ lets existing CDN infrastructure be upgraded rather than replaced.&lt;/p&gt;

&lt;p&gt;MoQ’s goal is to give you WebRTC-like interactivity and HLS-like scalability in a single protocol. Sub-second join times + internet-scale fan-out without maintaining thousands of individual real-time sessions.&lt;/p&gt;

&lt;p&gt;Where MoQ Shines (When Ready)&lt;/p&gt;

&lt;p&gt;Large-Scale Live Events&lt;br&gt;
Concerts, sports broadcasts, and political events where you need sub-second latency for a million simultaneous viewers — a CDN relay model makes this economical.&lt;br&gt;
Hybrid Live + VOD Platforms&lt;br&gt;
A single protocol handling live streaming and on-demand playback means dramatically simpler architecture and unified infrastructure costs.&lt;br&gt;
Next-Gen CDN Integration&lt;br&gt;
MoQ’s HTTP/3 compatibility means CDNs can extend their existing networks rather than replace them wholesale.&lt;/p&gt;

&lt;p&gt;The Honest Limitations&lt;/p&gt;

&lt;p&gt;MoQ is genuinely exciting — but it is not production-ready today, and the numbers back that up. As of late 2025, WebTransport (which MoQ depends on in browsers) represents a fraction of a percent of web page loads, versus WebRTC’s stable ~0.35%. Chrome metrics show brief experimental spikes followed by drop-offs.&lt;/p&gt;

&lt;p&gt;Safari on iOS was a significant blocker until it was recently (a week ago) announced  that WebTransport is supported with Safari iOS 26.4 , may help removing fallback implementations that add complexity. Some networks still block UDP traffic. And the MoQ specification itself, while advancing rapidly through IETF, is still evolving — meaning production deployments today may carry interoperability risk.&lt;/p&gt;

&lt;p&gt;Feature Comparison&lt;/p&gt;

&lt;p&gt;Dimension   WebRTC  MoQ (Media over QUIC)&lt;br&gt;
Latency 0.2–0.5s Ultra-low    Configurable: sub-1s to multi-second Flexible&lt;br&gt;
Transport Layer UDP / DTLS-SRTP / RTP   QUIC / HTTP/3 / WebTransport&lt;br&gt;
Browser Support All major browsers Universal    Chrome, Edge, Safari (not verified) Limited&lt;br&gt;
CDN Compatibility   Requires SFU infrastructure Native HTTP/3 CDN relay support Advantage&lt;br&gt;
Scalability Model   SFU clustering, session per viewer  Pub/sub relay with CDN fan-out&lt;br&gt;
Protocol Complexity ~20 referenced standards    Simpler stack, still maturing&lt;br&gt;
Production Readiness    Battle-tested since 2012    Emerging — experimental in 2026&lt;br&gt;
Codec Flexibility   Browser-bound (VP8/VP9, H.264, AV1) Protocol-agnostic, codec-flexible Advantage&lt;br&gt;
VOD / Live Unification  Separate solutions required Single protocol covers both Future advantage&lt;br&gt;
Standardization W3C + IETF — fully standardized   IETF working group — in progress&lt;br&gt;
Ant Media Support   Full production support On the roadmap&lt;/p&gt;

&lt;p&gt;Where Ant Media Is Positioned: Protocol-Agnostic Pragmatism&lt;/p&gt;

&lt;p&gt;Ant Media Server has always been protocol-pragmatic. We started with RTMP and WebRTC, layered in SRT, RTSP, HLS, LL-HLS, CMAF, WHIP/WHEP — because the right protocol depends on the use case, not industry fashion cycles.&lt;/p&gt;

&lt;p&gt;Our position on WebRTC vs MoQ mirrors what the most credible voices in the streaming space have concluded: these protocols are not competitors — they are complements. WebRTC is the definitive answer for interactive, browser-native, sub-500ms experiences. MoQ is the most architecturally elegant answer for the future of one-to-many streaming at internet scale with CDN economics.&lt;/p&gt;

&lt;p&gt;The industry consensus forming around a hybrid workflow makes intuitive sense: WebRTC for browser-based contribution and ingest, with MoQ as the delivery layer when it matures. This is exactly the kind of architecture Ant Media Server is designed to support — accepting streams over any protocol and delivering them over whatever transport best fits the viewer context.&lt;/p&gt;

&lt;p&gt;What This Means for Ant Media Users&lt;/p&gt;

&lt;p&gt;Today: build on WebRTC with confidence. Our SFU-based clustering, adaptive bitrate engine, auto-scaling on major clouds or on premise, and ~0.5s latency guarantee are production-proven. When MoQ achieves production maturity, Ant Media’s multi-protocol architecture means you add it as a delivery option — not a platform migration.&lt;/p&gt;

&lt;p&gt;How Ant Media Approach: Don’t Choose. Prepare for Both.&lt;/p&gt;

&lt;p&gt;If you need to build something today — a telehealth platform, a live auction, a drone monitoring system, an interactive sports stream — build it on WebRTC. It’s proven, universally supported, and with Ant Media Server, it scales gracefully from prototype to production without infrastructure dependencies.&lt;/p&gt;

&lt;p&gt;If you’re designing a platform for 2028 and beyond — especially one where CDN economics and massive concurrent audiences matter — keep a close eye on MoQ. The fundamentals are solid. The IETF momentum is real. The giant companies are all investing. When cross-browser support closes, MoQ will be ready for the architectures that WebRTC was never designed for.&lt;/p&gt;

&lt;p&gt;At Ant Media, our strategy is simple: the future of streaming is to have multi-protocol capability in one platform, and your infrastructure should be too. We’re watching MoQ closely, supporting WHIP/WHEP as the bridge between today and tomorrow, and building the platform that lets you change your delivery layer without changing your application.&lt;/p&gt;

&lt;p&gt;To demonstrate our commitment to our users, we’ve decided to showcase how MoQ works and performs compared to other protocols at NAB Show, starting April 19, 2026, at Booth 3318 in Las Vegas. We invite you to join us and experience it firsthand.&lt;/p&gt;

&lt;p&gt;Pick the right tool for the right job — and build on infrastructure flexible enough to evolve with it.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Versatile Video Coding (VVC): H.266 Codec Guide for Streaming</title>
      <dc:creator>Akeel Almas</dc:creator>
      <pubDate>Wed, 25 Mar 2026 09:26:40 +0000</pubDate>
      <link>https://dev.to/akeel_almas_9a2ada3db4257/versatile-video-coding-vvc-h266-codec-guide-for-streaming-4c01</link>
      <guid>https://dev.to/akeel_almas_9a2ada3db4257/versatile-video-coding-vvc-h266-codec-guide-for-streaming-4c01</guid>
      <description>&lt;p&gt;Streaming platforms transmit over 1 billion hours of video daily, and codec efficiency determines the bandwidth cost of every single hour. A platform serving 10,000 concurrent 4K streams consumes approximately 120 Gbps with H.265 (HEVC) compression. Versatile Video Coding (VVC), also known as H.266, cuts that figure to approximately 60–70 Gbps at equivalent visual quality—a 40–50% bitrate reduction that translates directly into lower CDN costs, reduced storage consumption, and higher-quality delivery on bandwidth-constrained networks.&lt;/p&gt;

&lt;p&gt;VVC arrived as the official successor to HEVC when the Joint Video Experts Team (JVET) finalized the specification on July 6, 2020. Six years later, VVC adoption follows a split trajectory: broadcast and connected TV ecosystems adopt VVC through hardware decode mandates from the DVB Project and ATSC 3.0, while browser-based streaming remains locked to H.264, H.265, and the royalty-free AV1 codec due to patent licensing barriers. Streaming platform operators face a practical question—where does VVC fit alongside existing codecs, and when does the compression advantage justify integration into their delivery pipeline?&lt;/p&gt;

&lt;p&gt;This guide examines VVC’s 6 compression innovations, compares performance against HEVC, AV1, and H.264 with specific bitrate figures, maps hardware and software support as of March 2026, breaks down the patent licensing landscape, identifies the 5 streaming use cases where VVC delivers measurable ROI, and explains how multi-codec delivery architectures—like those built on Ant Media Server—position streaming operators to adopt VVC incrementally as device support expands.&lt;/p&gt;

&lt;p&gt;Table of Contents&lt;br&gt;
What is H.266/VVC (Versatile Video Coding)?&lt;br&gt;
What are the 6 Core Technical Innovations in VVC?&lt;br&gt;
How Does VVC Compare to HEVC, AV1, and H.264?&lt;br&gt;
What Hardware and Software Support VVC in 2026?&lt;br&gt;
What are the VVC Patent and Licensing Requirements?&lt;br&gt;
Which 5 Streaming Use Cases Benefit from VVC?&lt;br&gt;
How Does Multi-Codec Delivery Prepare for VVC Adoption?&lt;br&gt;
Frequently Asked Questions&lt;br&gt;
Conclusion&lt;br&gt;
What is H.266/VVC (Versatile Video Coding)?&lt;br&gt;
Versatile Video Coding&lt;br&gt;
H.266, formally designated Versatile Video Coding (VVC), is a video compression standard that achieves approximately 50% bitrate reduction at equivalent perceptual quality compared to HEVC (H.265). The Joint Video Experts Team (JVET)—a collaboration between ITU-T Video Coding Experts Group (VCEG) and ISO/IEC Moving Picture Experts Group (MPEG)—finalized VVC on July 6, 2020, under designations ITU-T H.266 and ISO/IEC 23090-3 (MPEG-I Part 3).&lt;/p&gt;

&lt;p&gt;VVC targets the compression demands of 4K, 8K, HDR, 360-degree immersive, and screen content video. The codec supports YCbCr 4:4:4, 4:2:2, and 4:2:0 chroma subsampling at 8–10 bit depth in the Main 10 profile, with 12–16 bit depth added in the 2022 second edition. Frame rate support spans 0 to 120 Hz, BT.2100 wide color gamut, and HDR peak brightness values of 1,000, 4,000, and 10,000 nits. VVC supports resolutions from very low resolution up to 16K as well as 360-degree video formats.&lt;/p&gt;

&lt;p&gt;Fraunhofer Heinrich Hertz Institute (HHI) in Germany contributed core encoding tools and announced the standard in July 2020. The development timeline began in October 2015 when MPEG and VCEG formed JVET, issued a formal Call for Proposals in October 2017, produced the first working draft in April 2018, and demonstrated a preliminary implementation at IBC 2018 showing 40% compression gain over HEVC. For streaming platforms already delivering content with H.264 and H.265—the two codecs that Ant Media Server currently supports for WebRTC, HLS, LL-HLS, and DASH/CMAF output—VVC represents the next codec generation entering production pipelines as hardware decode adoption expands.&lt;/p&gt;

&lt;p&gt;What are the 6 Core Technical Innovations in VVC?&lt;br&gt;
VVC introduces 6 architectural innovations that collectively produce its 50% compression efficiency gain over HEVC. These innovations span block partitioning, motion prediction, transform coding, and in-loop filtering stages of the encoding pipeline.&lt;/p&gt;

&lt;p&gt;What is Multi-Type Tree (MTT) Partitioning?&lt;br&gt;
Multi-Type Tree partitioning replaces HEVC’s fixed quadtree structure with a flexible system supporting binary and ternary splits in horizontal and vertical directions. HEVC limited Coding Tree Units (CTUs) to square blocks between 4×4 and 64×64 pixels using quadtree-only partitioning. VVC extends CTU sizes to 128×128 pixels and permits non-square rectangular blocks through nested quadtree, binary tree, and ternary tree splits. MTT enables precise alignment of block boundaries to object edges, motion boundaries, and texture transitions in source video.&lt;/p&gt;

&lt;p&gt;How Does Affine Motion Compensation Improve Prediction?&lt;br&gt;
Affine motion compensation models rotation, zoom, and shear movements that translational motion vectors cannot represent. VVC implements 4-parameter (similarity) and 6-parameter (affine) motion models. According to Fraunhofer HHI research from the Video Communications and Applications department, affine prediction reduces residual energy by 15–20% for sequences containing camera pan or zoom operations compared to translational-only prediction.&lt;/p&gt;

&lt;p&gt;What Role Does Adaptive Loop Filtering (ALF) Play?&lt;br&gt;
Adaptive Loop Filtering applies diamond-shaped Wiener filters at the block boundary level to reduce compression artifacts. ALF operates as the final stage in VVC’s three-stage in-loop filtering pipeline, following the deblocking filter and sample adaptive offset (SAO) filter. The filter coefficients adapt per CTU row, preserving texture detail in high-complexity regions while smoothing flat areas.&lt;/p&gt;

&lt;p&gt;What are Geometric Partition Modes?&lt;br&gt;
Geometric partition modes divide prediction blocks along diagonal or angular boundaries instead of axis-aligned splits. VVC defines 64 geometric partition angles, each producing two triangular or trapezoidal sub-regions with independent motion vectors. Geometric partitions improve compression for scenes with diagonal edges, oblique object boundaries, and non-rectangular motion patterns that axis-aligned partitions encode inefficiently.&lt;/p&gt;

&lt;p&gt;How Does Subpicture Streaming Work?&lt;br&gt;
Subpicture streaming divides a VVC bitstream into independently decodable spatial regions. Each subpicture functions as a self-contained coding unit with its own motion vector constraints and loop filter boundaries. Subpicture support enables viewport-dependent 360-degree video delivery, where a player decodes only the visible viewport subpictures rather than the full spherical frame, reducing decode computational load for 8K 360-degree content by 60–75%.&lt;/p&gt;

&lt;p&gt;What is VVC’s Advanced Entropy Coding System?&lt;br&gt;
VVC’s Context-Adaptive Binary Arithmetic Coding (CABAC) engine extends HEVC’s entropy coder with larger context models and a multi-hypothesis probability update mechanism. The expanded context tables for transform coefficient coding contribute 3–5% of VVC’s total bitrate savings, with the largest gains appearing at high bitrates where coefficient distribution modeling dominates compression performance.&lt;/p&gt;

&lt;p&gt;How Does VVC Compare to HEVC, AV1, and H.264?&lt;br&gt;
The following 4-codec comparison table presents 7 attributes across H.264 (AVC), H.265 (HEVC), AV1, and H.266 (VVC), covering compression efficiency, licensing, browser support, hardware decode availability, encoding complexity, approximate 4K bitrate, and primary deployment targets in 2026.&lt;/p&gt;

&lt;p&gt;Attribute   H.264 (AVC) H.265 (HEVC)    AV1 H.266 (VVC)&lt;br&gt;
Compression vs H.264    Baseline    ~35–40% better    ~45–50% better    ~50–55% better&lt;br&gt;
Licensing   Royalties (MPEG LA) Royalties (3 pools) Royalty-free (AOMedia)  Patent pools (Access Advance, Via-LA)&lt;br&gt;
Browser Support Full (all browsers) Limited (Safari, Edge)  Strong (Chrome, Firefox, Edge)  None (experimental only)&lt;br&gt;
Hardware Decode Universal   Universal (4K+ TVs) Growing (Intel, Apple, Qualcomm)    Emerging (Intel Lunar Lake, MediaTek Pentonic)&lt;br&gt;
Encoding Complexity 1x baseline ~2–4x AVC ~5–7x AVC ~8–10x AVC&lt;br&gt;
4K Bitrate (approx.)    15–20 Mbps    8–12 Mbps 6–9 Mbps  5–8 Mbps&lt;br&gt;
Primary Use (2026)  Universal fallback  4K OTT, Apple ecosystem Web streaming, mobile   UHD broadcast, CTV, 8K&lt;br&gt;
VVC achieves the highest compression efficiency of any production codec, delivering 50–55% bitrate reduction over H.264 and approximately 10–15% improvement over AV1 at 4K resolution based on Fraunhofer HHI’s VVenC benchmarks. The VVenC encoder delivered a 39% efficiency gain over x265 (HEVC) in Streaming Media Magazine testing, though the advantage over AV1 narrowed to approximately 11% in those tests. AV1 maintains a deployment advantage in browser-based streaming due to royalty-free licensing and native Chrome, Firefox, and Edge support. VVC dominates in broadcast and connected TV deployments where hardware decode chipsets provide native playback. Ant Media Server currently supports H.264 and H.265 codecs for WebRTC, HLS, LL-HLS, and DASH/CMAF delivery with VP8 available for WebRTC—the multi-protocol architecture that extends to additional codec support as encoder libraries mature.&lt;/p&gt;

&lt;p&gt;What Hardware and Software Support VVC in 2026?&lt;br&gt;
Hardware VVC decode reached a milestone in September 2024 when Intel’s Lunar Lake processors (Core Ultra series) shipped with Xe2 graphics featuring native VVC decode up to 8K60. Intel became the first chipmaker to implement VVC hardware decoding, ahead of NVIDIA and AMD. MediaTek’s Pentonic 800 and 700 chipsets, powering 2024–2025 smart TVs from Samsung, LG, and Sony, include VVC hardware decode capability through dedicated decoder silicon. Qualcomm’s Snapdragon 8 Elite mobile SoC added VVC decode for Android flagship devices.&lt;/p&gt;

&lt;p&gt;On the software encoding side, Fraunhofer HHI’s open-source VVenC encoder reached version 1.14 in January 2026, delivering speedups between 20x and 2,400x over the VTM reference software depending on the preset selected. VVenC provides 5 encoding presets (faster, fast, medium, slow, slower) and scales to 32 CPU threads with frame-level parallelization. The companion VVdeC decoder is fully compliant with VVC Main 10 profile and scales across 30+ threads. FFmpeg integrates VVC encoding and decoding through experimental patches from Fraunhofer. The uvg266 encoder from the University of Tampere offers an alternative optimized for real-time encoding, and together with uvgRTP and OpenVVC, provides a complete end-to-end pipeline for live 4K30p VVC intra coding and streaming.&lt;/p&gt;

&lt;p&gt;Browser support for VVC remains absent across all major browsers as of March 2026. Chrome, Firefox, Edge, and Safari provide no native VVC decode. According to Rethink Research analysis, VVC has seen almost no commercial uptake in web-based streaming—a trajectory the analyst describes as having deviated significantly from historical codec adoption norms, primarily to AV1’s benefit. The DVB Project formally added VVC to its core broadcast specification in February 2022, making it the first standards body to include a next-generation video codec in its media delivery specification. Future DVB-compliant set-top boxes and smart TVs in Europe, Australia, and affiliated regions are required to support VVC hardware decoding. ATSC 3.0 (NextGen TV) in North America also includes VVC as a supported codec.&lt;/p&gt;

&lt;p&gt;What are the VVC Patent and Licensing Requirements?&lt;br&gt;
VVC operates under royalty-bearing licensing, unlike royalty-free AV1. Two primary patent pools govern VVC: Access Advance (fees published April 2021) and Via-LA (formerly MPEG LA, fees published January 2022). In December 2025, Access Advance acquired Via-LA’s HEVC and VVC patent pools, consolidating two pools under one administrator—though this acquisition does not resolve the broader licensing fragmentation.&lt;/p&gt;

&lt;p&gt;Multiple essential patent holders remain outside both pools as of March 2026: Apple, Broadcom, Canon, Ericsson, Fraunhofer, Google, Huawei, Intel, InterDigital, LG, Microsoft, Nokia, Oppo, Qualcomm, Samsung, Sharp, and Sony. The fragmented patent landscape creates licensing uncertainty for VVC adopters, mirroring the challenges that slowed HEVC adoption after its 2013 finalization. The Media Coding Industry Forum (MC-IF) was founded to reduce licensing risks, but MC-IF has no authority over the standardization process or patent pool terms.&lt;/p&gt;

&lt;p&gt;The licensing complexity directly affects VVC’s competitive position against AV1. Alliance for Open Media (AOMedia) members—including Google, Apple, Amazon, Microsoft, Netflix, Intel, Meta, and Samsung—developed AV1 with explicit royalty-free licensing. Browser vendors who are AOMedia members have no commercial incentive to implement VVC decode, repeating the pattern that limited HEVC to approximately 18% browser compatibility according to CanIUse data despite over a decade of availability.&lt;/p&gt;

&lt;p&gt;Which 5 Streaming Use Cases Benefit from VVC?&lt;br&gt;
VVC delivers measurable advantages in 5 streaming deployment categories where bandwidth efficiency at high resolution produces direct cost or quality improvements.&lt;/p&gt;

&lt;p&gt;4K and 8K broadcast delivery represents VVC’s strongest deployment category. A 4K HEVC stream at 12 Mbps drops to approximately 6–7 Mbps with VVC at equivalent VMAF quality scores. For broadcast operators delivering hundreds of simultaneous 4K channels, VVC reduces satellite transponder and terrestrial multiplex bandwidth requirements by 40–50%. The DVB Project’s specification mandate ensures hardware decode availability in next-generation European broadcast receivers.&lt;/p&gt;

&lt;p&gt;Connected TV and set-top box OTT platforms benefit from VVC in controlled device environments where MediaTek Pentonic and Intel-based chipsets guarantee hardware decode. Premium HDR10+ or Dolby Vision content at 4K achieves 35–45% CDN bandwidth savings compared to HEVC delivery, with VVC content delivered via DASH/CMAF to CTV applications.&lt;/p&gt;

&lt;p&gt;360-degree and immersive video applications leverage VVC’s subpicture streaming capability. A full 8K equirectangular 360-degree stream at 80–100 Mbps in HEVC reduces to 40–55 Mbps with VVC, and viewport-dependent subpicture delivery further reduces per-viewer bandwidth to 15–25 Mbps by decoding only visible viewport regions.&lt;/p&gt;

&lt;p&gt;UHD archival and VOD libraries achieve 45–50% storage reduction when transcoding HEVC masters to VVC. A 100 TB UHD library compressed in HEVC reduces to approximately 50–55 TB in VVC, producing significant long-term storage infrastructure savings for content operators with large back-catalogs.&lt;/p&gt;

&lt;p&gt;Low-bandwidth mobile delivery in emerging markets enables HD-quality playback on 2–3 Mbps connections that previously supported only SD resolution with HEVC encoding. VVC’s compression advantage at low bitrates opens HD streaming to viewers on constrained mobile networks where bandwidth costs per GB remain high.&lt;/p&gt;

&lt;p&gt;How Does Multi-Codec Delivery Prepare for VVC Adoption?&lt;br&gt;
VVC’s absent browser support and limited hardware decode footprint in 2026 make single-codec VVC delivery impractical for general audiences. The production deployment model is multi-codec adaptive delivery—serving VVC to hardware-capable devices (smart TVs, set-top boxes, Intel Lunar Lake PCs) while maintaining H.265 and H.264 fallback streams for browsers and older devices. This architecture requires a streaming server capable of multi-codec transcoding, multi-protocol packaging, and adaptive bitrate delivery.&lt;/p&gt;

&lt;p&gt;Ant Media Server provides this multi-codec infrastructure today. The server accepts ingest via RTMP, SRT, and WebRTC, supports H.264, VP8, and H.265 video codecs with codec selection configurable per application through the web panel or REST API, and delivers output across WebRTC (ultra-low latency), HLS and LL-HLS (low latency), and DASH/CMAF (standard latency). This codec-agnostic, multi-protocol architecture is the same foundation that extends to VVC output as FFmpeg’s VVenC integration moves from experimental to production-ready.&lt;/p&gt;

&lt;p&gt;Ant Media Server’s adaptive bitrate streaming feature dynamically adjusts video quality based on each viewer’s network speed and device performance, automatically switching between configured resolution and bitrate renditions. When VVC joins the encoding ladder, the ABR engine serves VVC renditions to capable devices and falls back to H.265 or H.264 for others—without requiring separate delivery infrastructure. The adaptive bitrate streaming documentation at docs.antmedia.io covers configuration of custom resolution/bitrate profiles through both the web panel and broadcast-level API.&lt;/p&gt;

&lt;p&gt;Understanding how each codec generation affects bandwidth cost and device compatibility is critical for operators planning multi-codec delivery. The video codecs streaming guide examines H.264, H.265, VP9, and AV1 compression efficiency, encoding speed benchmarks, protocol compatibility, and bitrate requirements across 6 resolutions—the codec selection framework that VVC extends with its 50% compression advantage over HEVC.&lt;/p&gt;

&lt;p&gt;VVC’s direct predecessor, HEVC, remains the highest-efficiency codec currently supported in Ant Media Server’s transcoding pipeline. The H.265 HEVC codec guide covers Coding Tree Unit architecture, Main 10 profile HDR support, encoding speed comparisons against H.264, and the three-pool HEVC licensing structure that VVC’s own patent landscape closely mirrors.&lt;/p&gt;

&lt;p&gt;H.264 serves as the universal fallback codec in every multi-codec delivery architecture, including VVC-ready pipelines. The H.264 AVC codec guide details profile configurations, protocol-specific encoding requirements across RTMP, HLS, and WebRTC, and the 98.23% browser compatibility that makes H.264 the mandatory baseline rendition in adaptive bitrate ladders.&lt;/p&gt;

&lt;p&gt;VVC content delivery relies on DASH/CMAF packaging because HLS does not natively support VVC playback. Ant Media Server’s CMAF streaming support provides LL-DASH output with configurable segment and fragment durations—the same packaging format that carries VVC-encoded segments to smart TVs and set-top boxes with hardware decode capability.&lt;/p&gt;

&lt;p&gt;VVC encoding requires 8–10x the computational resources of HEVC at equivalent quality, making GPU acceleration essential for any deployment beyond offline VOD processing. Ant Media’s analysis of GPU vs CPU transcoding performance quantifies the latency, throughput, and cost tradeoffs between CUDA-accelerated and software-only encoding—directly relevant to infrastructure sizing for future VVC transcoding workloads.&lt;/p&gt;

&lt;p&gt;Scaling transcoding infrastructure for computationally intensive codecs requires container-orchestrated auto-scaling that allocates GPU-equipped workers dynamically. Ant Media Server’s Kubernetes deployment architecture supports horizontal scaling of origin and edge nodes, with auto-scaling triggers based on CPU load and active stream count—the orchestration model that absorbs VVC’s higher encoding complexity without over-provisioning.&lt;/p&gt;

&lt;p&gt;Ultra-low-latency ingest via WebRTC with server-side conversion to HLS and DASH output represents the dominant live streaming architecture. Ant Media Server’s WebRTC to HLS/DASH pipeline handles protocol transcoding from WebRTC ingest to segmented HTTP delivery—the same pipeline that will package VVC-encoded output as DASH/CMAF segments for hardware-capable playback endpoints.&lt;/p&gt;

&lt;p&gt;Content protection for premium VVC streams applies at the DASH/CMAF packaging stage, where Widevine and PlayReady encryption work identically regardless of the underlying video codec. Ant Media Server’s DRM support for secure streaming covers the encryption workflow for DASH-delivered content—infrastructure that extends to VVC-encoded streams without protocol-level changes.&lt;/p&gt;

&lt;p&gt;Cloud deployment with automated cluster provisioning enables cost-efficient scaling for multi-codec transcoding workloads. The AWS CloudFormation scaling guide provides templates for auto-scaling origin-edge clusters on AWS, supporting concurrent H.264 and H.265 transcoding with load-balanced stream distribution across availability zones.&lt;/p&gt;

&lt;p&gt;Monitoring transcoding pipeline health becomes critical when operating multi-codec encoding ladders. Ant Media Server’s Grafana monitoring integration provides real-time dashboards tracking per-stream encoding performance, system CPU load, JVM heap memory, and active stream counts—the observability layer that identifies transcoding bottlenecks before they impact viewer experience.&lt;/p&gt;

&lt;p&gt;Operators building multi-codec delivery infrastructure need to validate that adaptive bitrate transcoding, DASH/CMAF packaging, WebRTC ingest, and HLS output function correctly before adding codec complexity. Ant Media Server’s self-hosted evaluation provides 14 days of Enterprise Edition access to test H.264, H.265, and VP8 transcoding pipelines, Kubernetes auto-scaling, and multi-protocol output in a production-representative environment—establishing the infrastructure foundation that extends to VVC as encoder support reaches production readiness.&lt;/p&gt;

&lt;p&gt;Frequently Asked Questions&lt;br&gt;
What is the H.266 VVC Codec?&lt;br&gt;
H.266 VVC (Versatile Video Coding) is a video compression standard finalized in July 2020 by JVET. VVC achieves 50% bitrate reduction over HEVC at equivalent visual quality through multi-type tree partitioning, affine motion compensation, and adaptive loop filtering. VVC carries the formal designations ITU-T H.266 and ISO/IEC 23090-3.&lt;/p&gt;

&lt;p&gt;How Much Bandwidth Does VVC Save Over HEVC?&lt;br&gt;
VVC reduces bitrate by 40–50% compared to HEVC at equivalent perceptual quality. A 4K stream at 12 Mbps in HEVC drops to 6–7 Mbps with VVC. Fraunhofer HHI’s VVenC encoder demonstrated a 39% efficiency gain over x265 in Streaming Media Magazine benchmarks.&lt;/p&gt;

&lt;p&gt;Is VVC Royalty-Free Like AV1?&lt;br&gt;
VVC requires royalty payments through Access Advance and Via-LA patent pools, with 17+ essential patent holders remaining outside both pools as of March 2026. AV1 operates royalty-free through the Alliance for Open Media—a distinction that directly determines browser support and web deployment viability.&lt;/p&gt;

&lt;p&gt;Which Browsers Support H.266 VVC?&lt;br&gt;
No major browser supports native VVC playback as of March 2026. Chrome, Firefox, Edge, and Safari lack VVC decode. AOMedia member companies that develop these browsers have no commercial incentive to add VVC support, mirroring the limited browser adoption of HEVC.&lt;/p&gt;

&lt;p&gt;Does Ant Media Server Support VVC?&lt;br&gt;
Ant Media Server currently supports H.264, VP8, and H.265 (HEVC) codecs for WebRTC, HLS, LL-HLS, and DASH/CMAF delivery. VVC is not yet a supported codec. Ant Media Server’s multi-codec transcoding architecture and DASH/CMAF packaging engine provide the infrastructure foundation that extends to VVC output as FFmpeg’s VVenC integration matures.&lt;/p&gt;

&lt;p&gt;When Will VVC Replace HEVC?&lt;br&gt;
VVC coexists with HEVC, AV1, and H.264 rather than replacing any single codec. Broadcast and CTV adopt VVC first through hardware decode mandates. Web streaming continues using H.264 and H.265 for compatibility. Multi-codec adaptive delivery—serving each viewer the best codec their device supports—defines the 2026–2028 deployment model.&lt;/p&gt;

&lt;p&gt;Conclusion&lt;br&gt;
H.266 VVC delivers 50% bitrate reduction over HEVC through 6 architectural innovations including MTT partitioning, affine motion compensation, and subpicture streaming. Intel Lunar Lake, MediaTek Pentonic, and DVB-mandated devices establish VVC’s initial deployment in broadcast and connected TV. Patent pool fragmentation with 17+ unlicensed essential patent holders and zero browser support constrain VVC adoption in web-based streaming, where H.265 and H.264 remain the production codecs.&lt;/p&gt;

&lt;p&gt;Ant Media Server’s multi-codec architecture—supporting H.264, VP8, and H.265 with adaptive bitrate transcoding across WebRTC, HLS, LL-HLS, and DASH/CMAF—provides the infrastructure foundation for incremental VVC adoption. The same DASH/CMAF packaging pipeline, Kubernetes auto-scaling, and DRM integration that serve H.265 content today extend to VVC streams as encoder libraries and hardware decode support reach production maturity through 2026–2028.&lt;/p&gt;

&lt;p&gt;Streaming teams preparing their infrastructure for next-generation codec support can start a 14-day Enterprise Edition trial to validate adaptive bitrate transcoding, multi-protocol delivery, cluster auto-scaling, and DASH/CMAF output in a self-hosted environment—building the production-ready foundation that accommodates VVC the moment encoder integration reaches general availability.&lt;/p&gt;

&lt;p&gt;Visit: antmedia.io&lt;/p&gt;

</description>
      <category>algorithms</category>
      <category>networking</category>
      <category>news</category>
      <category>performance</category>
    </item>
    <item>
      <title>Harness Powers of DeepAR and Custom Overlay with Ant Media Android SDK</title>
      <dc:creator>Akeel Almas</dc:creator>
      <pubDate>Wed, 11 Mar 2026 10:46:08 +0000</pubDate>
      <link>https://dev.to/akeel_almas_9a2ada3db4257/harness-powers-of-deepar-and-custom-overlay-with-ant-media-android-sdk-4792</link>
      <guid>https://dev.to/akeel_almas_9a2ada3db4257/harness-powers-of-deepar-and-custom-overlay-with-ant-media-android-sdk-4792</guid>
      <description>&lt;p&gt;Live streaming has evolved beyond simple camera-to-viewer broadcasts. Today’s audiences expect interactive content with visual effects, branding elements, and augmented reality features.&lt;/p&gt;

&lt;p&gt;In this blog, we explore two ways to enhance Android live streams using Ant Media Server&lt;br&gt;
:&lt;/p&gt;

&lt;p&gt;• DeepAR integration for real-time AR filters and face effects&lt;br&gt;
• Custom Canvas overlays for adding logos, text, or graphics on the video before streaming&lt;/p&gt;

&lt;p&gt;Both approaches use the Ant Media Android SDK&lt;br&gt;
 and leverage Ant Media Server’s WebRTC streaming&lt;br&gt;
 to deliver ultra-low latency streams with real-time visual enhancements.&lt;/p&gt;

&lt;p&gt;GitHub Repository:&lt;br&gt;
&lt;a href="https://github.com/USAMAWIZARD/AntMedia-DeepAR-And-Overlay" rel="noopener noreferrer"&gt;https://github.com/USAMAWIZARD/AntMedia-DeepAR-And-Overlay&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>HD vs SD Streaming: The Broadcaster’s Complete Guide to Choosing the Right Video Resolution</title>
      <dc:creator>Akeel Almas</dc:creator>
      <pubDate>Wed, 25 Feb 2026 10:46:43 +0000</pubDate>
      <link>https://dev.to/akeel_almas_9a2ada3db4257/hd-vs-sd-streaming-the-broadcasters-complete-guide-to-choosing-the-right-video-resolution-4eof</link>
      <guid>https://dev.to/akeel_almas_9a2ada3db4257/hd-vs-sd-streaming-the-broadcasters-complete-guide-to-choosing-the-right-video-resolution-4eof</guid>
      <description>&lt;p&gt;Test HD, SD &amp;amp; Adaptive Bitrate Streaming with Ant Media Server&lt;/p&gt;

&lt;p&gt;Choosing between HD and SD is easier when you can test both in a real environment.&lt;/p&gt;

&lt;p&gt;Ant Media supports streaming from 240p up to 4K with adaptive bitrate (ABR) across WebRTC, HLS, and DASH. You can configure custom bitrate ladders, enable GPU-accelerated transcoding, and monitor real-time bandwidth usage directly from the dashboard.&lt;/p&gt;

&lt;p&gt;If you want to validate:&lt;/p&gt;

&lt;p&gt;• 480p vs 720p vs 1080p quality&lt;br&gt;
• WebRTC ultra-low latency performance&lt;br&gt;
• ABR switching behavior under real bandwidth conditions&lt;br&gt;
• GPU vs CPU transcoding efficiency&lt;/p&gt;

&lt;p&gt;Start with a free trial and test your exact HD/SD configuration before going live.&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://antmedia.io/free-trial/" rel="noopener noreferrer"&gt;https://antmedia.io/free-trial/&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Run Ant Media Server on Azure — Free Credits Available Through Azure Sponsorship</title>
      <dc:creator>Akeel Almas</dc:creator>
      <pubDate>Wed, 18 Feb 2026 10:42:02 +0000</pubDate>
      <link>https://dev.to/akeel_almas_9a2ada3db4257/run-ant-media-server-on-azure-free-credits-available-through-azure-sponsorship-oe7</link>
      <guid>https://dev.to/akeel_almas_9a2ada3db4257/run-ant-media-server-on-azure-free-credits-available-through-azure-sponsorship-oe7</guid>
      <description>&lt;p&gt;Like every year, Ant Media Server is proud to participate in the Microsoft Azure Sponsorship Program in 2026, offering free infrastructure credits to qualified users.&lt;/p&gt;

&lt;p&gt;Azure Sponsorship Program will grant qualified users access to complimentary infrastructure for thorough evaluations of Ant Media Server Enterprise Edition on Azure Marketplace. This program offers evaluation subscriptions to Azure for up to 90 days for qualified proofs of concept (PoC). &lt;/p&gt;

&lt;p&gt;Azure Sponsorship&lt;br&gt;
As part of the Microsoft Azure Sponsorship program and in coordination with Microsoft, Ant Media is offering up to $1,000 of free Azure credits of infrastructure for assessments, proof of concepts, and deployments for each applicant. This program could also help for the clients who plans to migrate from Azure Media Services to Ant Media Server in Azure Marketplace.&lt;/p&gt;

&lt;p&gt;Available to eligible applicants, who require to have PAYG or EA Subscription on Azure,  these funds can help you to experience the live streaming and VoD services with Ant Media Server, and also integration capability with your backend to deliver your use case. &lt;/p&gt;

&lt;p&gt;Learn more about Ant Media Server Enterprise Edition Cluster in Azure&lt;br&gt;
To learn more about running Ant Media Enterprise Edition Cluster on Azure, please refer to read this guide.&lt;/p&gt;

&lt;p&gt;Learn more about the Microsoft Azure Sponsorship Program&lt;br&gt;
Interested in taking advantage of the Azure Sponsorship Program? Send us a note at &lt;a href="mailto:contact@antmedia.io"&gt;contact@antmedia.io&lt;/a&gt; to be connected with an Ant Media Solution specialist who can help you get started. &lt;/p&gt;

&lt;p&gt;Learn more about how to migrate from Azure Media Services to Ant Media Server&lt;br&gt;
To learn more about switching from Azure Media Services to Ant Media Server Enterprise Edition in Azure Marketplace, please refer to read this guide.&lt;/p&gt;

&lt;p&gt;Please just note that Azure Sponsorship can work only on pay-as-you-go (PAYG) or Enterprise Agreement (EA) Azure subscriptions. We cannot add free Azure on any other Azure subscription type (e.g., MCA, through CSP) or to accounts that already have free Azure added to them.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>IP Camera Streaming – Full Guide For Beginners</title>
      <dc:creator>Akeel Almas</dc:creator>
      <pubDate>Wed, 11 Feb 2026 11:01:56 +0000</pubDate>
      <link>https://dev.to/akeel_almas_9a2ada3db4257/ip-camera-streaming-full-guide-for-beginners-3mn9</link>
      <guid>https://dev.to/akeel_almas_9a2ada3db4257/ip-camera-streaming-full-guide-for-beginners-3mn9</guid>
      <description>&lt;p&gt;If you're looking for a production-ready way to stream IP cameras using RTSP to WebRTC, HLS, or CMAF with ultra-low latency, you can use Ant Media Server. It allows you to ingest RTSP from IP cameras and restream to browsers via WebRTC (sub-second latency) or HLS/CMAF for wider playback support. You can explore the full setup guide here:&lt;br&gt;
👉 &lt;a href="https://antmedia.io/ip-camera-streaming-guide-how-to-setup-an-ip-camera/" rel="noopener noreferrer"&gt;https://antmedia.io/ip-camera-streaming-guide-how-to-setup-an-ip-camera/&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Bitrate vs. Resolution: 4 Key Differences and Their Role in Video Streaming</title>
      <dc:creator>Akeel Almas</dc:creator>
      <pubDate>Wed, 04 Feb 2026 08:44:24 +0000</pubDate>
      <link>https://dev.to/akeel_almas_9a2ada3db4257/bitrate-vs-resolution-4-key-differences-and-their-role-in-video-streaming-4a8</link>
      <guid>https://dev.to/akeel_almas_9a2ada3db4257/bitrate-vs-resolution-4-key-differences-and-their-role-in-video-streaming-4a8</guid>
      <description>&lt;p&gt;Understanding video bitrate vs resolution is critical for delivering high-quality, low-latency streaming experiences. While resolution defines how much visual detail a video contains, bitrate determines how efficiently that detail is transmitted over the network. Getting this balance wrong often leads to pixelation, buffering, or unnecessary bandwidth costs.&lt;/p&gt;

&lt;p&gt;Modern streaming platforms like Ant Media Server help solve this by combining adaptive bitrate streaming with ultra-low latency protocols such as WebRTC and scalable delivery via HLS. This allows broadcasters to dynamically adjust bitrate, resolution, and frame rate based on network conditions—ensuring smooth playback for live sports, webinars, video calls, and real-time applications.&lt;/p&gt;

&lt;p&gt;If you’re building a professional streaming workflow and want sub-second latency with full control over bitrate, resolution, and codecs, learn more at &lt;a href="https://antmedia.io" rel="noopener noreferrer"&gt;https://antmedia.io&lt;/a&gt;&lt;br&gt;
.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>networking</category>
      <category>performance</category>
      <category>webdev</category>
    </item>
    <item>
      <title>3 Simple Steps to Build a ReactJS Component for WebRTC Live Streaming</title>
      <dc:creator>Akeel Almas</dc:creator>
      <pubDate>Wed, 28 Jan 2026 09:16:04 +0000</pubDate>
      <link>https://dev.to/akeel_almas_9a2ada3db4257/3-simple-steps-to-build-a-reactjs-component-for-webrtc-live-streaming-5a8</link>
      <guid>https://dev.to/akeel_almas_9a2ada3db4257/3-simple-steps-to-build-a-reactjs-component-for-webrtc-live-streaming-5a8</guid>
      <description>&lt;p&gt;ReactJS is one of the most popular JavaScript frameworks used to power extremely dynamic web applications. By building a ReactJS component, we can develop powerful applications that seamlessly integrate Ant Media Server into React, making it more versatile and engaging.&lt;/p&gt;

&lt;p&gt;Ant Media Server provides ultra-low latency WebRTC streaming capabilities that work seamlessly with modern JavaScript frameworks. While Ant Media offers an array of Software Development Kits (SDKs), for React applications, the JavaScript SDK is the ideal choice. In this guide, we will take you through a step-by-step process of harnessing the capabilities of the Ant Media JavaScript SDK in conjunction with React.&lt;/p&gt;

&lt;p&gt;Our focus will be on publishing a WebRTC stream, covering all the essential setup steps such as importing dependencies, initializing the SDK, handling publishing events, and designing a user-friendly interface for the ReactJS component.&lt;/p&gt;

&lt;p&gt;Let’s dive into the tutorial and get started with integrating Ant Media JavaScript SDK into your ReactJS project!&lt;/p&gt;

&lt;p&gt;Table of Contents&lt;br&gt;
Prerequisites&lt;br&gt;
Step 1: Create a New ReactJS Project&lt;br&gt;
Step 2: Install Dependencies&lt;br&gt;
Step 3: Create the ReactJS Component&lt;br&gt;
Understanding the code&lt;br&gt;
Step 4: Update the App Component&lt;br&gt;
Step 5: Run the Application&lt;br&gt;
Play Component&lt;br&gt;
Frequently Asked Questions&lt;br&gt;
Conclusion&lt;br&gt;
Prerequisites&lt;br&gt;
ReactJS Component for WebRTC Live Streaming&lt;br&gt;
Before getting started, make sure you have the following prerequisites:&lt;/p&gt;

&lt;p&gt;Node.js installed on your machine&lt;br&gt;
Basic knowledge of React and JavaScript&lt;br&gt;
An Ant Media Server instance (Community or Enterprise Edition)&lt;br&gt;
Full Code is Available on Github.&lt;/p&gt;

&lt;p&gt;Step 1: Create a New ReactJS Project&lt;br&gt;
Start by creating a new ReactJS project using Create React App. Open your terminal and run the following command:&lt;/p&gt;

&lt;p&gt;1&lt;br&gt;
npx create-react-app ant-media-streaming&lt;br&gt;
This command will create a new directory named ant-media-streaming with a basic React project structure.&lt;/p&gt;

&lt;p&gt;Step 2: Install Dependencies&lt;br&gt;
Navigate to the project directory and install the required dependencies. Run the following command:&lt;/p&gt;

&lt;p&gt;1&lt;br&gt;
2&lt;br&gt;
3&lt;br&gt;
cd ant-media-streaming&lt;br&gt;
npm i &lt;a class="mentioned-user" href="https://dev.to/antmedia"&gt;@antmedia&lt;/a&gt;/webrtc_adaptor &lt;br&gt;
npm i bootstrap react-bootstrap&lt;br&gt;
This command will install the Ant Media JS SDK, Bootstrap, and React Bootstrap packages. The &lt;a class="mentioned-user" href="https://dev.to/antmedia"&gt;@antmedia&lt;/a&gt;/webrtc_adaptor provides the core functionality for WebRTC streaming integration.&lt;/p&gt;

&lt;p&gt;Step 3: Create the ReactJS Component&lt;br&gt;
Inside the src directory, create a new file named PublishingComponent.js. This file will contain the code for the publishing component. Open PublishingComponent.js and add the following code:&lt;/p&gt;

&lt;p&gt;Full Code is Available on Github.&lt;/p&gt;

&lt;p&gt;import React, { useState, useEffect, useRef } from 'react';&lt;br&gt;
import { Button, Container, Row, Col } from 'react-bootstrap';&lt;br&gt;
import 'bootstrap/dist/css/bootstrap.min.css';&lt;br&gt;
import { WebRTCAdaptor } from '&lt;a class="mentioned-user" href="https://dev.to/antmedia"&gt;@antmedia&lt;/a&gt;/webrtc_adaptor';&lt;/p&gt;

&lt;p&gt;const PublishingComponent = () =&amp;gt; {&lt;br&gt;
  const [publishing, setPublishing] = useState(false);&lt;br&gt;
  const [websocketConnected, setWebsocketConnected] = useState(false);&lt;br&gt;
  const [streamId, setStreamId] = useState('stream123');&lt;br&gt;
  const webRTCAdaptor = useRef(null);&lt;br&gt;
  var publishedStreamId = useRef(null);&lt;/p&gt;

&lt;p&gt;const handlePublish = () =&amp;gt; {&lt;br&gt;
    setPublishing(true);&lt;br&gt;
    webRTCAdaptor.current.publish(streamId);&lt;br&gt;
    publishedStreamId.current=streamId&lt;/p&gt;

&lt;p&gt;};&lt;/p&gt;

&lt;p&gt;const handleStopPublishing = () =&amp;gt; {&lt;br&gt;
    setPublishing(false);&lt;br&gt;
    webRTCAdaptor.current.stop(publishedStreamId.current);&lt;br&gt;
  };&lt;/p&gt;

&lt;p&gt;const handleStreamIdChange = (event) =&amp;gt; {&lt;br&gt;
    setStreamId(event.target.value);&lt;br&gt;
  };&lt;/p&gt;

&lt;p&gt;useEffect(() =&amp;gt; {&lt;br&gt;
if(webRTCAdaptor.current === undefined || webRTCAdaptor.current === null){&lt;br&gt;
    webRTCAdaptor.current = new WebRTCAdaptor({&lt;br&gt;
      websocket_url: 'wss://test.antmedia.io:/WebRTCAppEE/websocket',&lt;br&gt;
      mediaConstraints: {&lt;br&gt;
        video: true,&lt;br&gt;
        audio: true,&lt;br&gt;
      },&lt;br&gt;
      peerconnection_config: {&lt;br&gt;
        iceServers: [{ urls: 'stun:stun1.l.google.com:19302' }],&lt;br&gt;
      },&lt;br&gt;
      sdp_constraints: {&lt;br&gt;
        OfferToReceiveAudio: false,&lt;br&gt;
        OfferToReceiveVideo: false,&lt;br&gt;
      },&lt;br&gt;
      localVideoId: 'localVideo',&lt;br&gt;
      dataChannelEnabled: true,&lt;br&gt;
      callback: (info, obj) =&amp;gt; {&lt;br&gt;
        if (info === 'initialized') {&lt;br&gt;
          setWebsocketConnected(true);&lt;br&gt;
        }&lt;br&gt;
        console.log(info, obj);&lt;br&gt;
      },&lt;br&gt;
      callbackError: function (error, message) {&lt;br&gt;
        console.log(error, message);&lt;br&gt;
      },&lt;br&gt;
    });&lt;br&gt;
  }&lt;br&gt;
  }, []);&lt;/p&gt;

&lt;p&gt;return (&lt;br&gt;
    &lt;br&gt;
      &lt;/p&gt;
&lt;h1&gt;Publish Page&lt;/h1&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  &amp;lt;Row className="mb-4"&amp;gt;
    &amp;lt;Col&amp;gt;
      &amp;lt;video
        id="localVideo"
        controls
        autoPlay
        muted
        style={{
          width: '40vw',
          height: '60vh',
          maxWidth: '100%',
          maxHeight: '100%',
        }}
      &amp;gt;&amp;lt;/video&amp;gt;
    &amp;lt;/Col&amp;gt;
  &amp;lt;/Row&amp;gt;
  &amp;lt;Row className="justify-content-center"&amp;gt;
    &amp;lt;Row&amp;gt;
      &amp;lt;div className="mb-3"&amp;gt;
        &amp;lt;input
          className="form-control form-control-lg"
          type="text"
          defaultValue={streamId}
          onChange={handleStreamIdChange}
        /&amp;gt;
        &amp;lt;label className="form-label" htmlFor="streamId"&amp;gt;
          Enter Stream Id
        &amp;lt;/label&amp;gt;
      &amp;lt;/div&amp;gt;
    &amp;lt;/Row&amp;gt;
    &amp;lt;Col&amp;gt;
      {!publishing ? (
        &amp;lt;Button variant="primary" disabled={!websocketConnected} onClick={handlePublish}&amp;gt;
          Start Publishing
        &amp;lt;/Button&amp;gt;
      ) : (
        &amp;lt;Button variant="danger" onClick={handleStopPublishing}&amp;gt;
          Stop Publishing
        &amp;lt;/Button&amp;gt;
      )}
    &amp;lt;/Col&amp;gt;
  &amp;lt;/Row&amp;gt;
&amp;lt;/Container&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;);&lt;br&gt;
};&lt;/p&gt;

&lt;p&gt;export default PublishingComponent;&lt;br&gt;
view rawsrc/PublishingComponent.js delivered with ❤ by emgithub&lt;br&gt;
Understanding the code&lt;br&gt;
Full Code is Available on Github.&lt;/p&gt;

&lt;p&gt;Part 1: Importing Dependencies&lt;br&gt;
import React, { useState, useEffect, useRef } from 'react';&lt;br&gt;
import { Button, Container, Row, Col } from 'react-bootstrap';&lt;br&gt;
import 'bootstrap/dist/css/bootstrap.min.css';&lt;br&gt;
import { WebRTCAdaptor } from '&lt;a class="mentioned-user" href="https://dev.to/antmedia"&gt;@antmedia&lt;/a&gt;/webrtc_adaptor';&lt;br&gt;
At the top of this ReactJS component, we import the necessary dependencies for our component. These include React, the useState, useEffect, and useRef hooks, Bootstrap components (Button, Container, Row, and Col), the Bootstrap CSS, and the WebRTCAdaptor from the Ant Media JS SDK.&lt;/p&gt;

&lt;p&gt;We imported WebRTCAdaptor from the JS SDK which will act as an interface for us to publish and play streams from Ant Media Server&lt;/p&gt;

&lt;p&gt;Part 2: Defining the Publishing Component&lt;br&gt;
const PublishingComponent = () =&amp;gt; {&lt;br&gt;
  const [publishing, setPublishing] = useState(false);&lt;br&gt;
  const [websocketConnected, setWebsocketConnected] = useState(false);&lt;br&gt;
  const [streamId, setStreamId] = useState('stream123');&lt;/p&gt;

&lt;p&gt;const webRTCAdaptor = useRef(null);&lt;br&gt;
  var publishedStreamId = useRef(null);&lt;/p&gt;

&lt;p&gt;// ... Rest of the component code ...&lt;br&gt;
}&lt;br&gt;
Here we define the PublishingComponent functional component. Inside this ReactJS component, we use the useState hook to create state variables: publishing, websocketConnected, and streamId. These variables will manage the publishing state, WebSocket connection status, and the entered stream ID, respectively.&lt;/p&gt;

&lt;p&gt;We also create a webRTCAdaptor ref using the useRef hook. This ref will hold an instance of the WebRTCAdaptor class from the Ant Media JS SDK.&lt;/p&gt;

&lt;p&gt;Part 3: Handling Publishing Events&lt;br&gt;
const handlePublish = () =&amp;gt; {&lt;br&gt;
  publishedStreamId.current=streamId&lt;br&gt;
  setPublishing(true);&lt;br&gt;
  webRTCAdaptor.current.stop(streamId);&lt;br&gt;
};&lt;/p&gt;

&lt;p&gt;const handleStopPublishing = () =&amp;gt; {&lt;br&gt;
  setPublishing(false);&lt;br&gt;
  webRTCAdaptor.current.stop(publishedStreamId.current);&lt;br&gt;
};&lt;/p&gt;

&lt;p&gt;const handleStreamIdChange = (event) =&amp;gt; {&lt;br&gt;
  setStreamId(event.target.value);&lt;br&gt;
};&lt;br&gt;
Next we define the event handler functions for publishing, stopping publishing, and stream ID change events. The handlePublish function sets the publishing state to true and calls the publish method of the webRTCAdaptor ref with the streamId.&lt;/p&gt;

&lt;p&gt;The handleStopPublishing function sets the publishing state to false and calls the stop method of the webRTCAdaptor ref with the publishedStreamId.&lt;/p&gt;

&lt;p&gt;The handleStreamIdChange function is triggered when the value of the stream ID input field changes. It updates the streamId state with the new value.&lt;/p&gt;

&lt;p&gt;Part 4: Initializing WebRTC Adaptor&lt;br&gt;
Note : Please Change The Ant Media IP in the WebRTCAdaptor Initialization&lt;/p&gt;

&lt;p&gt;useEffect(() =&amp;gt; {&lt;br&gt;
    webRTCAdaptor.current = new WebRTCAdaptor({&lt;br&gt;
      websocket_url: 'wss://AMS_IP:/WebRTCAppEE/websocket',&lt;br&gt;
      mediaConstraints: {&lt;br&gt;
        video: true,&lt;br&gt;
        audio: true,&lt;br&gt;
      },&lt;br&gt;
      peerconnection_config: {&lt;br&gt;
        iceServers: [{ urls: 'stun:stun1.l.google.com:19302' }],&lt;br&gt;
      },&lt;br&gt;
      sdp_constraints: {&lt;br&gt;
        OfferToReceiveAudio: false,&lt;br&gt;
        OfferToReceiveVideo: false,&lt;br&gt;
      },&lt;br&gt;
      localVideoId: 'localVideo',&lt;br&gt;
      callback: (info, obj) =&amp;gt; {&lt;br&gt;
        if (info === 'initialized') {&lt;br&gt;
          setWebsocketConnected(true);&lt;br&gt;
        }&lt;br&gt;
        console.log(info, obj);&lt;br&gt;
      },&lt;br&gt;
      callbackError: function (error, message) {&lt;br&gt;
        console.log(error, message);&lt;br&gt;
      },&lt;br&gt;
    });&lt;br&gt;
}, []);&lt;br&gt;
To initialize the webRTCAdaptor, we’ll use the useEffect hook. The WebRTCAdaptor class handles all WebRTC connection management, including peer connections, media streams, and signaling through WebSocket connections.&lt;/p&gt;

&lt;p&gt;The WebRTCAdaptor configuration requires several key parameters including websocket_url, mediaConstraints, and callback functions. For production deployments, you should implement proper stream security and token-based authentication.&lt;/p&gt;

&lt;p&gt;Step 4: Update the App Component&lt;br&gt;
Open the src/App.js file and replace its content with the following code:&lt;/p&gt;

&lt;p&gt;In the above code, we import the PublishingComponent and render it inside the App component.&lt;/p&gt;

&lt;p&gt;import PublishingComponent from './PublishingComponent';&lt;br&gt;
import PlayingComponent from './PlayingComponent';&lt;/p&gt;

&lt;p&gt;const App = () =&amp;gt; {&lt;br&gt;
  return (&lt;br&gt;
    &lt;/p&gt;
&lt;br&gt;
      &lt;br&gt;
    &lt;br&gt;
  );&lt;br&gt;
};

&lt;p&gt;export default App;&lt;br&gt;
view rawsrc/App.js delivered with ❤ by emgithub&lt;br&gt;
Step 5: Run the Application&lt;br&gt;
Save all the changes, and in your terminal, run the following command inside the project directory:&lt;/p&gt;

&lt;p&gt;npm start&lt;br&gt;
This command will start the development server, and you can view the application in your browser at &lt;a href="http://localhost:3000" rel="noopener noreferrer"&gt;http://localhost:3000&lt;/a&gt;. You should see the “Live Streaming” heading, a video element for displaying the local video stream, an input field for entering the stream ID, and a “Start Publishing” button.&lt;/p&gt;

&lt;p&gt;Play Component&lt;br&gt;
The ReactJS component built for playing the live stream is available here. The Play and Publish components are designed separately, but for the sake of simplicity they can be merged together if preferred. For advanced playback features, explore our complete playback documentation.&lt;/p&gt;

&lt;p&gt;To use the player page, create a new component file called PlayingComponent.js and add the following code, which is available here.&lt;br&gt;
Update the root ReactJS component to import the new play component as in the example below.&lt;br&gt;
Run the npm start command in the directory.&lt;br&gt;
import PlayingComponent from './PlayingComponent';&lt;/p&gt;

&lt;p&gt;const App = () =&amp;gt; {&lt;br&gt;
  return (&lt;br&gt;
    &lt;/p&gt;
&lt;br&gt;
      &lt;br&gt;
    &lt;br&gt;
  );&lt;br&gt;
};&lt;br&gt;
react&lt;br&gt;
Player Page&lt;br&gt;
Frequently Asked Questions&lt;br&gt;
Can I use Ant Media JavaScript SDK with React 18?&lt;br&gt;
Yes, the Ant Media JavaScript SDK works with React 18 and all React versions that support ES6+ syntax. The @antmedia/webrtc_adaptor package integrates seamlessly with modern React applications using hooks like useState and useRef.

&lt;p&gt;What is the minimum latency achievable with WebRTC streaming in React?&lt;br&gt;
WebRTC streaming through Ant Media Server achieves sub-second latency, typically between 0.5 to 1 second. This ultra-low latency is maintained regardless of whether you implement the streaming component in React, Vue, or vanilla JavaScript.&lt;/p&gt;

&lt;p&gt;Do I need separate components for publishing and playing streams?&lt;br&gt;
No, you can combine publishing and playing functionality in a single React component. However, separating them into distinct components improves code maintainability and allows independent reuse across your application.&lt;/p&gt;

&lt;p&gt;How many concurrent streams can a React component handle?&lt;br&gt;
A single React component can handle multiple concurrent streams limited only by browser capabilities and network bandwidth. Ant Media Server’s clustering feature supports scaling to thousands of concurrent viewers per stream.&lt;/p&gt;

&lt;p&gt;Can I deploy React WebRTC components in production without modifications?&lt;br&gt;
Yes, but you must replace the development WebSocket URL with your production Ant Media Server URL and implement proper error handling, connection recovery, and user permission management for camera/microphone access.&lt;/p&gt;

&lt;p&gt;What browsers support WebRTC with React components?&lt;br&gt;
All modern browsers support WebRTC: Chrome 74+, Firefox 66+, Safari 14+, Edge 79+, and Opera 62+. Mobile browsers including Chrome Mobile and Safari iOS also provide full WebRTC support for React applications.&lt;/p&gt;

&lt;p&gt;Conclusion&lt;br&gt;
You’ve now learned how to integrate the Ant Media JavaScript SDK into a ReactJS application to publish and play WebRTC streams with ease. By building reusable React components and leveraging WebRTC’s real-time capabilities, you can create fast, interactive, and highly engaging web experiences.&lt;/p&gt;

&lt;p&gt;From setting up the SDK to handling publishing events and managing the UI, this guide gives you the foundation you need to start building real-time video features into your own React projects. Whether you’re working on live events, video conferencing tools, online classrooms, or interactive platforms, Ant Media Server provides the performance and scalability required for production use.&lt;/p&gt;

&lt;p&gt;For more advanced implementations, explore our guides on building video conferencing apps, implementing adaptive bitrate streaming, and scaling your infrastructure to handle thousands of concurrent users.&lt;/p&gt;

&lt;p&gt;Ready to take your streaming application to the next level? Check out our React Native SDK for building cross-platform mobile applications, or explore live WebRTC samples to see different use cases in action.&lt;/p&gt;

&lt;p&gt;Now it’s your turn to experiment, customize, and innovate. Start your free trial with Ant Media Server, explore the SDK further, and bring immersive real-time streaming to your React applications.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>react</category>
      <category>tutorial</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
