1
0
Fork 0
mirror of https://gitlab.com/futo-org/fcast.git synced 2025-06-24 21:25:23 +00:00

Updated README.md

This commit is contained in:
Koen 2023-06-20 09:36:56 +02:00
parent e5fe8b12c9
commit dc44b877a9
2 changed files with 117 additions and 117 deletions

117
README.md
View file

@ -1,107 +1,40 @@
# What is FCast?
# FCast
FCast is a protocol designed for wireless streaming of audio and video content between devices. Unlike alternative protocols like Chromecast and AirPlay, FCast is an open source protocol that allows for custom receiver implementations, enabling third-party developers to create their own receiver devices or integrate the FCast protocol into their own apps.
FCast is an open source protocol that enables wireless streaming of audio and video content between devices, supporting various stream types such as DASH, HLS, and mp4.
# Why do I need a receiver?
Unlike proprietary protocols like Chromecast and AirPlay, FCast offers an open approach, empowering third-party developers to create their own receiver devices or integrate the FCast protocol into their own apps.
The FCast receiver is a working receiver implementation compatible with Linux, Windows and MacOS that supports various stream types such as DASH, HLS and mp4.
## Features
![FCast receiver running on Linux](images/Untitled2.png)
- Simple
- Open source protocol for audio and video content streaming
- Support for various stream types (DASH, HLS, mp4)
- Compatibility with Linux, Windows, MacOS, and Android
- mDNS for device discovery
- Extensive freedom for developers to create custom receivers
# Protocol specification
## Client-Receiver Interaction in FCast
The protocol specification can be found here https://gitlab.futo.org/videostreaming/fcast/-/wikis/home
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.
# Clients
A "receiver", in this context, is a software implementation running on various platforms (Linux, Windows, MacOS, Android, ...) that receives media content from the client. It continuously provides updates to the client about the current state of playback.
# Receivers
## Project Structure
There are currently receivers for
- Receivers
- [**Android**](receivers/android) native.
- [**MacOS, Windows, Linux**](receivers/electron) electron.
- Clients
- [**Grayjay**](https://gitlab.futo.org/videostreaming/platformplayer) is a player that exposes multiple video websites as sources in the app.
- Apple TV (future)
- Browser plugin (future)
1. Download the latest build for your platform from https://gitlab.futo.org/videostreaming/fcast/-/releases or build it yourself by following the build instructions.
2. Unzip the archive at your desired location.
3. Run the FCast receiver.
- **MacOS:** Run the FCastReceiver application
- **Linux:** Run the `fcast-receiver` application
- **Windows:** Run the `fcast-receiver.exe` application
4. You should now have the receiver running on the background. On desktop it will have a tray icon as such allowing you to close the receiver.
## Contributing
![FCast receiver tray icon running on Linux](images/Untitled.png)
We welcome all contributions. Please read our CONTRIBUTING.md before submitting any pull requests.
# Connecting to the FCast receiver with the video streaming application
## License
## Automatic discovery
1. Open the video streaming application.
2. Open the FCast receiver or restart it.
3. The receiver should now be visible in the casting dialog under "Discovered Devices".
4. If this failed, try manually connecting it. Automatic discovery does not work on all network types.
5. Click start to connect to the device.
6. Start watching content.
## Manual
1. Open the FCast receiver.
2. Find the IP of the device running the receiver.
3. Open the video streaming application.
4. Open the casting dialog.
5. Click add to manually add a device.
6. Select the FCast protocol, enter a descriptive name, the IP you found and port 46899.
7. Click start to connect to the device.
8. Start watching content.
![Manual add dialog in video streaming app](images/Untitled3.png)
# How to build
# Preparing for build
Run the following commands in the `root` directory.
```
npm install
```
# Building
Run the following commands in the `root` directory.
```
npm run build
```
# Packaging
## Windows
Run the following commands in the `packaging` directory.
```
sh package.sh win32-x64
```
## MacOS ARM64
Run the following commands in the `packaging` directory.
```
sh package-macos.sh darwin-arm64
```
## MacOS x64
Run the following commands in the `packaging` directory.
```
sh package-macos.sh darwin-x64
```
## Linux x64
Run the following commands in the `packaging` directory.
```
sh package.sh linux-x64
```
This project is licensed under the MIT License - see the LICENSE.md file for details.

View file

@ -1,40 +1,107 @@
# FCast
# What is FCast?
FCast is an open source protocol that enables wireless streaming of audio and video content between devices, supporting various stream types such as DASH, HLS, and mp4.
FCast is a protocol designed for wireless streaming of audio and video content between devices. Unlike alternative protocols like Chromecast and AirPlay, FCast is an open source protocol that allows for custom receiver implementations, enabling third-party developers to create their own receiver devices or integrate the FCast protocol into their own apps.
Unlike proprietary protocols like Chromecast and AirPlay, FCast offers an open approach, empowering third-party developers to create their own receiver devices or integrate the FCast protocol into their own apps.
# Why do I need a receiver?
## Features
The FCast receiver is a working receiver implementation compatible with Linux, Windows and MacOS that supports various stream types such as DASH, HLS and mp4.
- Simple
- Open source protocol for audio and video content streaming
- Support for various stream types (DASH, HLS, mp4)
- Compatibility with Linux, Windows, MacOS, and Android
- mDNS for device discovery
- Extensive freedom for developers to create custom receivers
![FCast receiver running on Linux](images/Untitled2.png)
## Client-Receiver Interaction in FCast
# Protocol specification
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.
The protocol specification can be found here https://gitlab.futo.org/videostreaming/fcast/-/wikis/home
A "receiver", in this context, is a software implementation running on various platforms (Linux, Windows, MacOS, Android, ...) that receives media content from the client. It continuously provides updates to the client about the current state of playback.
# Clients
## Project Structure
# Receivers
- Receivers
- [**Android**](receivers/android) native.
- [**MacOS, Windows, Linux**](receivers/electron) electron.
There are currently receivers for
- Clients
- [**Grayjay**](https://gitlab.futo.org/videostreaming/platformplayer) is a player that exposes multiple video websites as sources in the app.
- Apple TV (future)
- Browser plugin (future)
## Contributing
1. Download the latest build for your platform from https://gitlab.futo.org/videostreaming/fcast/-/releases or build it yourself by following the build instructions.
2. Unzip the archive at your desired location.
3. Run the FCast receiver.
- **MacOS:** Run the FCastReceiver application
- **Linux:** Run the `fcast-receiver` application
- **Windows:** Run the `fcast-receiver.exe` application
4. You should now have the receiver running on the background. On desktop it will have a tray icon as such allowing you to close the receiver.
We welcome all contributions. Please read our CONTRIBUTING.md before submitting any pull requests.
![FCast receiver tray icon running on Linux](images/Untitled.png)
## License
# Connecting to the FCast receiver with the video streaming application
This project is licensed under the MIT License - see the LICENSE.md file for details.
## Automatic discovery
1. Open the video streaming application.
2. Open the FCast receiver or restart it.
3. The receiver should now be visible in the casting dialog under "Discovered Devices".
4. If this failed, try manually connecting it. Automatic discovery does not work on all network types.
5. Click start to connect to the device.
6. Start watching content.
## Manual
1. Open the FCast receiver.
2. Find the IP of the device running the receiver.
3. Open the video streaming application.
4. Open the casting dialog.
5. Click add to manually add a device.
6. Select the FCast protocol, enter a descriptive name, the IP you found and port 46899.
7. Click start to connect to the device.
8. Start watching content.
![Manual add dialog in video streaming app](images/Untitled3.png)
# How to build
# Preparing for build
Run the following commands in the `root` directory.
```
npm install
```
# Building
Run the following commands in the `root` directory.
```
npm run build
```
# Packaging
## Windows
Run the following commands in the `packaging` directory.
```
sh package.sh win32-x64
```
## MacOS ARM64
Run the following commands in the `packaging` directory.
```
sh package-macos.sh darwin-arm64
```
## MacOS x64
Run the following commands in the `packaging` directory.
```
sh package-macos.sh darwin-x64
```
## Linux x64
Run the following commands in the `packaging` directory.
```
sh package.sh linux-x64
```