Fork for modified rtl-sdr
SDR Stereo FM radio receiver for RTL dongles, with TimeShift and Recording. TimeShift function can go back some minutes in time to listen it again. Recording function to save WAV files.
RTL FM Player is a small tool to listen FM stereo radio by using a compatible DVB-T dongle. Is a console application that runs on Linux and Windows, all commands like changing stations and timeshifting is controlled by keyboard keys. Outputs stereo audio to sondcard using SDL library. Can record audio .wav file format.
The DVB-T dongle has to be based on the Realtek RTL2832U. See http://sdr.osmocom.org/trac/wiki/rtl-sdr for more RTL SDR details. You need to install a new driver to use this dongle.
-
Download Zadig driver https://zadig.akeo.ie/.
- Plug in the RTL-SDR.
- Run Zadig as administrator by right clicking it and choosing run as administrator.
- Go to Options -> List all devices and make sure it is checked.
- In the drop down box choose Bulk-In, Interface (Interface 0). This may also sometimes show up as something prefixed with “RTL28328U”. That choice is also valid.
- Make sure that WinUSB is selected as the target driver and click on Replace Driver.
-
Download a compiled RTL FM Player here: >> Releases <<
-
Optional. Compile it on Linux, or Windows using MinGW.
On Linux, open a console and type ./rtl_fm_player
On Windows, just double click rtl_fm_player.exe
Warning, may be loud!
Use keyboard to control frequency, timeshift, mute and recording.
You can also open Command Prompt and type parameters manually:
C:\>rtl_fm_player.exe -h
./rtl_fm_player -h
Show all available parameters
rtl_fm_player -h
Start and tune to frequency in Hz
(97.7Mhz)
rtl_fm_player -f 97700000
Tune to frequency and record audio to FileName.wav
(Keyboard controls disabled)
rtl_fm_player -f 97700000 FileName.wav
On modern PCs (x86, x64) mono and stereo decoding should be possible easily.
Latency increase if SDL2 audio queue becomes larger. I clean the buffer when changing stations or Timeshifting.
Tested on Debian 10 "buster" and ubuntu 20.04 "focal"
- sudo
apt-get install cmake
- sudo
apt-get install libusb-1.0-0-dev
- sudo
apt-get install libsdl2-dev
- Download sources
git clone --recursive https://github.com/Mr-Precise/rtl_fm_sdlplayer
- Create and enter build dir
cd rtl_fm_sdlplayer && mkdir build && cd build
- CMake configure:
cmake .. -DDETACH_KERNEL_DRIVER=ON
make
MinGW32 manual installation. You can install to any directory name without spaces in root drive, (eg: C:\MinGW32-RTL, D:\MinGWTemp). In this example we install to C:\MinGW32
- Download latest mingw-w64 toolchain targeting architecture i686, win32 threads, dwarf exception
- Extract the mingw-w64 toolchain 7zip file to root directory, keeping the structure:
C:\mingw32\ \bin \etc ...
- Download CMake Windows win32-x86 Zip file (not the installer)
- Extract CMake Zip file inside
C:\MinGW32\CMake
directory, keeping the structure:C:\mingw32\cmake\ \cmake\bin \cmake\doc \cmake\man \cmake\share
- Download SDL2 Development Libraries for MinGW
- Extract SDL2 zip file
i686-w64-mingw32\lib\libSDL2.dll.a
toc:\mingw64\i686-w64-mingw32\lib\
- Extract SDL2 zip directory
i686-w64-mingw32\include\SDL2
toc:\mingw64\i686-w64-mingw32\include\SDL2
check the directory structure: C:\mingw32\i686-w64-mingw32\include\SDL2\ \SDL.h
- Download libusb-1.0 7zip file
- Extract libusb-1.0 Zip
\MinGW32\dll\libusb-1.0.dll.a
toc:\mingw32\i686-w64-mingw32\lib\
- Extract libusb-1.0 Zip
\include\libusb-1.0\libusb.h
toc:\mingw32\i686-w64-mingw32\include\
- Extract this project source to any subdirectory below
c:\mingw32\
- Enter subdirectory
c:\mingw32\[projectsourcedirectory]\build\mingw32
- Run:
1st-cmake.bat
2nd-make.bat
- If sucessfull, compiled
rtl_fm_player.exe
will be on[projectsourcedirectory]\build\mingw32\src
directory.- Copy SDL2 zip file
\i686-w64-mingw32\bin\SDL2.dll
tosrc
- Copy libusb-1.0 7zip file
\MinGW32\dll\libusb-1.0.dll
tosrc
- Copy SDL2 zip file
MinGW64 manual installation. You can install to any directory name without spaces in root drive, (eg: C:\MinGW64-RTL, D:\MinGWTemp). In this example we install to C:\MinGW64
- Download latest mingw-w64 toolchain targeting architecture x86_64, win32 threads, seh exception
- Extract the mingw-w64 toolchain 7zip file to root directory, keeping the structure:
C:\mingw64\ \bin \etc ...
- Download CMake Windows win64-x64 Zip file (not the installer)
- Extract CMake Zip file inside
C:\MinGW64\CMake
directory, keeping the structure:C:\mingw64\cmake\ \cmake\bin \cmake\doc \cmake\man \cmake\share
- Download SDL2 Development Libraries for MinGW
- Extract SDL2 zip file
x86_64-w64-mingw32\lib\libSDL2.dll.a
toc:\mingw64\x86_64-w64-mingw32\lib\
- Extract SDL2 zip directory
x86_64-w64-mingw32\include\SDL2
toc:\mingw64\x86_64-w64-mingw32\include\SDL2
check the directory structure: C:\mingw64\x86_64-w64-mingw32\include\SDL2\ \SDL.h
- Download libusb-1.0 7zip file
- Extract libusb-1.0 Zip
MinGW64\dll\libusb-1.0.dll.a
toc:\mingw64\x86_64-w64-mingw32\lib\
- Extract libusb-1.0 Zip
include\libusb-1.0\libusb.h
toc:\mingw64\x86_64-w64-mingw32\include\
- Extract this project source to any subdirectory below
c:\mingw64\
- Enter subdirectory
c:\mingw64\[projectsourcedirectory]\build\mingw64
- Run:
1st-cmake.bat
2nd-make.bat
- If sucessfull, compiled
rtl_fm_player.exe
will be on[projectsourcedirectory]\build\mingw64\src
subdirectory.- Copy SDL2 zip file
\x86_64-w64-mingw32\bin\SDL2.dll
tosrc
- Copy libusb-1.0 7zip file
\MinGW64\dll\libusb-1.0.dll
tosrc
- Copy SDL2 zip file
-
This project is based on RTL SDR FM Streamer by Albrecht Lohoefener
-
Libusb. A cross-platform library that gives apps easy access to USB devices
-
Simple DirectMedia Layer development library
- RTL SDR FM Streamer
- FM Radio receiver based upon RTL-SDR as pvr addon for KODI
- rtl_fm
- This tool is the base of rtl_fm_streamer
- http://sdr.osmocom.org/trac/wiki/rtl-sdr
- sdr-j-fmreceiver
- GPRX