Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/matrunchyk/fm-radio
FM Radio Server & Client
https://github.com/matrunchyk/fm-radio
bladerf ffmpeg fm fm-radio fm-receiver hackrf rtl-fm rtl-fm-receiver rtl-sdr rtl-sdr-dongle rtl-sdr-receiver sdr software-defined-radio
Last synced: about 1 month ago
JSON representation
FM Radio Server & Client
- Host: GitHub
- URL: https://github.com/matrunchyk/fm-radio
- Owner: matrunchyk
- License: mit
- Created: 2022-11-05T22:50:01.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2022-11-06T02:30:30.000Z (over 2 years ago)
- Last Synced: 2025-01-01T20:57:39.263Z (about 1 month ago)
- Topics: bladerf, ffmpeg, fm, fm-radio, fm-receiver, hackrf, rtl-fm, rtl-fm-receiver, rtl-sdr, rtl-sdr-dongle, rtl-sdr-receiver, sdr, software-defined-radio
- Language: TypeScript
- Homepage:
- Size: 280 KB
- Stars: 7
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## FM Radio
Provides an ability to play any AM/FM radio station in your browser or any RTMP-supported player, like VLC.
When using browser client, it allows to switch to a station from a predefined list (configured on server side), as well as seeking to any other FM/AM frequency.
### Prerequisites
- An SDR dongle on RTL2832 chip, like [rtl-sdr.com](https://www.rtl-sdr.com/) (tested), or HackRF, BladeRF, or any other, compatible with [rtl_fm](https://manpages.org/rtl_fm).
- Node 16+ installed on your system
- Linux or macOS system
- Installed `ffmpeg` (`brew install ffmpeg` on OSX and `apt install ffmpeg` on Ubuntu/Debian)
- Installed `rtl_fm` binary (`brew install librtlsdr` on OSX and `apt install rtl-sdr` on Ubuntu/Debian)### Usage
1. Clone the repo:
```shell
git clone https://github.com/matrunchyk/fm-radio
```2. Install dependencies:
```shell
npm install
```3. Run server:
```shell
npm run server
```
After this step you can already test the server using RTMP-supported player, like [VLC](https://www.videolan.org/vlc/) by opening a network stream at the following address: `rtp://127.0.0.1:1234`5. Run client:
```shell
npm run server
```
Now, open your client application in a browser at the http://127.0.0.1:8080/ URL.Enjoy!
### Predefined stations
To define station names and their frequencies, simply edit `packages/fm-radio-server/src/config/configuration.ts` file and update `stations` property in the following format:
```typescript
stations: {
88.7: 'Lux FM & Radio Maximum',
89.8: 'FM Galychyna',
106.2: 'Hit FM',
},
```