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:35:43 +02:00
parent 3a0e765bc9
commit af48a9bda4
9 changed files with 65 additions and 86 deletions

32
CONTRIBUTING.md Normal file
View file

@ -0,0 +1,32 @@
# Contributing to FCast
First off, thank you for considering contributing to FCast.
## Getting Started
Before you begin:
1. Make sure you have installed all the necessary dependencies for FCast.
2. Fork the repository on GitHub.
## Making Changes
1. Create a new branch in your fork: `git checkout -b my-awesome-feature`.
2. Make the changes you want to contribute.
3. Test your changes to ensure they don't break existing functionality.
4. Commit your changes. Make sure your commit messages clearly describe the changes you made.
## Submitting a Pull Request
1. Push your changes to your fork on GitHub.
2. Submit a pull request against the main FCast repository.
3. Describe your changes in the pull request. Explain what you did, how you did it, and why you did it.
4. Wait for us to review your pull request. We'll do our best to respond as promptly as we can.
## Issues
Feel free to submit issues and enhancement requests.
## Thank You!
Again, thank you for your contribution. Your effort will make this project even better.

0
README.md Normal file
View file

6
receivers/android/.idea/kotlinc.xml generated Normal file
View file

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="KotlinJpsPluginSettings">
<option name="version" value="1.8.0" />
</component>
</project>

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="ProjectRootManager" version="2" languageLevel="JDK_X" default="true" project-jdk-name="Android Studio default JDK" project-jdk-type="JavaSDK">
<component name="ProjectRootManager" version="2" languageLevel="JDK_19" default="true" project-jdk-name="19" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
<component name="ProjectType">

View file

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$/../.." vcs="Git" />
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

View file

@ -1,100 +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/fcast/fcast-receiver/-/wikis/Protocol
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.
# How to run
1. Download the latest build for your platform from https://gitlab.futo.org/fcast/fcast-receiver/-/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.
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.
![FCast receiver tray icon running on Linux](images/Untitled.png)
## Project Structure
# Connecting to the FCast receiver with the video streaming application
- Receivers
- [**Android**](receivers/android) native.
- [**MacOS, Windows, Linux**](receivers/electron) electron.
## Automatic discovery
- Clients
- [**Grayjay**](https://gitlab.futo.org/videostreaming/platformplayer) is a player that exposes multiple video websites as sources in the app.
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.
- Apple TV (future)
- Browser plugin (future)
## Manual
## Contributing
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.
We welcome all contributions. Please read our CONTRIBUTING.md before submitting any pull requests.
![Manual add dialog in video streaming app](images/Untitled3.png)
## License
# 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.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 715 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB