This project comes from FUTO, which is now making a name for itself by releasing and maintaining OSS alternatives like this, as well as sponsoring development of other OSS options. I personally first came across them when Louis Rossmann announced his affiliation. Very excited to see where this goes!
As an aside, I wonder what it will take to get the protocol integrated into browsers? I presume Chrome is a foregone conclusion, but maybe Firefox and/or Brave would be interested in an integration?
Now we're talking! The experience of casting has recently become a bigger headache for me than ever. Last month, I made a comment on HN about how the original Chromecast was great and that I'm disappointed in the state of the current Chromecast devices; a lot of people seem to agree with this. I've also had trouble with Airplay since streaming from Quicktime seems to only support h264, and even that hasn't really worked for me even though my 1st gen Chromecast worked great before my TCL television fried it.
Casting video should be simple, straight forward, and open. Glad to see there's projects like this trying to solve this problem rather than leaving it up to advertising firms.
I swear like all of these things used to be so much better and if given a chance large companies will make it worse.
I'm glad we are taking this into our own hands. The programming community is learning that we have to make the software ourselves and also fund it ourselves to have quality software in the future.
The site talks about setting up a receiver, but I can't figure out how I would cast something to an FCast receiver, or what is currently available to cast.
Would it be possible (in theory) to build a receiver on an embedded platform, for instance an audio-only ESP32 speaker, or is there something in the protocol that requires a more powerful device?
The protocol has been designed by taking the commonalities between all different casting protocols like AirPlay and Chromecast as a base. This is what has been used to make version 1.0. I tried making it as simple as possible and low effort to implement.
For multiple speakers/screens, some kind of guarantee or description about the precision of the update callback would make it possible to synchronize multiple speakers and screens.
Any road map for Bandcamp and SoundCloud (logged in) support.
Briefly looked at SoundCloud script js, for the moment it seems to be written to pull frontpage with basic API implementation, correct me if I'm wrong.
> You can also potentially use the new casting standard to control some of your TV’s functions while casting media on it, a task at which both AirPlay and Chromecast are somewhat limited.
Feature ideas: PIP Picture-in-Picture, The ability to find additional videos and add to a [queue] playlist without stopping the playing video
Instead of waiting, hoping that big companies will implement the standard. Just make it as easy as possible to adopt by having receivers for all platforms and making client libraries that can cast to AirPlay, Chromecast, FCast and others seamlessly.
Doest current app support AirPlay and Chromecast as different receivers/backends? Websites doesn't mention anything about it. Is there any plan also for iOS app?
Some feedback:
I would also add dedicated buttons for downloading MacOS and Windows binaries - for typical users gitlab button will be to scary. Website also not clear if there is and SDK for developers (the one that supports also airplay and chromecast) and what languages bindings it supports.
The plan is that the FCast SDK will eventually allow you to cast (with a reduced feature set compared to FCast) to Chromecast, Airplay and others. Improving the download experience for users for sure is something we will look at.
GitHub has package repos for hosting package downloads.
A SLSA Builder or Generator can sign packages and container images with sigstore/cosign.
It's probably also possible to build and sign a repo metadata index with GitHub release attachment URLs and host that on GitHub Pages, but at scale to host releases you need a CDN and release signing keys to sign the repo metadata, and clients that update only when the release attachment signature matches the per-release per-platform key; but the app store does that for you
NymphCast has been around for years but it's still basically unheard of. This has more polished marketing (and a less weird name) but other than that I don't see what makes it any more likely to succeed.
UPnP/DLNA seems to be a bit of a disaster protocol wise. As you say the codec support is "eh whatever" which means whether it works or not depends on too many random factors. It's also a massively over-complicated design-by-committee relic.
There also isn't a good open source DLNA server (presumably because of the above issues).
That's actually pretty fair. I was ready to jump in and say that miniDLNA is such a server but having looking I see it's actually been unmaintained for 10+ years! It has worked pretty well for me but I think I must have just gotten everything in the right formats years ago so I don't notice the issues I see reported now (I used to just restart it to avoid the notify issues).
Presumably you still need some kind of media server for the fcast receiver to stream from when playing local media, I assumed that would be dlna based but what is the actual idea here?
Yes, 100% this is what I've ended up doing. There's existing support on a lot of platforms for DLNA and if you're really lucky, it works. I'd be interested in hearing what the advantages of something like this is.
Edit: And then there's stuff like Plex and Kodi too with existing servers and clients for numerous platforms. I'm fairly sure I can "share" a URI to the Kodi app on my phone and the Kodi server will stream it. I remember that working well but it's been a while.
DLNA is okay if the receiver supported the codecs well enough to avoid playback stalling. Though it lacks search and dashboard features.
I prefer having an app that can save progress and remember what I've already watched. (As a younger person I could recognize a show or movie from a glimpse while surfing. Nowadays I find myself rewatching for several minutes before recognizing the program.)
I think it depends on the server. I believe serviio supports it. Mediatomb supposedly could (another project I thought was dead but turns out has been reborn under the 'Gerbera' name!). They transcode the original stream into something that a dumb DLNA renderer (i.e. your TV) supports.
I am not counting on this to happen quickly if at all. Though if FCast is the thing everyone has access to (regardless of Apple TV, Fire TV, Android TV, etc) then maybe eventually it will happen. If you have a raspberry pi, and old computer or an old phone you aren't using, you can easily convert it into a FCast receiver. Doing the same with Chromecast is more tricky since the protocol is more extensive and most clients verify the certificates of the casting device to be authorized by Google.
Had not heard of Icecast before, but it doesn't look like they have the same aim of having receivers on every platform (AppleTV, Roku, TizenOS, Android, Linux, MacOS, Windows, ...)
In FCast, a "client" is a device or software application that discovers and
communicates with a "receiver".
The client, which can be a terminal client or an Android application, uses
the FCast protocol to send media content to the receiver, such as a TV or
media top box. The client initiates the media streaming by connecting to the
receiver, launching the media, and then the receiver begins playing the media.
Once the media is launched, the client can control the playback, allowing
operations like pause, resume, seek, and volume adjustment.
Seems like basically a client-server relationship, but with the "client" acting as a server and a "receiver" acting as a er... client?
But with the "client" being the thing to control the start/stop/etc of the media, which is a weird thing for a server to do.
The client provides a pointer (usually a URI but I think they also support playlists) of what to play. The receiver then requests the actual content directly from that URI and plays it. I guess it sends some kind of ok/fail response back to the client when it's done that.
The receiver does not send requests to the client. The receiver is server-like in that it responds to client requests, but it's not like a file server, those responses don't contain media data. Their description could be clearer.
As an aside, I wonder what it will take to get the protocol integrated into browsers? I presume Chrome is a foregone conclusion, but maybe Firefox and/or Brave would be interested in an integration?