Usage:
    fmedia [OPTIONS] [INPUT...]

INPUT              Input file, directory, URL or a wildcard
                   @stdin.EXT: read from standard input.

OPTIONS

Typical track chain: QUEUE -> INPUT -> FILTERS -> ENCODERS -> OUTPUT

AUDIO DEVICES:

--list-dev          List available sound devices and exit
--dev=DEVNO         Use playback device
--dev-capture=DEVNO Use capture device
--dev-loopback=DEVNO
                    Use playback device in a loopback mode (record from playback) (WASAPI only).
                    If used together with --dev-capture,
                     2 recording streams from both devices will run in parallel.

AUDIO FORMAT:

--format=STR       Set audio format (int8 | int16 | int24 | int32 | float32)
--rate=INT         Set sample rate
                   Note: some settings may not work together with sample rate conversion.
--channels=STR     Set channels number
                   Can convert stereo to mono:
                    --channels=mono: mix all channels together
                    --channels=left: use left channel only
                    --channels=right: use right channel only

QUEUE:

--track=N1[,N2...] Select specific track numbers in playlist
--repeat-all       Repeat all
--random           Choose the next track randomly

INPUT (RECORDING):

--record           Capture audio.  Set default audio format in fmedia.conf::record_format.
--capture-buffer   Length (in msec) of the capture buffer (See also fmedia.conf::*.in.buffer_length)

INPUT (FILES):

--flist=FILE       Read filenames from FILE
--include='WILDCARD[;WILDCARD]'
                   Only include files matching a wildcard (case-insensitive)
--exclude='WILDCARD[;WILDCARD]'
                   Exclude files & directories matching a wildcard (case-insensitive)
-i, --info         Don't play but show media information
--tags             Print all meta tags
--fseek=BYTE       Set input file offset
--seek=TIME        Seek to time: [[HH:]MM:]SS[:MSC]
--until=TIME       Stop at time
                   Special values:
                     'playback-end': stop recording when the last playback track is finished

INPUT (.cue):

--cue-gaps=INT     control track pregaps
                   0: skip pregaps:
                     track01.index01 .. track02.index00
                   1: (default), gap is added to the previous track:
                     track01.index01 .. track02.index01
                   2: gap is added to the previous track (but track01's pregap is preserved):
                     track01.index00 .. track02.index01
                     track02.index01 .. track03.index01
                   3: gap is added to the beginning of the current track:
                     track01.index00 .. track02.index00

FILTERS (VOLUME):

--volume=INT       Set volume (0% .. 125%)
--gain=FLOAT       Set gain/attenuation in dB
--dynanorm         Use Dynamic Audio Normalizer filter.
                   Set parameters in section `mod_conf dynanorm.filter` in fmedia.conf.
--auto-attenuate=FLOAT
                   Set ceiling audio level in dB (always negative value) for loud tracks

FILTERS (LEVEL):

--start-dblevel=DB Skip initial audio until input signal level goes above DB (-100dB..0dB)
--stop-dblevel=DB[;TIME][;MINTIME]
                   Stop processing if input signal level goes below DB for TIME time (default: 5 sec).
                   If MINTIME is specified, stop only after MINTIME time has passed.

--pcm-peaks        Analyze PCM and print some details
--pcm-crc          Print CRC of PCM data (must be used with --pcm-peaks)
                   Useful for checking the results of lossless audio conversion.

FILTERS (LENGTH):

--prebuffer=TIME   Start writing the recorded audio to a file by user's command,
                    saving some previously recorded data (before the command is issued)
--split=TIME       Split audio by equal time intervals

FILTERS:

--mix              Play input files simultaneously.
                   Set audio format in fmedia.conf::mod_conf "mixer.out".
                   Note: all inputs must have channels number and sample rate equal to the output.

ENCODERS:

--vorbis.quality=FLOAT
                   Vorbis encoding quality: -1.0 .. 10.0
                    VBR-quality guide (44.1k/2ch):
                     5: ~150kbit/s
                     7: ~200kbit/s
--opus.bitrate=INT Opus encoding bitrate: 6..510 (VBR)
--mpeg-quality=INT MPEG encoding quality: 9..0 (VBR) or 64..320 (CBR)
                    VBR-quality guide (44.1k/2ch):
                     0: ~190kbit/s
--aac-quality=INT  AAC encoding quality: 1..5 (VBR) or 8..800 (CBR, kbit/s)
                    VBR-quality guide (44.1k/2ch, LC):
                     4: ~120kbit/s
                     5: ~210kbit/s
--aac-profile=STR  Set AAC profile: LC | HE | HEv2
--flac-compression=INT
                   FLAC compression level: 0..8
--stream-copy      Copy audio data without re-encoding.  Supported formats: .ogg, .mp3.

OUTPUT:

-o, --out=[NAME].EXT
                   Don't play but write output to a file (i.e. convert audio)
                   If NAME is "@stdout", write to standard output.
                   Output format is chosen by "EXT" (see fmedia.conf::output_ext).
                   Supported variables:
                     $filepath: path to input file
                     $filename: name (without extension) of the input file
                     $date: current date
                     $time: current time
                     $timems: current time with milliseconds
                     $counter: sequentially incrementing counter (starts from 1)
                   --out=.ogg is a short for --out='./$filename.ogg'
                   Filename may be generated automatically using meta info,
                     e.g.: --out '$tracknumber. $artist - $title.flac'
-y, --overwrite    Overwrite output file
--preserve-date    Set output file date/time equal to input file.
--out-copy         Play AND copy data to output file specified by "--out" switch
                     (for ICY streams only)
--out-copy-cmd     Play AND copy data to output file specified by "--out" switch,
                     but save each track only by user's command

OUTPUT (TAGS):

--meta='[clear;]NAME=STR;...'
                    Set meta data
                    If "clear;" is specified, skip all meta from input file.
                    .mp3 supports: album, albumartist, artist, comment, date, genre, picture, publisher, title, tracknumber, tracktotal.
                    .mp4 supports: album, albumartist, artist, comment, composer, copyright, date, discnumber, genre, lyrics, title, tracknumber.
                    .flac, .ogg support tags of any name.
                    Value may be read from file (e.g. album cover picture):
                     "--meta=picture=@file:FILENAME"
--edit-tags         Don't play files but just modify their meta tags.
                    Set tags with '--meta'.
                    Supported formats: .mp3(ID3v2+ID3v1)
--meta-from-filename=TEMPLATE
                    Specify template for auto-tagging from input file name.
                    Use together with --edit-tags.
                    .mp3 supports: $album, $albumartist, $artist, $comment, $date, $genre, $publisher, $title, $tracknumber, $tracktotal.

OTHER OPTIONS:

--parallel         Process input files in parallel (fmedia.conf::workers).
                   Must be used with '--out'.
--background       Create a new process that will run in background
--globcmd=STR      Send commands to another running fmedia process.
                   Supported commands:
                     listen: Start listening for incoming commands
                     play INPUT... : Add items to queue and start playing the first added
                     add INPUT... : Add items to queue
                     clear: Clear the current queue
                     next: Play next track in the current queue
                     stop: Stop all active tracks
                     pause: Pause all active tracks
                     unpause: Unpause all paused tracks
                     quit: Close fmedia process
--globcmd.pipe-name=STR
                   Set name of the pipe for communication between fmedia instances

--conf=FN          Set configuration file (default: "fmedia.conf" from the program directory)
--gui              Run in graphical UI mode (Windows,Linux only)
--notui            Don't use terminal UI
--print-time       Show the time spent for processing each track
-D, --debug        Print debug info to stdout
-h, --help         Print help info and exit

INSTALL:

--install          Windows: add fmedia directory into user's environment and create a desktop shortcut
--uninstall        Undo changes made by '--install'

SOME EXAMPLES:

Play:
    fmedia play.mp3
Record:
    fmedia --record -o rec.flac
Convert:
    fmedia input.wav -o output.ogg
Edit tags:
    fmedia --edit-tags --meta='artist=ARTIST;title=TITLE' file.mp3
