ogg123(1)
β¨ ogg123 β¨
okay bestie, welcome to the ogg123 manual page, straight outta Vorbis Tools, manual section 1. this is the girl who plays your Ogg and FLAC files and she does NOT miss. grab a snack, this one's a long read π
πΈ NAME πΈ
ogg123 β plays Ogg, and FLAC files π
π SYNOPSIS π
ogg123 [ -vqrzZVh ] [ -k seconds ] [ -x nth ] [ -y ntimes ] [ -b
buffer_size ] [ -d driver [ -o option:value ] [ -f filename ] ] file ...
| directory ... | URL ...
π DESCRIPTION π
so. ogg123 reads Ogg/Vorbis, Ogg/Speex, Ogg/Opus, Ogg/FLAC, and native FLAC audio files and decodes them to whatever devices you told it about on the command line. it's giving β¨decoder eraβ¨
by default ogg123 writes to the standard sound device, no cap β but honestly? output can be sent to any number of devices. she's versatile like that π
files can be read from the file system, or URLs can be streamed via HTTP. and if you hand her a directory? she plays all of the files in it or its subdirectories. she's thorough, she's committed, she's the moment π
π«Ά OPTIONS π«Ά
here's the whole menu, bestie. every single one. no skipping, we don't do that here π
--audio-buffer nβ use an output audio buffer of approximatelynkilobytes.-@ playlist,--list playlistβ play all of the files named in the fileplaylist. the playlist should have one filename, directory name, or URL per line. blank lines are permitted. directories get treated exactly the same way as they would on the command line.-b n,--buffer nβ use an input buffer of approximatelynkilobytes. HTTP-only option.-p n,--prebuffer nβ prebuffernpercent of the input buffer. playback won't begin until this prebuffer is complete. HTTP-only option.-d device,--device deviceβ specify output device. see the DEVICES section for a list of devices. any number of devices may be specified π₯-f filename,--file filenameβ specify output file for a file device previously specified with--device. the filename-writes to standard out. if the file already exists,ogg123will overwrite it. (yes, just like that. no warning, no mercy.)-h,--helpβ show command help.-k n,--skip nβ skip the firstnseconds.nmay also be inminutes:secondsorhours:minutes:secondsform.-K n,--end nβ stops playingnseconds from the start of the stream.nmay also have the same format as used in the--skipoption.-o option[:value],--device-option option[:value]β sets the optionoptiontovaluefor the preceding device. see DEVICES for a list of valid options for each device.-q,--quietβ quiet mode. no messages are displayed. π€«-V,--versionβ display version information.-v,--verboseβ increase verbosity.-x n,--nthβ play everynth decoded block. has the effect of playing audio atntimes faster than normal speed.-y n,--ntimesβ repeat every played blockntimes. has the effect of playing audiontimes slower than normal speed. may be used with-xfor interesting fractional speeds π-r,--repeatβ repeat playlist indefinitely.-z,--shuffleβ play files in pseudo-random order.-Z,--randomβ play files in pseudo-random order forever. periodt.
π¦ DEVICES π¦
ogg123 supports a whole variety of audio output devices through libao. only the devices supported by the target platform will actually be available, so don't come for her if your fav isn't there π
the -f option may only be used with devices that write to files. that's the rule, bestie.
π Options supported by all devices
debugβ turn on debugging output [if any] for a chosen driver.matrix:valueβ force a specific output channel ordering for a given device.valueis a comma separated list of AO style channel names, eg,L,R,C,LFE,BL,BR,SL,SR.verboseβ turn on verbose output for a chosen driver. the-voption will also set the driver verbose option.quietβ force chosen driver to be completely silent. even errors will not produce any output.-qwill also set the driver quiet option.
πΈ aixs
AIX live output driver. options:
dev:valueβ set AIX output device tovalue.
β alsa
Advanced Linux Sound Architecture live output driver. options:
buffer_time:valueβ override the default hardware buffer size (in milliseconds).dev:valueβ ALSA device label to use. examples include"hw:0"for the first soundcard and"hw:1"for the second. thealsadriver normally chooses one of"surround71","surround51","surround40"or"default"automatically depending on number of output channels. for more information, seehttp://alsa.opensrc.org/ALSA+device+labelsperiod_time:valueβ override the default hardware period size (in microseconds).period_time:valueβ override the default hardware period size (in microseconds).
ngl she said it twice. that's just how the page is, we don't gatekeep π
use_mmap:valueβvalueis set to"yes"or"no"to override the compiled-in default to use or not use mmap device access. in the past, some buggy alsa drivers have behaved better when not using mmap access at the penalty of slightly higher CPU usage.
π arts
aRts Sound Daemon live output driver. options:
multi:valueβvalueis set to"yes"or"no"to allow opening the aRts playback device for multiply concurrent playback. although the driver works properly in multi mode, it is known to occasionally crash the aRts server itself π default behavior is"no".
π au
Sun audio file output. writes the audio samples in AU format. the AU format supports writing to unseekable files like standard out. in such circumstances, the AU header will specify the sample format, but not the length of the recording.
π§ esd
Enlightened Sound Daemon live output. options:
host:valueβvaluespecifies the hostname whereesdis running. this can include a port number after a colon, as in"whizbang.com:555". (Default =localhost)client_name:valueβ sets the client name for the new audio stream. defaults to"libao client".
π irix
IRIX live output audio driver.
π macosx
MacOS X 'AUHAL' live output driver. this driver supports MacOS X 10.5 and later (10.4 and earlier uses an earlier, incompatible interface). options:
buffer_time:valueβ set the hardware buffer size to the equivalent ofvaluemilliseconds.
β¨ nas
Network Audio Server live output driver. options:
buf_size:valueβ set size of audio buffer on server in bytes.host:valueβ set location of NAS server; seenas(1)for format.
π null
Null driver. all audio data is discarded. (Note: audio data is not written to /dev/null !) you could use this driver to test raw decoding speed without output overhead.
π oss
Open Sound System driver for Linux and FreeBSD, versions 2, 3 and 4. options:
dsp:valueβ DSP device for soundcard. defaults to/dev/dsp.
π pulse
Pulseaudio live audio sound driver. options:
server:valueβ specifies location of remote or alternate Pulseaudio server.sink:valueβ specifies a non-default Pulseaudio sink for audio stream.
π¦ raw
Raw file output. writes raw audio samples to a file. options:
byteorder:valueβ chooses big endian ("big"), little endian ("little"), or native ("native") byte order. default is native order.
π₯ roar
RoarAudio Daemon live output driver. options:
server:value,host:valueβ specifies location of remote RoarAudio server to use.id:value,dev:valueβ specifies a non-default mixer within a RoarAudio server for audio stream.role:valueβ sets the role setting for the audio stream.client_name:valueβ sets the client name for the new audio stream. defaults to"libao client".
πΈ sndio
OpenBSD SNDIO live output driver. options:
dev:valueβ specifies audio device to use for playback.
β sun
Sun Audio live output driver for NetBSD, OpenBSD, and Solaris. options:
dev:valueβ audio device for soundcard. defaults to/dev/audio.
π wav
WAV file output. writes the sound data to disk in uncompressed form. if multiple files are played, all of them will be concatenated into the same WAV file. WAV files cannot be written to unseekable files, such as standard out. use the AU format instead.
π wmm
Windows MultiMedia live output driver for Win98 and later. options:
dev:valueβ selects audio device to use for playback by device name.id:valueβ selects audio device to use for playback by device id (card number).
π EXAMPLES π
the ogg123 command line is fairly flexible, perhaps confusingly so (she's just like that π
). here are some sample command lines and an explanation of what they do.
Play on the default soundcard:
ogg123 test.ogg
Play all of the files in the directory ~/music and its subdirectories.
ogg123 ~/music
Play a file using the OSS driver:
ogg123 -d oss test.ogg
Pass the "dsp" option to the OSS driver:
ogg123 -d oss -o dsp:/dev/mydsp
Use the ESD driver
ogg123 -d esd test.ogg
Use the WAV driver with the output file, "test.wav":
ogg123 -d wav -f test.wav test.ogg
Listen to a file while you write it to a WAV file:
ogg123 -d oss -d wav -f test.wav test.ogg
Note that options apply to the device declared to the left:
ogg123 -d oss -o dsp:/dev/mydsp -d raw -f test2.raw -o
byteorder:big test.ogg
Stress test your harddrive:
ogg123 -d oss -d wav -f 1.wav -d wav -f 2.wav -d wav -f 3.wav -d
wav -f 4.wav -d wav -f 5.wav test.ogg
Create an echo effect with esd and a slow computer:
ogg123 -d esd -d esd test.ogg
π INTERRUPT π
you can abort ogg123 at any time by pressing Ctrl-C. if you're playing multiple files, this will stop the current file and begin playing the next one. if you want to abort playing immediately instead of skipping to the next file, press Ctrl-C within the first second of the playback of a new file. β‘
note that the result of pressing Ctrl-C might not be audible immediately, due to audio data buffering in the audio device. this delay is system dependent, but it is usually not more than one or two seconds. she's not ignoring you, she's just buffering π₯Ί
β¨ FILES β¨
/etc/libao.confβ the system-wide glow-up spot π you can use this to set the default output device for every libao program on the machine. One config to rule them all, no cap.~/.libaoβ the per-user config file, aka your personal little corner of the universe π it overrides the system wide output device settings, so whatever you put here wins. your vibes, your rules.
π BUGS π
ngl there's one thing you gotta know about, bestie, and it's giving chaos:
Piped WAV files may cause strange behavior in other programs. π
why, you ask? because WAV files store the data length in the header. however, the output driver does not know the length when it writes the header, and there is literally no value that means "length unknown". it's a whole situation. π
So if you need to useogg123in a pipe, use theraworauoutput driver instead. that's the move. periodt.
π AUTHORS π
Program Authors:
- Kenneth Arnold <kcarnold-xiph@arnoldnet.net>
- Stan Seibert <volsung@xiph.org>
Manpage Author:
- Stan Seibert <volsung@xiph.org>
iconic legends, honestly. we stan. π«Ά
π SEE ALSO π
go read those too, iykyk β¨
okay bestie that's the whole page!! π this lil masterpiece came from the Xiph.Org Foundation, dated 2010 March 24, and it's the ogg123(1) manpage β go forth and play your oggs, you absolute main character π π¦ πΈ
π¦ where this page comes from
- alpine 3.24: vorbis-tools-doc 1.4.3-r2 Β· GPL-2.0-only
- arch rolling: vorbis-tools 1.4.3-1 Β· GPL2
- debian bookworm: vorbis-tools 1.4.2-1+b1
- debian trixie: vorbis-tools 1.4.3-1
- epel 10: vorbis-tools 1:1.4.2-14.el10_1 Β· GPL-2.0-only
- epel 9: vorbis-tools 1:1.4.2-10.el9 Β· GPLv2
- fedora 43: vorbis-tools 1:1.4.3-3.fc43 Β· GPL-2.0-only
- fedora 43: vorbis-tools 1:1.4.3-4.fc43 Β· GPL-2.0-only
- fedora 44: vorbis-tools 1:1.4.3-4.fc44 Β· GPL-2.0-only
- fedora 44: vorbis-tools 1:1.4.3-5.fc44 Β· GPL-2.0-only
- nixos 26.05: vorbis-tools 1.4.3
- nixpkgs unstable: vorbis-tools 1.4.3
- opensuse-leap 16.0: vorbis-tools 1.4.2-bp160.2.1 Β· GPL-2.0-only
- opensuse-leap 16.0: vorbis-tools 1.4.2-bp160.2.1 Β· GPL-2.0-only
- opensuse-leap 16.0: vorbis-tools 1.4.2-bp160.2.1 Β· GPL-2.0-only
- opensuse-leap 16.0: vorbis-tools 1.4.2-bp160.2.1 Β· GPL-2.0-only
- ubuntu jammy: vorbis-tools 1.4.2-1
- ubuntu noble: vorbis-tools 1.4.2-2
- ubuntu questing: vorbis-tools 1.4.3-1
- ubuntu resolute: vorbis-tools 1.4.3-1build1
- ubuntu stonking: vorbis-tools 1.4.3-1build1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms