Cast media to your TV
Casting made open source
Available for Linux, MacOS, Windows and Android.
Also available on the Google Play Store.
What is FCast?
Embracing Open Development
FCast is an open-source protocol designed to open wireless audio and video streaming to everybody. With support for various stream types like DASH, HLS, and mp4, it empowers developers to create their own unique streaming experiences. In contrast to traditional closed protocols, FCast champions open innovation. Developers can create custom receivers, integrate the client protocol into their own apps, or even enhance the protocol, contributing to an evolving open ecosystem. For more information click here.
How to Get Started with FCast?
Setting Up Your Environment
For users: Begin by setting up your receiver. Receivers compatible with Linux, Windows, MacOS (via Electron), or Android (native) are readily available. The receiver serves as the target for your media streams, and should be installed on the device you aim to cast to. Discover more about setting up your receiver here.
For developers: If you're looking to build a custom receiver or to integrate FCast into your existing application, you'll find a wealth of resources at your disposal. Start by reviewing our existing receiver implementations for inspiration and guidance. For an in-depth understanding of how FCast works, our protocol documentation is an indispensable resource.
Explore the distinctive features of FCast that make it a dynamic, user-friendly, and developer-centric platform for media streaming.
FCast offers a fully open-source protocol, enabling unrestricted innovation in the field of media streaming.
Various Stream Type Support
FCast supports a range of stream types like DASH, HLS, and mp4, accommodating diverse media content.
FCast's core implementation runs seamlessly on Linux, Windows, MacOS (via Electron), and Android (native), ensuring a broad range of device support.
Full Playback Control
The client retains full control over playback, capable of operations like pause, resume, seek, and volume adjustment, for a tailored user experience.
mDNS for Discovery
FCast uses mDNS to discover available receivers, simplifying the connection process.
The receiver provides real-time updates about the playback status to the client, ensuring synchronized communication.
As an open-source project, FCast thrives on the contributions from the global developer community, fostering continuous growth and enhancement.
Custom Receiver Implementation
Developers have the freedom to create custom receivers, allowing them to explore new possibilities for content delivery.
We developed FCast to democratize the field of media streaming. By creating an open-source protocol, we aim to encourage innovation and offer developers the freedom to create their own custom receiver implementations. This way, we're not just providing a tool for streaming media content, but also creating a dynamic platform for technological growth and creativity.
Unlike Chromecast or AirPlay, which are closed protocols, FCast is entirely open-source. This allows developers to create custom receiver implementations and integrate FCast into their existing applications, making it a more flexible and adaptable option.
FCast has provided example implementations of both clients and receivers in Android, Rust, and TypeScript. You can use these as a reference while building your own application. Additionally, you can consult the protocol documentation for specific details on implementing the FCast protocol. Despite its powerful capabilities, the protocol is designed to be simple and straightforward to implement, making it accessible for developers at all levels.
FCast uses mDNS (Multicast Domain Name System) to discover available receivers on the network, simplifying the process of establishing a connection between the client and receiver.
Absolutely! As an open-source project, FCast thrives on community contributions. You can contribute to FCast by enhancing the codebase, implementing new features, fixing bugs, and more. You can find more details in our CONTRIBUTING.md file on our repository.