fast media
player recorder converter
fast media player, recorder, converter


fmedia is a fast media player/recorder/converter for Windows, macOS, Linux and FreeBSD. It provides smooth playback and recording even if devices are very slow. It's highly customizable and can be easily extended with additional plugins. Its low CPU & memory consumption saves energy when running on a notebook's battery. Play or convert audio files, record new audio tracks from microphone, save songs from Internet radio, and much more! fmedia is free and open-source project, and you can use it as a standalone application or as a library for your own software. fmedia can read: .mp3, .ogg (Vorbis/Opus), .opus, .mp4/.m4a/.mov (AAC/ALAC/MPEG), .mka/.mkv/.webm (AAC/ALAC/MPEG/Vorbis/Opus/PCM), .caf (AAC/ALAC/PCM), .avi (AAC/MPEG/PCM), .aac, .mpc, .flac, .ape, .wv, .wav; .m3u, .pls, .cue. fmedia can write: .mp3, .ogg, .opus, .m4a (AAC), .flac, .wav, .aac (--stream-copy only). You'll find more detailed information about fmedia in README file inside the package.




Self-contained. fmedia uses modified versions of 3rd party libraries: libALAC, libfdk-aac, libFLAC, libMAC, libmp3lame, libmpg123, libmpc, libogg, libopus, libsoxr, libvorbisenc, libvorbis, libwavpack, libDynamicAudioNormalizer. Everything is inside the package, so no additional dependencies are required to be installed on your system.

Portable. No installation, just uncompress the package anywhere you want!

Open-source. You can download the sourcecode from here:


fmedia v1.25.2beta - Dec 20, 2021

 * GUI(Linux): parallel conversion; display the progress
 *! Rename --out-copy=cmd -> --out-copy-cmd.  A command-line switch with an optional value was a design mistake.

fmedia v1.25.1beta - Nov 28, 2021

 * audio capture: don't delete the recorded file after audio device failure
 * WASAPI playback: switch to new default device after the current device goes offline
 * playlist: don't activate next track after audio device error
 - audio playback: "--dev=N" didn't work when format conversion is necessary
 - WASAPI capture: exclusive mode didn't work
 - GUI(Linux): close subprocesses correctly
 - Windows: finalize the file being recorded after Ctrl+C

fmedia v1.25beta - Nov 16, 2021

 + GUI(Linux): file explorer tab: explore files on disk directly from fmedia
    and add files to playlist without drag-n-drop from file manager app
 + GUI(Linux): "gui.editor_path" conf option
 * GUI: on exit, don't rewrite m3u playlist files unless necessary
 - .ogg(FLAC): couldn't read some files
 - .aac read: "--stream-copy -o .mp4" produced unreadable mp4 file
fmedia (Android) v0.3 - Mar 15, 2020

 + Record audio button
 + setting: Show 'Record' Button
 + setting: Directory for Recordings
 + save/restore playlist scroll position
See full history


  1. Unpack archive to the directory of your choice, e.g. to "C:\Program Files\fmedia"

    • Right click on fmedia package file (e.g. in Explorer
    • Choose "Extract All..." in the popup menu
    • Follow the Wizard steps
  2. Optionally, run the following command from console (cmd.exe):

    "C:\Program Files\fmedia\fmedia.exe" --install

    This command will:

    • add fmedia directory into user's environment
    • create a desktop shortcut to fmedia-gui.exe
  3. Run fmedia-gui.exe to open graphical interface; or execute commands via fmedia.exe from console (cmd.exe).


  1. Unpack archive to the directory of your choice, e.g. to /usr/local/fmedia-1:

    tar Jxf ./fmedia-1.0-linux-amd64.tar.xz -C /usr/local
  2. Optionally, create a symbolic link:

    ln -s /usr/local/fmedia-1/fmedia /usr/local/bin/fmedia


  1. Enable "Allow installation from unknown sources" option in your phone's settings (you can disable it again after installation)
  2. Download .apk file to your phone's storage and execute it
  3. Click Install button and wait a couple seconds


fmedia consists of many different modules that are joined together in a chain (or conveyer) to get things done. After the user issues a command to fmedia, the core module builds the chain of modules needed to perform the task and then starts the conveyer. The processing moves back and forth between the modules until the job is done.

Here's the diagram that describes fmedia's abilities:


  • File
  • Directory
  • ICY
  • HLS
  • Windows Direct Sound
  • ALSA
  • CoreAudio
  • JACK



  • .mp4/.m4a
  • .mkv/.mka
  • .avi


  • .ogg/.opus
  • .caf
  • .mp3
  • .aac
  • .mpc
  • .flac
  • .ape
  • .wv
  • .wav


  • .m3u/.m3u8
  • .pls
  • .cue



  • MPEG
  • Vorbis
  • Opus
  • AAC LC/HE/HEv2
  • Musepack


  • FLAC
  • ALAC
  • WavPack
  • APE


  • Converter
  • Analyzer
  • Mixer
  • Silence generator
  • Length cutter
  • Signal gain modifier
  • Signal gain chain controller
  • Dynamic Audio Normalizer
  • Terminal UI bridge
  • Graphical UI bridge



  • MPEG
  • Vorbis
  • Opus
  • AAC LC/HE/HEv2


  • FLAC


  • .m4a
  • .ogg/.opus
  • .mp3
  • .flac
  • .wav


  • File
  • Windows Direct Sound
  • ALSA
  • Pulse Audio
  • CoreAudio
  • OSS


Note the difference between UNIX and Windows terminals when you use special characters and spaces:


Play files, directories, Internet-radio streams

fmedia ./file.ogg ./*.mp3
fmedia ./Music
fmedia http://radio-stream:80/

Play (mix) multiple streams simultaneously

fmedia --mix ./file1.ogg ./file2.ogg

Play wav file with a corrupted header

fmedia ./file.raw --fseek=44


Convert with parameters

fmedia ./file.ogg --out=./file.wav --format=int16
fmedia ./file.wav --out=./file.ogg --vorbis.quality=7.0
fmedia ./file.wav --out=./file.mp3 --mpeg-quality=0 --rate=48000

Convert all .wav files from the current directory to .ogg

fmedia ./*.wav --out=.ogg

Convert file and override meta info

fmedia ./file.flac --out=.ogg --meta='artist=Artist Name;comment=My Comment'

Extract several tracks from .cue file

fmedia ./album.flac.cue --track=3,7,13 --out='$tracknumber. $artist - $title.flac'

Split audio file

fmedia ./file.wav --seek=00:35 --until=01:35 --out=./file-1.wav

Cut compressed audio without re-encoding

fmedia ./file.ogg --out=./out.ogg --seek=1:00 --until=2:00 --stream-copy

Copy left channel's audio from a stereo source

fmedia ./stereo.ogg -o left.wav --channels=left

Change sound volume in an audio file

fmedia --gain=5.0 ./file.wav --out=./file-loud.wav


Capture audio from the default audio input device until stopped

fmedia --record --out=rec.flac

Record with the specific audio format

fmedia --record -o rec.wav --format=int24 --channels=mono --rate=48000

Record for 60 seconds then stop

fmedia --record --out=rec.flac --until=60

Record while playing

fmedia ./file.ogg --record --out=./rec.wav

Live output

fmedia --record

Record audio from Internet radio (without re-encoding)

fmedia http://radio-stream:80/ -o ./radio.mp3 --stream-copy

Play AND record audio from Internet radio into separate files (without re-encoding)

fmedia http://radio-stream:80/ --out-copy -o './$time. $artist - $title.mp3' --stream-copy


Print audio meta info

fmedia --info ./file.mp3

Print audio meta info and all tags

fmedia --info --tags ./file.mp3

Show PCM information

fmedia input.ogg --pcm-peaks

Create a playlist file from directory:

fmedia ./Music -o music.m3u8


Please report bugs to stsaz [at] or create an issue on GitHub. Your suggestions and source code patches are also greatly appreciated.