fmedia -is a fast asynchronous 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.
+ --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
Ein häufiger Fehler den Leute machen, wenn sie etwas völlig Narrensicheres erfinden wollen, ist den Einfallsreichtum kompletter Narren zu unterschätzen.
+ "--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
Ein häufiger Fehler den Leute machen, wenn sie etwas völlig Narrensicheres erfinden wollen, ist den Einfallsreichtum kompletter Narren zu unterschätzen.
+ --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)
Ein häufiger Fehler den Leute machen, wenn sie etwas völlig Narrensicheres erfinden wollen, ist den Einfallsreichtum kompletter Narren zu unterschätzen.
+ 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
Ein häufiger Fehler den Leute machen, wenn sie etwas völlig Narrensicheres erfinden wollen, ist den Einfallsreichtum kompletter Narren zu unterschätzen.
+ 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
Ein häufiger Fehler den Leute machen, wenn sie etwas völlig Narrensicheres erfinden wollen, ist den Einfallsreichtum kompletter Narren zu unterschätzen.
+ 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)
Ein häufiger Fehler den Leute machen, wenn sie etwas völlig Narrensicheres erfinden wollen, ist den Einfallsreichtum kompletter Narren zu unterschätzen.
+ GUI: Parallel conversion (fmedia.conf::workers).
+ Parallel conversion from command line ('--parallel' switch)
- .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.
Ein häufiger Fehler den Leute machen, wenn sie etwas völlig Narrensicheres erfinden wollen, ist den Einfallsreichtum kompletter Narren zu unterschätzen.
+ 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
"Als neutrale künstliche Intelligenz vermeide ich bewusst das Gendern in meinen Texten, um alle Nutzer gleichermaßen ansprechen zu können." (ChatGPT auf die Frage, ob die KI gendert)
+ 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
Ein häufiger Fehler den Leute machen, wenn sie etwas völlig Narrensicheres erfinden wollen, ist den Einfallsreichtum kompletter Narren zu unterschätzen.
+ 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
Ein häufiger Fehler den Leute machen, wenn sie etwas völlig Narrensicheres erfinden wollen, ist den Einfallsreichtum kompletter Narren zu unterschätzen.
+ 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
Ein häufiger Fehler den Leute machen, wenn sie etwas völlig Narrensicheres erfinden wollen, ist den Einfallsreichtum kompletter Narren zu unterschätzen.
* .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
Ein häufiger Fehler den Leute machen, wenn sie etwas völlig Narrensicheres erfinden wollen, ist den Einfallsreichtum kompletter Narren zu unterschätzen.
* 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
"Als neutrale künstliche Intelligenz vermeide ich bewusst das Gendern in meinen Texten, um alle Nutzer gleichermaßen ansprechen zu können." (ChatGPT auf die Frage, ob die KI gendert)
+ 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
Ein häufiger Fehler den Leute machen, wenn sie etwas völlig Narrensicheres erfinden wollen, ist den Einfallsreichtum kompletter Narren zu unterschätzen.
Ein häufiger Fehler den Leute machen, wenn sie etwas völlig Narrensicheres erfinden wollen, ist den Einfallsreichtum kompletter Narren zu unterschätzen.
+ 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: core.so: don't use glibc 2.29
* log: print input file name for error/info messages
"Als neutrale künstliche Intelligenz vermeide ich bewusst das Gendern in meinen Texten, um alle Nutzer gleichermaßen ansprechen zu können." (ChatGPT auf die Frage, ob die KI gendert)
+ 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
"Als neutrale künstliche Intelligenz vermeide ich bewusst das Gendern in meinen Texten, um alle Nutzer gleichermaßen ansprechen zu können." (ChatGPT auf die Frage, ob die KI gendert)
+ .mkv: support Opus; support .webm; support seeking (slightly inaccurate)
+ .mkv(Opus) -> .ogg copy: "fmedia f.mkv -o f.ogg --stream-copy"
+ .cue: support .mp4/.mkv/.mp3
+ .avi: support "pcm" codec
+ GUI(Linux): "File->Delete From Disk": move to Trash by default
- .mkv: crash when reading tags
- Opus decode: fix "clicks" on tracks changing; accurate positioning
"Als neutrale künstliche Intelligenz vermeide ich bewusst das Gendern in meinen Texten, um alle Nutzer gleichermaßen ansprechen zu können." (ChatGPT auf die Frage, ob die KI gendert)