fmedia

fmedia - fast media player/recorder/converter

OVERVIEW

fmedia is a fast media player/recorder/converter for Windows, 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 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.

ARTICLES

SCREENSHOTS



See all screenshots.

DOWNLOAD

Note: it's beta version - not tested well enough, not all functions will work as expected. See section "USE-CASES" for the features that should work.

Windows x64:
fmedia-0.37-win-x64.zip
Windows x86 (32-bit):
fmedia-0.37-win-x86.zip
Linux x86-64:
fmedia-0.37-linux-amd64.tar.xz
Linux i686 (32-bit):
fmedia-0.31-linux-i686.tar.xz
FreeBSD amd64:
fmedia-0.30.2-bsd-amd64.tar.xz
Mac OS X amd64:
(Note: no playback/recording, audio conversion only!)
fmedia-0.35-macos-amd64.zip

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: https://github.com/stsaz/fmedia

CHANGES

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)
See full history

INSTALL ON WINDOWS

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

    • Right click on fmedia package file (e.g. fmedia-0.33-win-x64.zip) 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).

INSTALL ON LINUX

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

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

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

FEATURES

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

INPUT

FILTERS

OUTPUT

USE-CASES

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

PLAY

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

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

RECORD

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

OTHER FUNCTIONS

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

FEEDBACK

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

Copyright © 2015 Simon Zolin