A common question from Castio users is:
“Why can I stream from Chrome, but not from Firefox or Safari—while viewers on those browsers can still watch perfectly?”
The behavior is intentional, expected, and rooted in browser-level technical limitations, not in Castio itself.
Castio.io relies on modern web standards for browser-based live encoding. Today, only Chromium-based browsers fully support everything required to broadcast—while Firefox and Safari remain limited to playback only.
This article explains why.
Streaming ≠ Watching: Two Very Different Capabilities
First, it’s important to separate two things:
- Viewing a live stream → passive playback
- Streaming live video → active capture + encoding + segmentation
Firefox and Safari are perfectly capable of watching live streams.
But streaming requires far more advanced browser features.
What Is Required to Stream Live from a Browser?
To stream live directly from WordPress (without external software), a browser must support:
- Camera & microphone capture
- Real-time video encoding
- Precise control over codecs (H.264, AAC)
- MediaRecorder with fine-grained configuration
- Stable chunked output suitable for HLS
- Consistent timing for low-latency streaming
Castio’s architecture is built around these requirements.
Why Chrome / Edge Work (and Firefox / Safari Don’t)
✅ Chromium Browsers (Chrome, Edge, Brave…)
Chromium-based browsers fully support:
MediaRecorderwith H.264 + AAC- Stable and predictable encoding output
- Configurable bitrate, framerate, and keyframes
- Reliable segment generation for HLS
- Hardware acceleration on most platforms
This makes them ideal for browser-side live encoding, which is the core of Castio’s streaming model.
👉 This is why Castio officially supports streaming from Chromium browsers.
❌ Firefox: Partial and Inconsistent MediaRecorder Support
Firefox does support MediaRecorder—but with major limitations:
- No stable H.264 encoding across platforms
- Codec availability varies by OS
- Poor control over encoding parameters
- Inconsistent timestamps
- Fragmented output not suitable for HLS pipelines
- Frequent desynchronization issues
These problems make Firefox unreliable for:
- Live encoding
- Segment-based streaming
- Low-latency pipelines
Firefox works well for WebRTC calls, but not for browser-to-HLS broadcasting.
❌ Safari: Strict Limitations and Closed Media Stack
Safari is even more restrictive:
- MediaRecorder support is limited and inconsistent
- Encoding options are extremely constrained
- No reliable real-time H.264 recording pipeline
- Heavy restrictions on background capture
- iOS/macOS impose aggressive power and privacy constraints
Safari is optimized for playback, not for live production.
Apple intentionally discourages browser-based broadcasting in favor of:
- Native apps
- AVFoundation-based tools
- External encoders
This is a platform decision—not a bug.
Why Viewing Works on All Browsers
Watching a live stream is much simpler.
Castio uses HLS (HTTP Live Streaming), which is:
- A mature, industry-standard protocol
- Natively supported by Safari
- Well-supported by Firefox via JavaScript players
- Extremely stable across all devices
For viewers:
- No camera
- No encoding
- No media processing
Just standard HTTP video delivery.
That’s why:
✅ Chrome can watch
✅ Firefox can watch
✅ Safari can watch
✅ Mobile devices can watch
Streaming and viewing are fundamentally different workloads.
Why Castio Does NOT Fall Back to WebRTC for Streaming
A natural question is:
“Why not use WebRTC so Firefox and Safari can stream too?”
Because WebRTC would:
- Break scalability
- Introduce per-viewer connections
- Require signaling servers
- Increase server costs
- Limit audience size
- Eliminate CDN compatibility
- Undermine Castio’s core architecture
Castio is a broadcasting platform, not a video-call system.
Supporting WebRTC just to enable Firefox/Safari streaming would compromise:
- Stability
- Cost predictability
- Unlimited viewers
- Shared hosting compatibility
That trade-off is not worth it.
This Is a Browser Limitation, Not a Castio Limitation
To be very clear:
- ❌ Castio is not blocking Firefox or Safari
- ❌ This is not a licensing restriction
- ❌ This is not artificial limitation
It is simply the current state of browser media APIs.
If Firefox or Safari one day offer:
- Full H.264 MediaRecorder support
- Stable segment-level output
- Reliable low-latency encoding
Castio will be able to support them.
Recommended Setup (Best Practice)
For streamers / broadcasters:
- ✅ Use Chrome, Edge, or any Chromium-based browser
- 🎥 Webcam + microphone
- 💻 Desktop or laptop (recommended)
For viewers:
- ✅ Any browser
- ✅ Any device
- ✅ No restrictions
This separation keeps Castio:
- Simple
- Stable
- Scalable
- Cost-free at scale
Why This Is Actually a Good Thing
By relying on browser-side encoding instead of server-side processing or WebRTC:
- No FFmpeg on your server
- No streaming daemons
- No CPU spikes
- No vendor lock-in
- Works even on cheap shared hosting
- Unlimited viewers
- CDN-compatible
The Chromium-only streaming requirement is the price of simplicity and scalability—and it’s a reasonable one.
Conclusion
Firefox and Safari can watch Castio live streams because HLS is universally supported.
They cannot stream because their browsers do not yet support the required real-time encoding APIs.
This is not a bug.
It’s not a limitation of WordPress.
And it’s not a limitation of Castio.
It’s the reality of browser technology in 2026.
If you want the simplest, most scalable way to stream live directly from WordPress, Castio’s Chromium-based streaming model is currently the best—and most future-proof—solution available.