Help us keep the list up to date and submit new video software here.

Try DVDFab and remove iTunes protection, copy, convert or make Blu-rays and DVDs! Download free trial !

Software Home »



fmedia is a fast asynchronous media player/recorder/converter for Windows, Linux and FreeBSD. Its goal is to provide smooth playback even if input device is very slow and unresponsive. The architecture allows to extend the functionality of the application in any way: adding a new audio input/output format, a new DSP filter or even a new GUI. fmedia is very small and fast: it has low CPU & memory consumption making it ideal to listen to music or process audio files while running on a notebook's battery.

Free software
OS: Win Mac Linux
File size: 2MB
Portable version
Old versions
Version history
1 vote
Rate it


fmedia screenshot
Click to enlarge screenshot

fmedia screenshot 2
Click to enlarge screenshot
Latest version

1.15 (February 4, 2020)


Visit developer's site

Download fmedia 1.15 Windows  2MB  Win  Portable

Download fmedia 1.15 Windows 64-bit  2MB  Win64  Portable

Download fmedia 1.0 Mac 64-bit  1MB  Mac64

Download fmedia 1.15 Linux 64-bit  2MB  Linux64

Download old versions

Download fmedia old versions

Software License

Free software / FOSS (Free download and also Free and Open Source Software)

Supported operating systems

WinWindows MacMac OS LinuxLinux

Complete Version history / Release notes / Changelog

"+" - new feature
"*" - change, update or a small improvement
"-" - bugfix
"!" - broken compatibility

fmedia v1.15 - Feb 4, 2020

+ Linux: support JACK capture
+ Linux: disable system sleep timer while playing
* Linux: automatically use ALSA output when Pulse isn't installed
e.g. "" is not found

* --listdev is more reliable
Show capture devices list even if playback devices list couldn't be shown

- .m4a write: .m4a(AAC) files created by fmedia couldn't be opened
by other players, e.g. VLC (v1.10 bug)
fmedia can read those files with no problems.

*! config: don't override "output" if it's already initialized
e.g. for this configuration:

output "pulse.out"
output "alsa.out"

Pulse (the first one) will be used.

fmedia v1.14 - Jan 7, 2020

+ .caf reader (AAC, ALAC) (no seeking)
+ @stdin: support seeking forward, which is required by several file formats
- GUI: Windows: "Sort: Random" didn't work

fmedia v1.13 - Nov 9, 2019

+ Create a playlist file (.m3u8) from directory
+ GUI: "Sort: Random"
+ GUI-GTK: support multiple tabs
- GUI-GTK: drag'n'drop didn't work in Ubuntu

fmedia v1.12.1
@stsaz stsaz released this Oct 12, 2019

+ help.txt: French translation

fmedia v1.12 - Sep 16, 2019

+ GUI: "Show Media Info": add file size, file date, audio info
- GUI: redraw items after tab switch for a large playlist
- GUI: "Show File in Explorer" didn't work if the entry was selected by "Selection Follows Cursor"
- GUI: crash on closing playlist (v1.2 bug)
* ID3v1 read: skip spaces at the end of tag fields
- --dynanorm: crash or error on stop command during playback
- core: fix crash or mono->stereo channel conversion (v1.11 bug)
* queue: play next track after read/decode error
+ file.stdout: add "buffer_size" config setting
- file input: random seek error (v1.9 bug)
- Linux: don't use glibc 2.29
* log: print input file name for error/info messages

fmedia v1.11

+ support multi-channel (5.1, 7.1) conversion
+ FLAC-OGG: read FLAC in OGG container (radio streams are also supported)
+ --split=TIME: Split audio by equal time intervals (.wav input only)
+ file output: new "$counter" variable for file name
* queue: playlist save: write to a file safely
- GUI: Linux: update UI on radio meta change
* Linux: don't use glibc 2.29 (fix binary compatibility with older OS)
- Windows: opening wildcard file names didn't work (v1.10 bug)

fmedia v1.10.1

- GUI: windows: convert: empty text in 'output' combobox (v1.10 bug)
- GUI: windows: convert: couldn't add files for conversion (v1.10 bug)
- GUI: linux: auto-apply volume for the next track
- queue: crash on parallel conversion (v1.3 bug)
- file: random crash (v1.9 bug)
- "--channels=left" didn't work (v0.34 bug)

fmedia v1.10 - Jul 9, 2019

+ GUI: restore list's column width on startup
+ GUI: Windows: convert.output is a dropdown list; restore on startup
+ GUI: Linux: "Convert" command (no custom settings)
+ GUI: Linux: "Show Media Info" command
+ GUI: Linux: support several settings from fmedia.conf (seek_step, seek_leap, autosave_playlists)
* GUI: Linux: multi-select "Open File" dialog
- GUI: Linux: drag-n-drop didn't work if a filename contained special characters
+ TUI: print information about video codec and resolution: .mp4 (H.264), .mkv (H.264, H.265)

+ --help: Added German translation
* queue: shrink memory usage of playback items by 70%
- Pulse, DirectSound: some audio data could be lost after playback is paused
- Pulse: playback could hang after track has finished

fmedia v1.9 - June 8, 2019

* GUI-GTK: show meta info in playlist properly
+ GUI-GTK: "Show File in Explorer"; more commands in Help menu

+ --help: translated some text into Russian
* net: support "audio/ogg" Content-Type
* TUI: Windows: determine terminal window width and adjust playbar
- direct-sound: fix --dev= and --dev-capture= arguments
- core: crash after decoder has failed to parse audio info
- Pulse: crash on --list-dev

fmedia v1.8 - May 1, 2019

* .aac read: Don't decode audio while seeking (almost instant seeking)
+ .aac write with --stream-copy from .aac source
+ GUI: Windows: "Show Favorites", "Add to Favorites", "Selection Follows Cursor" commands
+ GUI: Windows: Save/restore "Random" and "Selection Follows Cursor" checked state
+ GUI: Linux: New commands, save/restore window position

fmedia v1.7 - Apr 5, 2019

+ GUI: linux: a simple GUI based on GTK+v3
* linux: use Pulse Audio output by default
ALSA can't be used out-of-the-box on some linux distributions
where PA service prevents the device from opening by fmedia

fmedia v1.6 - Mar 17, 2019

+ set process exit code after a track is finished with an error
- crash on opening directory from disk (v1.5 bug)
- AAC decode: incorrect audio position of the first block (v0.30 bug)
- --dynanorm: crash on trying to use empty configuration (v1.1 bug)
- TUI: 'mute' setting was reset on track change

fmedia v1.5 - Feb 12, 2019

+ HLS client
+ .mp4: support --stream-copy
+ WASAPI: --list-dev: Mark default device
+ WASAPI: --list-dev: Print default format for shared mode
+ ICY: support UTF-8 meta
- Recording with --until produced a file with less audio length than expected

fmedia v1.4 - Jan 9, 2019

+ net.http: config: "proxy" - Connect via HTTP proxy server
+ GUI: Restore user-selected theme on startup
+ GUI: Playback -> "Select Audio Device" - Select playback audio device
+ GUI: Help -> "Edit GUI Themes..."
- GUI: Help -> "Edit User Settings": Set the correct path for portable mode
Set the path to application directory for this command if fmedia is
configured in portable mode.
+ Load "fmedia-user.conf" in portable mode
*! Moved "gui.gui.portable_conf" -> "core.portable_conf"
- ICY: Couldn't play radio streams with "Content-Type: audio/aac"
- file.out: Invalid characters in filename when using auto-naming (v0.22 bug)
If the value of $-variable ends with a space, then it might result in
corrupted output filename.

fmedia v1.3 - Dec 9, 2018

+ GUI: Parallel conversion (fmedia.conf::workers) (Windows only).
+ Parallel conversion from command line ('--parallel' switch) (Windows only)
- .m4a write: Couldn't convert from broken .mp3
- GUI: Conversion progress didn't update (v1.2 bug)
- .flac read: Unsynchronized output from .cue files (v1.0 bug)
Audio positioning could be incorrect for the tracks in .cue file.

fmedia v1.2 - Nov 17, 2018

+ GUI: support custom themes (theme.conf file)
+ GUI: 'File'->'Theme: Dark' - a simple dark theme
* GUI: instant playlist switching
- GUI: button text could be empty if no icon is set (FF v18.10 bug)

fmedia v1.1 - Oct 14, 2018

+ GUI: use icons on playback control buttons
+ GUI: load multiple playlists from previous session on startup
* GUI: faster playlists (show 1000 items 5x faster)
- GUI: 'Add URL' command didn't work for radio stream URLs (v0.23 bug)
+ GUI: 'List' -> 'Random' - Choose the next track randomly
+ --random - Choose the next track randomly
+ TUI: show track number
+ core: on-demand modules loading (all except UI)
Now the modules don't affect fmedia startup time.
+ core: "prevent_sleep" config setting - Don't allow the system to put
itself to sleep after some time of inactivity

fmedia v1.0 - Sep 10, 2018

+ macOS: CoreAudio playback & capture
+ delay modules loading (alac ape avi mkv mp4 mpc soxr wav wavpack)
+ --stop-dblevel=DB[;TIME][;MINTIME] - If MINTIME is specified,
stop only after MINTIME time has passed
- file: windows: reading from EOF position doesn't result in an error

fmedia v1.0 - Sep 10, 2018

+ macOS: CoreAudio playback & capture
+ delay modules loading (alac ape avi mkv mp4 mpc soxr wav wavpack)
+ --stop-dblevel=DB[;TIME][;MINTIME] - If MINTIME is specified,
stop only after MINTIME time has passed
- file: windows: reading from EOF position doesn't result in an error

fmedia v0.37 - Aug 5, 2018

+ --include='WILDCARD[;WILDCARD]' - Only include files matching a wildcard (case-insensitive)
+ --exclude='WILDCARD[;WILDCARD]' - Exclude files & directories matching a wildcard (case-insensitive)
+ --until=playback-end - Stop recording when the last playback track is finished
+ net.http: connect_timeout config setting
+ net.icy: support OGG stream
*! queue: start the next track in list after an error has occurred with the current track
+ queue: next_if_error config setting
- mixer: --mix didn't work
- .m4a write: support conversion from .mp3 (inaccurate audio length)

fmedia v0.36 - May 5, 2018

+ "--start-dblevel=DB" - Skip initial audio until input signal level goes above DB
+ "--stop-dblevel=DB[;TIME]" - Stop processing if input signal level goes below DB for TIME time
+ "--meta": support "@file:FILENAME" - Read meta from file
+ "--flist=FILE" - Read filenames from FILE
- "--flac-compression": named as "--flac-level" in help info (v0.16 bug)

+ GUI: File->"Analyze & Show PCM Info" command
- GUI: queue: the next track is played in the same playlist (v0.35 bug)
- GUI: List->Filter: segfault on use (v0.34 bug)
- TUI: recording: "max dB" value could be incorrect

+ .flac: write picture block (via --meta="picture=@file:FILENAME")
+ .cue: support REM in TRACK context
- PulseAudio: fix hanging

fmedia v0.35 - Apr 7, 2018

+ --prebuffer: Start recording by a command from user ('T' key),
saving the previously bufferred seconds of audio
+ gui convert: aac_bandwidth conf option
* gui convert: create/use just 1 playlist
* flac: support variable-length frame stream
- --seek, --until: time greater than 24h couldn't be used

fmedia v0.34.1 - Mar 14, 2018

- --dynanorm: couldn't be used with --record for short length recordings
- --dynanorm: couldn't be used with --format/--channels/--sample-rate

fmedia v0.34 - Mar 9, 2018

+ Dynamic Audio Normalizer filter (--dynanorm switch)
* gui: don't stop playback when starting conversion
- windows: --aac-profile didn't work
- .flac write: segfault on recording (v0.32 bug)

fmedia v0.33 - Feb 13, 2018

+ core: add --globcmd.pipe-name command line argument
(can easily start and control many instances in parallel)
+ wasapi: recording audio in loopback mode is now continuous
(record silence if nothing else is playing)
+ gui: new command: Help -> "Check for Updates"
- icy: --out-copy: segfault on exit

fmedia v0.32 - Jan 15, 2018

- winXP: fix startup (unsupported imported function in core.dll and unsupported GUI behaviour)
* --print-time: show more detailed info

fmedia v0.31 - Dec 10, 2017

+ ICY: save tracks from AAC radio stream into .m4a (with --stream-copy)

+ .aac reader: support --stream-copy to .mp4
- .mpc decode: an "AP" block could be skipped
- ICY: reset HTTP response headers on reconnect
* net: don't reconnect if server closed connection gracefully
- WASAPI: exclusive mode: hanging after starting the next track (v0.29 bug)
- TUI: apply volume on track change
* TUI: linux: remove separate thread for reading from stdin
* is loaded dynamically from mod/
all modules were moved to mod/

fmedia v0.30.2 - Nov 8, 2017

- core: Linux,FreeBSD: couldn't run fmedia executable from $PATH (v0.30 bug)
- ICY: corrupt data (MP3) or error (AAC) in some cases (v0.30 bug)

fmedia v0.30.1 - Nov 7, 2017

- core: Linux,FreeBSD: couldn't run fmedia executable from symlink (v0.30 bug)
- core: Linux: timer restart failed with an error "File exists" (v0.30 bug)

fmedia v0.30 - Nov 5, 2017

+ .aac (ADTS) file input (no seeking)
+ ICY: support shoutcast AAC streams

* AAC decode: detect real audio format (support implicit SBR, SBR+PS)
+ AAC encode: choose profile between AAC-LC, HE-AAC or HE-AACv2 (--aac-profile option)
* AAC,ALAC,APE: linux:,, don't depend on the system libstdc++
- .flac write: segfault on large meta (FF v16.08 bug)
- MPEG decode: data from .mkv was skipped (v0.29 bug)
- WASAPI: segfault or hanging when playing a network stream (v0.29 bug)
- ICY: don't start playing a network stream if its content type isn't supported
- ICY: reconnect to the original server after redirected request fails
- core: freebsd: file reading didn't work on some file systems
- core: segfault on several quick commands from TUI (v0.18 bug)

fmedia v0.29.2 - Sep 13, 2017

- wasapi.out: segfault after WASAPI sys error (v0.29 bug)
- net.icy: --out-copy: file-writing track didn't stop after reconnect
- net.icy: invalid data in buffers after reconnect
- .cue read: the last track was added as the first one (v0.28 bug)

fmedia v0.29.1 - Aug 19, 2017

- MPEG decode: invalid output frame after seeking (v0.29 bug)

fmedia v0.29 - Jul 31, 2017

+ support FreeBSD
+ OSS playback

* FLAC: split flac.encode module into flac.encode and flac.out
- .m3u parse: handle empty lines
- .pls parse: skip entries with empty URL
- MPEG decode: correct positioning
- .mp3: invalid bitrate value could be shown for some CBR streams

* WASAPI: using timer for shared mode playback/capture,
don't use event notifications (80% less kernel/userspace context switches)
* WASAPI: more audio formats can be used in exclusive mode
- WASAPI: exclusive mode capture: fix duplicate buffers output

+ TUI: add Mute command ('m')
+ net.icy: timeout network I/O operations

fmedia v0.28 - Jun 24, 2017

+ --out-copy=cmd: save currently playing track from Internet radio by command ('T')

* ALSA: don't use "plughw" unless necessary (try "hw" first)
- ALSA: show available devices for each soundcard
- ALSA: use the first available device by default (not hw:0,0)

- MPEG: .mp4 seek didn't work
- MPEG decode: accurate position reporting (delay)
* .mp4: report seek error
- .m3u,.pls: handle last lines without LF
+ net.icy: reconnect on I/O error
- net.icy: fix sending request after HTTP redirect

fmedia v0.27 - May 21, 2017

* .mp3: show correct bitrate for CBR streams
* .mp3: --meta works with --stream-copy
- .mp3: accurate total length for streams without Xing frame
- MPEG decode: accurate seeking and audio position (v0.23 bug)
- .m4a stream output didn't work reliably
- .opus output: "-o .opus" didn't work
* .ogg input: support Opus
- Vorbis,Opus: print the correct stream length in TUI when using --stream-copy
- Vorbis,Opus output: write correct AUDIO_TOTAL when --seek is used

- GUI: "Invert Selection" didn't work (v0.23 bug)

+ run in background (--background switch). Supports --globcmd.
* add --globcmd=quit
- --seek & --until didn't work (v0.26 bug)
* modules check for supported input data formats
* better caching of file buffers
Buffers at offset 0 and 64k aren't wasted after seeking to file end.
* net.icy: support --meta

fmedia v0.26 - Apr 20, 2017

* ALSA,Pulse,WASAPI: deferred initialization
- OGG Vorbis: fix playback of cut files
- .wav read: skip unneeded data at the end of "data" chunk
- ID3v2 parse: COMM: correctly handle short description
- net.icy: --out-copy: create output file for empty meta data

fmedia v0.25 - Mar 27, 2017

+ Linux: Pulse Audio playback
Must be enabled manually in fmedia.conf, because ALSA is used by default.
+ Musepack seeking

*! core: Windows: fmedia can run from %APPDATA%/fmedia directory
Rename optional configuration files:
fmedia-user.conf -> fmedia-ext.conf
%APPDATA%/fmedia/fmedia.conf -> %APPDATA%/fmedia/fmedia-user.conf

+ GUI: add Record -> "Select Audio Device" command
* GUI convert: add more codec settings
- plist.dir: fix segfault on auto-expanding sub-directories
- plist: fix segfault on parsing large .m3u/.pls files
- net.icy: "--out-copy" didn't work if server doesn't send ICY meta data
- net.icy: "--stream-copy" & "--out-copy" didn't work (v0.22 bug)

fmedia v0.24 - Feb 25, 2017

+ Musepack input (no seeking)

- MPEG: ID3v2 write: invalid COMM frame was generated
- core: --out=.EXT didn't work (v0.22 bug)
* complete build for i686

fmedia v0.23 - Jan 24, 2017

+ GUI: save/load current playlist on exit/start ("autosave_playlists" config setting)
+ MPEG stream copy: copy ID3 tags
* MPEG: use separate filters and mpeg.decode
* MPEG: ID3v2.3 parse: support extended header
* MPEG: ID3v2.4 parse: support 'data length indicator'
+ plist.dir: expand sub-directories
* core: move soxr convertor to a separate module
fmedia can run without any 3rd-party libraries. Remove all unneeded modules from fmedia.conf if you need a tiny package with core functions only.
* fmedia can be built for i686 CPU without 3rd-party libraries

fmedia v0.22 - Dec 25, 2016

+ WASAPI: support loopback mode (record from playback)
+ fmedia: add "--dev-loopback" argument
+ core: support reading from stdin (@stdin.EXT) (WAV) (synchronous)
+ core: support writing to stdout (--out=@stdout.EXT) (WAV, FLAC, OGG)
*! fmedia: --outdir argument was removed. Use --out instead.

+ GUI: new command "Filter" to search/filter tracks in playlist
+ GUI: global hotkeys can be assigned to fmedia commands ("global_hotkeys" setting in fmedia.conf)
+ GUI: show icon in tray while recording ("status_tray" config setting)
* GUI: record: support "Stop after" setting
* GUI: record: add "Capture Device Number" setting
* GUI: Open/Add modal dialog doesn't block main thread
- GUI: recording: correctly update GUI if recording was finished with an error

* WAV: support "data" chunk with unknown size
- WavPack: APE tags weren't recognized
- MPEG read: unknown ID3v2 tags were skipped
- MPEG read: segfault on unknown APE tag
- WASAPI playback: the first block of mono audio data was skipped

+ conf: support "include" keyword to include additional configuration files
User settings may be stored in fmedia-user.conf
- conf: when using a setting from user conf file, the module's other settings were reset to default (v0.17 bug)
- net.icy: 2nd opened track didn't work
- net.icy: "--out-copy": didn't recover from errors properly
- queue: meta data from file has higher priority than artist/title from .m3u
- queue: "Next" after "Clear" didn't work

fmedia v0.21 - Dec 11, 2016

+ GUI: add "To Next Playlist" command into popup menu
- GUI: "instance_mode clear_play" didn't work: playlist wasn't updated properly

- FLAC encode: the last block of data wasn't written (FF v16.08 bug)

* file output: support $year variable (album year)
* file output: $-vars: replace more bad characters; trim trailing whitespace
- queue: fix segfault on "Previous" command if track being played is inside inactive playlist
- fmedia: --track argument didn't work if multiple tracks are specified out of order

fmedia v0.20 - Dec 3, 2016

+ MKA/MKV input (no seeking)
+ AVI input (no seeking)
* MP4 read: support MPEG input
- MP4 read: fix AAC, ALAC seeking (v0.18 bug)
- MP4 write: the first entry in stsz or stco might be corrupted when writing in streaming mode
* ALAC decode: truncate last audio frame to match container's total audio length
- encoders: accurate total samples estimation when sample rate conversion is used
- OGG read: handle pages with granule position = -1
- MPEG read: fix inaccurate seeking

* GUI: add AAC quality setting for recording
- GUI: segfault on trying to open empty/corrupted file

- plist: CUE/M3U/PLS: filenames with spaces didn't work (v0.19 bug)

+ fmedia: add --globcmd argument for controlling fmedia running in another process
* file output: new variable $timems can be used while naming files
- core: fix filters chain mem leak
- core: segfault on stopping active track whose queue was cleared
- core: bad output for mono->stereo channel conversion (FF v16.08 bug)
- core: fix segfault on processing unknown $-variable when --record is used (v0.16 bug)
- core: arbitrary block of data could be skipped after a command is sent to core (v0.18 bug)

fmedia v0.19 - Nov 7, 2016

+ GUI: conf: add "minimize_to_tray", "portable_conf", "seek_step", "seek_leap" settings
+ GUI: add "Leap Forward", "Leap Back" commands
- GUI: seek to the beginning when requested to seek to <0 target sample
- GUI: play next track on inactive tab doesn't set main window caption
- GUI convert: channels and rate settings didn't work (v0.18 bug)
- GUI: "Quick Start" recording didn't work until window with recording settings is initialized (v0.16 bug)
- TUI: don't show playback bar of another track while recording

* MP4 write: support recording to MP4/AAC
- MP4 write: write "mdat" size in non-streaming mode
- Vorbis: support stream copy (v0.18 bug)
+ Opus: support stream copy
- Opus decode: fix segfault on Opus packet decoding error
- Opus decode: too much memory was allocated for decoding buffer
- OGG read: handle the last page with granule position = -1

+ plist: support .pls playlist input
- plist: M3U read: support URLs in playlist

- DirectSound: TUI wasn't updating on recording
* DirectSound: --until can be used together with --record

+ fmedia: add --conf command line argument
* core.rtpeak: support int24 and int32 for peak metering while recording
- core: Ctrl+C or Q command didn't stop recording properly (v0.17 bug)
- queue: recording while playing couldn't save output file properly in some cases

fmedia v0.18 - Oct 27, 2016

+ Opus decode/encode
*! OGG: "ogg-vorbis" module is split into "ogg" and "vorbis"
fmedia: rename "--ogg-quality" to "--vorbis.quality"
OGG stream copy is disabled in this version
- OGG read: couldn't parse the last page in small OGG files

+ GUI: add "Reset Volume" command
* TUI,GUI: print audio format (e.g. "int16" instead of "16 bit")
- TUI: print error when audio format isn't set

- fmedia: TUI commands didn't work while converting files in synchronous mode
- fmedia: conversion with --rate didn't work
* fmedia: support Windows XP
- core: fix potential segfault on exit
- core: queue: segfault on song end if its playlist was closed
- core: conf: fix segfault after trying to add module that doesn't exist (v0.17 bug)
- core: command line arguments didn't work with wildcard input files on Windows (v0.17 bug)
- core: encoding arguments didn't work with --record (v0.17 bug)

fmedia v0.17 - Oct 3, 2016

* GUI: move playlist menu items from File to List
* GUI convert: add "stream_copy" setting
- GUI: support DPI settings for listview columns width
- GUI: volume setting wasn't active on the first audio data (v0.16 bug)

* MP4 write: write bitrate value into esds box
+ MP4 write: write trackno/tracktotal
+ MP4/AAC write: preallocate output space
+ MPEG write: preallocate output space
- MPEG stream copy: fix double Xing tags
- MPEG read: fix invalid current sample number by accounting for encoder/decoder delays
- PCM int24, FLAC write: fix invalid negative 24-bit integer handling
- WAV read: fix bad PCM format parse from wave file with extended header (FF v16.08 bug)
+ ALSA out: add config setting "notify_rate"

- queue: fix segfault on stopping track whose playlist has been closed before
+ file read: "direct_io" config setting
* file write: preallocation size can grow as output file grows
* file write: delete file if an error has occurred in track chain
- core: module data could be initialized twice, resulting in mem leak and slower startup time

fmedia v0.16 - Aug 24, 2016

+ TUI: "pause" command
+ GUI: new window with recording settings
+ GUI: store recording settings in config
* GUI: preserve artist/title info on tab switching
* GUI: convert: add tracks into a new tab
* GUI: config: add convert.output setting
- GUI: fix potential segfault while initializing controls with invalid names

+ WAV input: support meta tags
+ MP4 output: support meta tags
* MP4 AAC output: support more input audio formats (not just int16) and non-interleaved input
* MP4 AAC: support AAC encoder delay and padding
- MP4 AAC: default setting for --aac-quality switch didn't work
+ MPEG: support stream copy without re-encoding
* MPEG decode: support VBRI tag
* FLAC output: support other input audio formats with dynamic conversion
* OGG decode: sample-accurate seek
- OGG decode: fix invalid audio position of the target page after seeking
- OGG encode: flush OGG page with 255 segments

+ net.icy: write audio data to a file while playing
- mixer: setting output format in config didn't work
+ fmedia: command line switches --format, --rate and --channels are used for both audio input and output
*! fmedia: rename --silent to --notui
+ fmedia: add --stream-copy, --out-copy command line switch
*! fmedia, WAV: --mono, --wav-format are removed. Use --channels and --format instead.
*! core: conf: "input module" directive doesn't accept audio format settings
Add "record_format" directive for this purpose
*! core: conf: audio format string has changed: e.g. 16le -> int16
* soundmod.conv: support immediate format conversion
* soundmod.conv: left/right mono conversion doesn't require additional processing
- soundmod.conv: conversion mono->stereo produced too quiet output
* WASAPI input: support format/channels conversion
+ file: support "$date" and "$time" variables

fmedia v0.15 - Jul 28, 2016

+ MP4 AAC output

* GUI: fmedia-gui.exe shows message dialog on startup error
+ GUI: read conversion settings from config
+ GUI: add "Go To" command
+ GUI: convert: new commands "Set Seek Position", "Set Until Position"

* OGG decode: support partial packets
* MPEG decode: skip parse errors and continue from the next frame
* MP4: more descriptive error messages
- MP4: esds: support larger AAC config data
- MP4: stsc: fix segfault on invalid data
- MP4: parser stopped on reaching empty box which is supposed to have children

- core: fix segfault when converting audio using --mono
* file: create path for output file

fmedia v0.14 - Jul 9, 2016

- GUI: fix more potential threads races
+ TUI: new command "Show Tags"
- MPEG decode: fix hanging on ID3v1 tag parsing after ID3v2 was not found (FF v16.05 bug)
- MPEG decode: last samples in file were not decoded (FF v16.05 bug)
- MPEG encode: ID3v2: fix adding "track number" and "total tracks" if padding is enabled (FF v16.04 bug)
- ID3v2: better handling of short description for a comment with UTF16 BOM
- FLAC, WavPack: seek to the beginning didn't work
- APE tag: fix input data offset if tag is small (FF v16.05 bug)
- OGG: no-decode mode: 2nd page wasn't returned (FF v16.03.31 bug)

fmedia v0.13 - May 26, 2016

+ ICY: support shoutcast input (MPEG)

+ GUI: new window "Add URL"
* GUI: "Copy Filename to Cipboard": support UTF-8
- GUI: dialog title string wasn't NULL-terminated
- GUI: fix segfault on using "Convert" command (v0.12 bug)
- GUI: convert: meta data from .cue file wasn't copied (v0.12 bug)
* GUI: convert: add "gain", "mono", "meta" settings

* WASAPI, ALSA capture: --until can be used together with --record

* FLAC: skip junk data (e.g. ID3v2) before FLAC header
* APE, WavPack: more effective APE tag parsing
+ MPEG decode: support APE tag
- MPEG decode: fix segfault when there are no first 2 complete consecutive MPEG frames in the first chunk of input data
- MPEG decode: compare the first 2 MPEG frame headers and skip the first frame if they don't match

* fmedia: "--meta=clear" skips transient meta tags
* fmedia: windows: support --key="value with space"

fmedia v0.12 - Apr 26, 2016

+ MP4: support AAC decoding

+ GUI: support multiple playlists
+ GUI: menu commands for editing config files
* GUI: much faster remove from queue
* GUI: save position of all windows on close
* GUI: preserve track position within queue when expanding directory/m3u/cue
* TUI: Windows: support seeking and volume change using arrows
* TUI: Linux: new config setting "echo_off"
- TUI: don't react on volume change or seeking while converting
- TUI, GUI: accurate bitrate value

* MPEG encode: ID3: support tag padding ("min_meta_size" config setting)
* MPEG decode: ID3: support null-terminated tag value
- FLAC decode: support int24 audio format
- FLAC encode: fix segfault on writing large meta
* MP4: support multi-track .mp4 files
* MP4: don't fail if box with the same name occurs more than once
* soxr: support non-interleaved output
* WASAPI capture: auto-detect supported audio format
* ALSA,WASAPI playback: support more audio formats, not just int16

* fmedia: windows: support wildcards when opening input files (without bash auto-expansion)
+ fmedia: windows: new commands to fmedia.exe: --install and --uninstall
* fmedia: new arguments --flac-compression, --rate
- rtpeak: real-time peaks didn't work while recording with ALSA
- queue: couldn't overwrite meta tags with --meta argument

fmedia v0.11 - Mar 30, 2016

* MPEG decode: use libmpg123 instead of libmad
* OGG, FLAC encode: support larger Vorbis comments

- OGG: seek didn't work on files with pages copied from another file
- OGG decode: "current sample" value for the first page was invalid
- GUI: tags info: support large text
- fmedia: --gui switch didn't work without input files
- core: --wav-format=float didn't work (v0.7 bug)
- file: fix segfault when using unknown $-variable with --out switch
- file: using $filename with --out switch didn't work for filenames without slash

fmedia v0.10 - Mar 15, 2016

+ OGG: support copying OGG stream without re-encoding
- OGG: seeking is more accurate (the target OGG page is located)

- FLAC,OGG,MPEG: the formats couldn't be used with --record
- MP4: get average file bitrate from MP4 if bitrate value in ALAC header isn't set
- MP4: ALAC: accurate seek to an audio sample
- ALAC: windows: libALAC-ff.dll doesn't require libstdc++-6.dll anymore (fmedia couldn't startup with mp4.decode module enabled)

* GUI: save text of output conversion file in fmedia.gui.conf
* GUI: remove "convert_*" config settings
- GUI: fix main window flicker on startup (v0.4 bug)

- fmedia: windows: Ctrl+C didn't work (v0.9 bug)

fmedia v0.9 - Feb 29, 2016

+ MP4 (ALAC) input
+ ALSA capture
+ MPEG encode: write ID3v1 and ID3v2 tags

+ TUI: show real-time PCM peak value in dB while recording
* TUI: "Stop", "Quit" commands can stop recording
+ GUI: save playlist to M3U file
+ GUI: add commands "Jump To Marker" and "Set Marker"
- GUI: main window position wasn't preserved on File->Exit command
- GUI: show the first fmedia instance after executing the second instance without input files
- GUI: "Play Mixed and Record" command didn't work
- GUI: record: stop all playing tracks before starting playback of new tracks
- GUI: issuing the second seek command to the same position didn't work (v0.8 bug)

- APE, WavPack: don't pass binary meta (e.g. cover picture)
- OGG: support padding in Vorbis comments
* Vorbis comments: support "TotalTracks"
- OGG: fix invalid audio position if page granulepos is not set
- MPEG decode: fix inaccurate bitrate value if there's a large ID3v2 tag present

* --pcm-peaks: print peak values as dB
- fmedia: linux: fix potential threads race when SIGIO event from ALSA device fd is received in TUI command processing thread
- fmedia: windows: Unicode input arguments were not supported
- ALSA, WASAPI: reset audio device after system error
- WASAPI, core: playback of mono audio didn't work in shared WASAPI mode
- queue: don't start playing the first track in queue after playback of the last track has failed with "unsupported format" error (v0.7 bug)

fmedia v0.8 - Jan 27, 2016

+ APE decode

+ fmedia-gui: support single instance mode
+ GUI: add playback control buttons
+ GUI: "Stop After Current" command
* GUI: show playback/total time info at the top
* GUI: add settings for audio conversion
- GUI: don't react to seek or volume changes while converting audio
- GUI: prevent hanging when too many seek requests are made
- GUI: 2 seek requests were made if Right key is pressed while seek trackbar is focused
- GUI: "convert" window: "..." button didn't work (v0.7 bug)

* TUI, GUI: reduce delay after seek request
- TUI, GUI: progress bar wasn't shown right after a track is started

+ OGG encode: new config option "page_size", "min_tag_size"
* OGG: "quality" config setting type is now "float"
* OGG encode: allocate disk space for the whole output file
- OGG encode: audio samples could be lost if input data is very small
- OGG: prevent hanging in case no eos page is found or unexpected data exists after eos page

+ CUE: support non-Unicode text
- CUE: use track PERFORMER value even if global PERFORMER value exists (v0.7 bug)

+ file.out: support $filepath and $filename variables for naming output file
+ core config settings can be stored in user config file
+ fmedia: new argument --mono: convert stereo to mono
* fmedia: new config option "codepage"
* MPEG.decode: "meta_codepage" option is removed, use global "codepage" config option
- TUI: fix FP exception when total_samples is 0
- queue: the next track is started after the current track has been removed
- ALSA: fix segfault on starting the next track
- core: fix segfault when invalid keyname is used in user config file
- near forward seek didn't work if target position is larger than buffer size (v0.4 bug)

fmedia v0.7 - Dec 24, 2015

+ TUI: support real-time user commands: "Play/Stop/Next/Previous", "Seek", "Volume", "Remove from playlist", "Delete file from disk"
* TUI: always print currently playing position (e.g. while recording)
+ GUI: show error messages in a separate window
* GUI: user settings file is now located in user directory, not application directory
- GUI: fix potential threads race when sending commands to a track

* FLAC, OGG, WavPack: faster "--info"

+ FLAC encode: support generating seek table, MD5 checksum
* FLAC encode: preallocate disk space for the whole output file
* FLAC decode: improved speed of seeking

* WavPack: improved speed of seeking
- WavPack: decoding might not work if APE tag is present
- WavPack: program could hang if a large APE tag is present

+ CUE: value for --track argument may contain a list of track numbers, not just one number
+ CUE: support one more option for --cue-gaps argument
* CUE: skip tracks with invalid duration (i.e. if from >= to)
* CUE: don't skip unknown meta tags
- CUE: fix potential errors with global CUE meta (those before "FILE" keyword)
- CUE: fix meta array memory leak

+ fmedia: new command-line arguments "--meta", "--tags", "--preserve-date"
- fmedia: "--until" command didn't work for a track in .cue file
* queue: don't remove track from queue on transient or system error unless the error is "unsupported format"
* queue: don't play next file if error occurred, unless --silent mode is active
* file: support user-specified meta tags while auto-naming output file (--out)
* fmedia: --outdir is "." by default
- core: Windows: user configuration settings didn't work

fmedia v0.6 - Oct 31, 2015

+ support Linux
+ ALSA playback

+ core: support per-user configuration settings
* queue: quit when Ctrl+C is pressed
* mpeg, ogg, flac: support "meta_tracktotal"
+ mpeg.decode: support configuration setting "meta_codepage" via fmedia.conf

* flac.encode: support PCM float input
- fmedia: don't hang if no input files were specified
- core: --list-dev command didn't work (v0.3 bug)
- flac, wavpack: meta info from .CUE file has a higher priority than meta from media file itself
- plist.m3u: absolute filenames inside M3U file were not supported
- conv-soxr: "pause" command from gui didn't work correctly
- wasapi: eliminate potential race during playback
-, fix segfault on starting sound capture (v0.5 bug)
- mixer: fix segfault when using mixer (v0.5 bug)

fmedia v0.5 - Sep 29, 2015

+ WavPack decode
+ MPEG encode
+ soundmod.soxr: convert PCM sample rate

* fmedia: --seek and --until accept variable length time string of format ""
* fmedia, core, wav.out: --pcm-format -> --wav-format

+ gui: new menu commands: "Select All", "Invert Selection", "Copy to Clipboard", "Copy Filename to Clipboard", "Delete From Disk", "Play and Record", "Mix and Record"
+ gui: simple sorting by "filename", "artist", "title" columns
+ gui: convert multiple files
- core, gui: fmedia didn't exit after error in GUI loader
- gui: STOP didn't work after PAUSE
- gui, wasapi.out, dsound.out: quicker reaction to "pause", "seek" command
- gui: meta from flac.cue wasn't passed to output file when "Convert" command is used
- gui: "Open Folder" didn't work for filenames with spaces

+ mixer: buffer size can be configured in fmedia.conf
+ mixer: support mixing PCM 16le with PCM float
- mixer: output could hang in some cases

- file.out: flush memory buffers to a file before seeking
- file: seek=0 didn't work

* wasapi: request sample rate conversion if soundcard doesn't support input sample rate
* wasapi: output: don't reopen output buffer on each file, unless audio format or device has changed

- queue: the next item in queue wasn't played after directory or playlist was opened (v0.4 bug)
- plist.cue: invalid track_duration was set (v0.4 bug)
- soundmod.until: tracks from .cue files could hang when stopped from GUI (v0.4 bug)

fmedia v0.4 - Aug 21, 2015

+ gui: fmedia-gui binary supports command-line arguments
+ gui: synchronize queue with the playlist view
+ gui: accept files dragged and dropped from explorer
+ gui: support recording audio
+ gui: save into a file wmain.position and tvol.value on exit
+ gui: convert 1 selected media file
* gui: use filename as a title if there's no title in media meta info
* gui: use config options
* gui: "show directory" command selects the file in explorer
* tui: print total samples

+ plist.cue: control track pregaps (--cue-gaps=VAL)
* plist.cue: don't skip pregaps by default, but add them into the previous track
- plist.cue: precise (to a sample) seek positioning and track duration

- mixer: fix unsynchronized output (v0.3 bug)
- mixer: the first output chunk might contain invalid PCM data
- mixer: output to OGG Vorbis didn't work

- core: fix track's dictionary entries memory leak
- core: command line options "--out=.EXT --outdir=DIR" didn't work (v0.2 bug)
+ plist.dir: open directory (find files in a directory and add them to the queue)
* queue: delete the item from queue if there was an error while processing track
+ soundmod.peaks (--pcm-peaks, --pcm-crc)
- soundmod.until: the first chunk of PCM data was skipped (v0.3 bug, affects all audio processing)
+ mpeg.decode: support ID3v1 tag (note: track number and genre aren't supported)

fmedia v0.3 - Jul 25, 2015

+ added GUI
+ support M3U playlist
+ FLAC: support per-track playback of CUE files
+ file: ability to automatically name output file from meta info
+ OGG: support playing files with no eos page
+ FLAC: support FLAC-to-FLAC convertion
- conf: multiple media file extensions didn't work
- core: fixed module name memory leak
- conf: media file extension matching is now case insensitive
- FLAC: couldn't play flac files if header size matches input file buffer size

fmedia v0.2 - June 20 2015

+ FLAC input/output
+ OGG output
+ MPEG decode
+ WASAPI input with latency auto-correction
+ "live" capture mode
* --record switch is now boolean, may be used with --out=FILE
+ --outdir - Set output directory
+ --pcm-format - Set output PCM format
+ --gain - Set output gain in dB
+ --overwrite - Overwrite output file
+ conf: output_ext
+ conf: "mod_conf": modules can be configured via fmedia.conf
* OGG: more precise "current_position"
- WASAPI: don't hang if input data is too small
- correctly handle read() from eof position
- mpeg: support ID3v2 tags with "unsync" flag

fmedia v0.1 - May 23 2015

+ OGG input
+ WAV input/output, raw input
+ MPEG input (meta only)
+ file input/output
+ Direct Sound input/output
+ WASAPI output
+ mixer
Hide changelog

All features

fmedia can decode: .mp3, .ogg (Vorbis, Opus), .opus, .m4a/.mp4 (AAC, ALAC, MPEG), .mka/.mkv (AAC, ALAC, MPEG, Vorbis), .avi (AAC, MPEG), .aac, .mpc, .flac, .ape, .wv, .wav.

fmedia can encode into: .mp3, .ogg, .opus, .m4a (AAC), .flac, .wav.

Sections/Browse similar tools

Guides and How to's

Acronyms / Also Known As

fast media player, fast media recorder

Download fmedia Portable download from the Download links under Download and Download other versions!

Share software

Facebook    Twitter    Reddit    LinkedIn    Pinterest    Google+    Email

Notify me when software updated or report software

Email me when it has been updated    Report this software (dead link/new version)  

0 reviews, Showing 0 to 0 reviews
0 reviews, Showing 0 to 0 reviews

1 tool hits, Showing 1 to 1 tools

NEW SOFTWARE= New tool since your last visit
NEW VERSION= New version since your last visit
NEW REVIEW= New review since your last visit
NEW VERSION= New version

Latest version
Version number / Beta version number / Update version number and when it whas released.

Type and download
NO MORE UPDATES? = The software hasn't been updated in over 2 years.
NO LONGER DEVELOPED = The software hasn't been updated in over 5 years.
RECENTLY UPDATED = The software has been updated the last 31 days.
Freeware = Download Free software.
Freeware Trialware = Download Free software but some parts are trial/shareware.
Free software = Download Free software and also open source code also known as FOSS (Free and Open Source Software).
Free software Trialware = Download Free software and also open source code but some parts are trial/shareware.
Freeware Ads = Download Free software but supported by advertising, usually with a included browser toolbar. It may be disabled when installing or after installation.
Free software Ads = Free Download software and open source code but supported by advertising, usually with a included browser toolbar. It may be disabled when installing or after installation.
Trialware = Also called shareware or demo. Free Trial version available for download and testing with usually a time limit or limited functions.
Payware = No demo or trial available.
Portable version = A portable/standalone version is available. No installation is required.
v1.0.1 = Latest version available.
Download beta = It could be a Beta, RC(Release Candidate) or an Alpha / Nightly / Unstable version of the software.
Download 15MB = A direct link to the software download.
Win = Windows download version. It works on 32-bit and 64-bit Windows.
Win64 = Windows 64-bit download version. It works only on 64-bit Windows.
Mac = Mac download version. It works on 32-bit and 64-bit Mac OS.
Mac64 = Mac OS download version. It works only on 64-bit Mac OS.
Linux = Linux download version.
Portable = Portable version. No installation is required.
Ad-Supported = The software is bundled with advertising. Be careful when you install the software and disable addons that you don't want!
Visit developers site = A link to the software developer site.
Download (mirror link) = A mirror link to the software download. It may not contain the latest versions.
Download old versions = Free downloads of previous versions of the program.
Download 64-bit version = If you have a 64bit operating system you can download this version.
Download portable version = Portable/Standalone version meaning that no installation is required, just extract the files to a folder and run directly.
Portable version available = Download the portable version and you can just extract the files and run the program without installation.
Old versions available = Download old versions of the program.
Version history available = Complete changelog on our site.
Windows = Windows version available.
Mac OS = Mac OS version available.
Linux = Linux version available.
Our hosted tools are virus and malware scanned with several antivirus programs using

Rating from 0-10.

Browse software by sections

Search   Contact us   Privacy Policy   About   Advertise   Forum   RSS Feeds   Statistics   Software   

Site layout: Default Classic Blue