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:
parent
3a0e765bc9
commit
af48a9bda4
9 changed files with 65 additions and 86 deletions
32
CONTRIBUTING.md
Normal file
32
CONTRIBUTING.md
Normal 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
0
README.md
Normal file
6
receivers/android/.idea/kotlinc.xml
generated
Normal file
6
receivers/android/.idea/kotlinc.xml
generated
Normal 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>
|
2
receivers/android/.idea/misc.xml
generated
2
receivers/android/.idea/misc.xml
generated
|
@ -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">
|
||||
|
|
1
receivers/android/.idea/vcs.xml
generated
1
receivers/android/.idea/vcs.xml
generated
|
@ -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>
|
|
@ -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
|
||||
|
||||

|
||||
- 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.
|
||||
|
||||

|
||||
## 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.
|
||||
|
||||

|
||||
## 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 |
Loading…
Add table
Add a link
Reference in a new issue