Ogg Vorbis utilities

Command Line – Ogg Vorbis

© Photo by neil thomas on Unsplash

© Photo by neil thomas on Unsplash

Author(s):

With the addition of its supporting utilities, Ogg Vorbis competes with other free audio formats.

Support for the free Ogg Vorbis audio format [1] is included by default in most Linux distributions. However, if you want to do more than play an Ogg file or rip a CD to the format using a desktop application, you need more than the Ogg codec. Although all-purpose tools are available for audio files, the most convenient tools for manipulating Ogg files are the format's supporting utilities, most of which are contained in the vorbis-tools package [2]. With these utilities, you can convert, play, and edit Ogg files and their meta-comments from the command line.

Ogg Vorbis is an audio format that uses lossy compression, like MP3. Unlike FLAC, Xiph.Org's other free format that is popular with audiophiles for its high sound quality, Ogg has never been particularly popular. Many music players do not support it at all. Moreover, now that the MP3 format no longer has a restricted license, there is less reason for advocates of software freedom to use Ogg – although old habits die hard. However, there are still occasions where the smaller files created by lossy compression are useful, such as when using a player with limited memory, and at an equivalent sampling rate and file size, Ogg files offer higher sound quality than MP3s. Especially at their highest settings, Ogg files remain a reasonable compromise between file size and quality. By using the available utilities, you can get the most out of this often under-rated audio format.

oggenc

The basic command-line tool for making that conversion from .raw, .wav, .aiff, or even .flac is oggenc (Figure 1). Ordinarily, .flac would be preferable to .ogg in terms of sound quality, but you might choose to create an .ogg file to produce a smaller file, especially one intended to be played where high sound quality would be wasted, such as on a bus or downtown.

Figure 1: oggenc converts several formats to .ogg and edits file comments.

Converting a file is as simple as typing the basic file followed by the file to convert, which will produce an .ogg file of medium quality with the same root name. Should you want a different name for the output file, add --output=FILE. You may also want more control over the quality of the output; you can achieve this by using the option --quality=NUMBER, where 1 is the lowest quality and 10 the highest. Similarly, if the output file is intended for playing on a mono system, you can use --downmix to reduce the quality of a stereo source file.

oggenc also offers considerable control over comments. You can eliminate comments altogether with --discard-comments. Or possibly you may prefer simply to edit comments with a series of options that take the structure --comment=VALUE and include such standard comments as artist, genre, date, track number, and title. You can also use --lyrics=FILE, which will display the words to a song in a music player like Amarok.

Still other options set the minimum and maximum bit rates, as well as other advanced options, about which average users are unlikely to care. See the oggenc man page for complete details.

ogg123

ogg123 (Figure 2) is a playback command of considerable versatility. The simplest structure for the command is:

ogg123 --device=SOUNDSYSTEM INPUT-FILE
Figure 2: ogg123 is a command-line music player.

On most modern Linux systems, the sound system will be pulse, but if that doesn't work, then try alsa or oss. The input file is an .ogg or .flac file or a space-separated list of files.

However, that is only the beginning. You can create a playlist in which the paths to a file name are entered one per line and then use it with the --playlist option. You can use --skipSECONDS to set the start of playback and --endSECONDS to quit playback. With --repeat, the files specified will play again from the first one. Alternatively, --shuffle will play a list of files once in random order, while --random will play the list of files randomly over and over. If you are having trouble with playback, the option --buffer=KILOBYTES may improve performance.

ogginfo

Vorbis files contain a wealth of information about themselves, and ogginfo (Figure 3) displays it all, starting with bit rates, moving through comments, going on to the data length or file time and playback time in minutes and seconds, and ending with the average bit rates.

Figure 3: ogginfo gives detailed information about the attributes of Ogg files, including all the metatags.

For convenience, you can query multiple files at one time by specifying files in a space-separated list after the basic command. However, even a single file returns more than a screenful of information on anything except the largest screens, so you should probably pipe ogginfo through the less command so that the output is more manageable.

oggdec

oggdec (Figure 4) is a simple converter between file formats. The command structure is:

oggdec FILE.ogg
Figure 4: oggdec converts the formats of CDs and DVDs to .ogg.

Multiple output files can be specified with a space-separated list, and output files are created using original file names for the name and adding a different extension. If you are importing a single file, you can use --outputfile=File to change the file name. The default output is a .wav file, the format usually used on a CD.

The option -bits=NUMBER can be used to specify an 8- or 16-bit file. You can also create an output in RAW format by specifying --raw as an option. For 16-bit files, you can also specify endianness with the option --endian=, using 1 for small-endian and   for big-endian, or signedness with sign=, using   for unsigned and 1 for signed. However, today usually you should not need to consider either of these optons.

vcut

vcut (Figure 5) creates copies of an existing .ogg file, beginning and ending at the specified locations, which are designated in seconds. The format is:

vcut SOURCE OUTPUT START-POINT +ENDPOINT
Figure 5: vcut produces truncated copies of .ogg files.

The original file is not affected.

vorbiscomment

Music players generally include options for displaying files by categories such as artist, title, track number, and genre. vorbiscomment (Figure 6) is a utility for editing those comments and adding new categories. These comments are usually ripped along with the file and can be edited or expanded as you choose.

Figure 6: vorbiscomment is an editor for the metatags of Ogg files.

To see the existing comments, enter:

vorbiscomment --list FILE.ogg

A number of comments are standard to all files, but you can add your own with the options:

--append --comment 'NAME=VALUE'

Alternatively, you can place all the comments and modifications you want to make in a file, one per line, and add them to the file using the options --append --comment. Use the option --append FILE.ogg, press Return, add a comment in the format NAME=VALUE (one per line), and press Ctrl+D when finished. Existing comments can be replaced by using the --write option alongside the --append and --comment options. Comments can be written in UTF-8 format by the addition of --write.

vorbisgain

vorbisgain (Figure 7) is not packaged with vorbis-tools, but it is a related tool that you might want to download at the same time [3]. The utility is intended to maintain a uniform sound or replay gain across files on the same album.

Figure 7: vorbisgain smooths out the volume levels of both albums and individual files.

To begin using vorbisgain, enter the command

vorbisgain --album ./*.ogg

adding the --recursive option if some of the files to modify are in subdirectories. The command returns the settings for each file with the same directory comment and a recommended setting that is usually the average of all the files. The gain on each file can then be set with the option --album-gain=SETTING. You may want to preserve file attributes with the --preserve-m-time option. Should the results not to be to your liking, you can use --clean to remove the gain comments created by vorbisgain before making adjustments.

Adding Control

When these utilities are added to a system, the Ogg Vorbis format becomes a much more attractive alternative. In particular, ogg123 is a compact music player, while, aside from its specialization, vorbiscomments is one of the most versatile editors for meta-comments that I have found. As for vorbisgain, I can think of no other audio format for which a similar command-line tool is available. You may not always need all the available Ogg utilities, but they make the format more of an option than it is by itself.

The Author

Bruce Byfield is a computer journalist and a freelance writer and editor specializing in free and open source software. In addition to his writing projects, he also teaches live and e-learning courses. In his spare time, Bruce writes about Northwest coast art. You can read more of his work at http://brucebyfield.wordpress.com