fmedia - fast media player/recorder/converter


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. 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. You'll find more detailed information about fmedia in README.txt file inside the package.



See all screenshots.


Note: it's beta version - not tested well enough, not all functions will work as expected. See section "USE-CASES" to have an idea of which features should work.

Self-contained. fmedia uses modified versions of 3rd party libraries: libALAC, libfdk-aac, libFLAC, libMAC, libmp3lame, libmpg123, libmpc, libogg, libopus, libsoxr, libvorbisenc, libvorbis, libwavpack. 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 v0.32.1 - Jan 16, 2018

 - windows: 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
See full history


1. Unpack archive to the directory of your choice, e.g. to "C:\Program Files\fmedia" 2. Optionally, run the following command (from console):

"C:\Program Files\fmedia\fmedia.exe" --install
This command will:


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

tar Jxf ./fmedia-0.8-linux-amd64.tar.xz -C /usr/local
2. Optionally, create a symbolic link:
ln -s /usr/local/fmedia-0/fmedia /usr/local/bin/fmedia


All features are provided by fmedia modules divided into 3 groups:

	. File
	. ICY
	. WASAPI Capture
	. Windows Direct Sound Capture
	. ALSA Capture

	. MP4 input/output
	. MKV input
	. OGG input/output
	. AVI input

	Lossy codecs:
	. MPEG input/output
	. Vorbis input/output
	. Opus input/output
	. AAC input/output

	Lossless Codecs:
	. FLAC input/output
	. ALAC input
	. WavPack input
	. APE input
	. WAV input/output
	. RAW input

	. M3U, PLS input
	. CUE input
	. Directory input

	. PCM converter
	. PCM peaks
	. Mixer
	. Terminal UI
	. Graphical UI

	. File
	. Windows Direct Sound Playback
	. WASAPI Playback
	. ALSA Playback
	. Pulse Audio Playback
	. OSS Playback


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


	fmedia ./file.ogg --out=./file.wav
	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 --outdir=.

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


Please report bugs to stsaz [at] Your suggestions and source code patches are also greatly appreciated.

Copyright © 2015 Simon Zolin