1
0
Fork 0
mirror of https://gitlab.com/futo-org/fcast.git synced 2025-06-24 21:25:23 +00:00
fcast/receivers/electron
2024-11-19 09:54:50 -06:00
..
assets Updated taskbar icon for Windows/Linux 2024-11-14 08:52:03 -06:00
images Added missing images. 2023-06-20 09:39:13 +02:00
scripts Minor CI fixes 2024-11-18 13:57:55 -06:00
src Added about dialog 2024-11-19 09:54:50 -06:00
.gitignore Add Electron Forge 2024-10-21 20:51:07 +00:00
.gitlab-ci.yml Revert "Workaround for volume mounting issues" 2024-11-14 08:56:58 -06:00
.npmrc Add Electron Forge 2024-10-21 20:51:07 +00:00
Dockerfile Added windows signing 2024-11-18 12:52:31 -06:00
eslint.config.mjs Installed linter and audit packages 2024-09-06 16:21:00 -05:00
forge.config.js Fix local Windows builds 2024-11-18 14:09:03 -06:00
jest.config.js Finished implementation of old crypto system as much until course change. 2023-12-21 14:18:47 +01:00
package-lock.json Fixed privilge escalation on Linux and Windows 2024-11-17 11:54:02 -06:00
package.json Many updater fixes 2024-11-15 00:43:01 -06:00
README.md Changed term client to sender 2024-09-24 00:14:14 -05:00
tsconfig.json Initial commit of new updater 2024-11-14 08:56:58 -06:00
webpack.config.js Initial commit of new video player 2024-11-04 09:17:20 -06:00

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

Why do I need a receiver?

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.

FCast receiver running on Linux

Protocol specification

The protocol specification can be found here https://gitlab.com/futo-org/fcast/-/wikis/home

Senders

Receivers

There are currently receivers for

  1. Download the latest build for your platform from https://gitlab.com/futo-org/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.

FCast receiver tray icon running on Linux

Connecting to the FCast receiver with the video streaming application

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

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 ARM64

Run the following commands in the packaging directory.

sh package.sh linux-arm64

Linux x64

Run the following commands in the packaging directory.

sh package.sh linux-x64