Convert WAV to OGG

Converting WAV to OGG gives you the royalty-free container game engines and Linux toolchains ask for, at a fraction of the size of the WAV. The Ogg file written here carries an Opus stream rather than Vorbis, which is worth checking against your engine before you convert a whole asset folder. Nothing is uploaded.

  • Where it runs In your browser. The file is never uploaded.
  • Lossy Some detail is traded for size. OGG cannot hold everything a WAV can.
  • File size limit Up to 100 MB per file, free, without an account.

Up to 100 files at once. Mixed formats are fine.

The OGG written here carries Opus, and that is worth knowing first

Ogg is a container, not a codec. Over its life it has carried Vorbis, Opus, FLAC and Speex, and the extension .ogg says nothing about which of them is inside. For most of the last twenty years the honest expansion of ".ogg" was "Vorbis", and a great many tutorials, engine docs and forum answers still assume exactly that.

The file this page produces holds Opus. That is the better codec by a wide margin at every bitrate a game would use, and it is the one every current decoder supports. It is also not Vorbis, so if your target is an older engine, a piece of middleware or a loader somebody wrote by hand against a Vorbis library, convert one file and load it in the real build before you convert four hundred.

The extension is usually the actual requirement

Almost nobody converting to OGG chose it on the merits. It is required because the engine documentation names it, because the project has a rule against patent-encumbered formats, or because the distribution channel or the Linux packaging guidelines said so. The reason is licensing policy, and it is a perfectly good reason.

That shapes what this page should tell you. The interesting questions are not about listening; they are whether the file loads, whether it loops, whether it seeks, and how much of the download budget it costs. Fidelity at these bitrates is not where a game audio pipeline goes wrong.

Testing one asset before converting the folder

The check that matters takes two minutes and is not the one people run. Playing the converted file in a desktop media player proves only that the desktop player has an Opus decoder, which it certainly does. The question is whether your engine, on your target platform, in a build rather than in the editor, will load it.

Convert one representative asset — ideally the one with a loop in it — import it, and run the build. Mobile and console targets are where a format assumption fails, and they fail at import or at first play, not subtly. Discovering that after converting an entire library is an avoidable afternoon.

Loops, pre-skip and the tick at the seam

Every lossy encoder has to prime itself, so the first samples out of a decoder are not the first samples that went in. Ogg Opus handles this properly: the stream header records the pre-skip, and a decoder that honours it discards exactly that much and starts where it should.

The failure is on the playback side. A loader that ignores the pre-skip prefixes a few milliseconds of silence to every clip, which nobody notices on a one-shot sound effect and everybody notices on a two-bar loop, where it becomes an audible gap once per repetition. If a loop is critical and the engine gets it wrong, the answer is to keep that particular asset uncompressed and compress everything else.

Budgeting bitrate across dialogue, music and effects

Opus is unusually good at low rates, which is what makes it worth the pipeline change. Dialogue in mono sits comfortably around 48 kbps and stays intelligible far below that. Ambient loops and music want more, and the balanced band is a safe default for anything with instruments in it.

Short effects are the odd case. A 200-millisecond impact is dominated by per-file overhead rather than by bitrate, so encoding it hard saves nothing measurable while risking a softened transient. Spend the bitrate where the seconds are — music and dialogue — and leave the effects alone.

What the Ogg container gives you that a raw stream does not

Ogg divides the stream into pages, each carrying a position marker, which is what makes seeking possible without reading the file from the beginning and what lets a player report an accurate duration before playback starts. It also carries a block of named text fields, so a file can describe itself.

For an asset pipeline the position markers are the part that matters. Anything that scrubs, jumps to a cue point, or reports progress needs them, and a bare compressed stream cannot provide them. It is a small amount of structure that removes a whole class of problems.

The one conversion on this site that downloads no encoder

Opus is in every browser already, because every browser needed it for WebRTC voice calls. There is no extension package to fetch and no WebAssembly build involved — the encoder is native code that shipped with the browser, which makes this pair both fast and unusually light.

Compare that with MP3, which no browser can encode at all and which requires a WebAssembly LAME build to be downloaded first. The practical effect is that a folder of two hundred sound effects starts converting immediately here, with nothing fetched and nothing uploaded.

Naming, since the WAV brings no metadata with it

An Ogg file can carry named text fields — title, artist, or a key you invent for your own tooling. The problem is the source: WAV metadata is an optional chunk that most recorders, editors and export dialogues never write, so there is generally nothing to copy across.

Which means filenames remain the identifier, as they were before. That is normally fine for a pipeline, where assets are addressed by path rather than by tag, and it is worth knowing so that nobody spends an hour looking for the tag data the conversion supposedly lost.

Two hundred effects, one drop, no upload

The batch limit is a hundred files per drop and 100 MB per file, and each converts separately before the set comes back as a ZIP. Sound effects are small enough that both ceilings are irrelevant; a WAV long enough to hit 100 MB is nearly ten minutes of stereo.

Because nothing is transmitted, a large batch costs no bandwidth and joins no queue, which for game audio matters more than it sounds. Asset folders are re-exported constantly, and a conversion step that requires uploading a hundred files every time is a step people quietly stop performing.

How to convert a WAV into an OGG asset

  1. Drop your WAV files onto this page, or click to choose them.
  2. Pick a quality band; the audio is encoded to Opus and packaged as Ogg in your browser.
  3. Download the OGG, or take the whole asset folder as a ZIP.

WAV against OGG: an asset format built for shipping

WAV compared with OGG
WAVOGG
Full nameWaveform AudioOgg Audio
File extension.wav, .wave.ogg, .oga
Media typeaudio/wavaudio/ogg
CompressionUncompressedLossy — file size is bought with quality
First published19912000
Published byMicrosoftXiph.Org
SpecificationRIFF WAVERFC 3533
LicensingPublished, not standardisedOpen standard
Standing todayCurrentCurrent
Bit depth32
Audio channelsup to 65,535
Opens in a browserEvery browserCurrent browsers
Considered insteadFLAC, AIFFMP3, AAC, OPUS

What survives

document properties can cross over — both WAV and OGG have somewhere to store it.

Opening the result

Current browsers read OGG; older ones do not. It is the less portable of the two, so it is worth being sure the program at the other end accepts it before sending one.

OGG is a container rather than a single format. What actually plays is the codec inside it — usually Vorbis, Opus and FLAC — which is why two files with the same extension can behave differently on the same device.

Audacity reads both WAV and OGG, so there is a way to check the result against the original without a second tool.

What each format is for

The two are aimed at different work: WAV at editing and archiving, OGG at the web and handing a finished file over. That is worth weighing before converting, because the reason one exists is usually the reason the other is awkward.

WAV is Microsoft's format, published in 1991. It records 32 bits per channel.

OGG comes from Xiph.Org and dates from 2000, specified as RFC 3533. Audacity, VLC and foobar2000 all read it.

WAV to OGG: what a pipeline needs to know

Does this produce Vorbis or Opus inside the Ogg file?

Opus. Ogg is a container and has carried several codecs over its life; the file written here holds an Opus stream. That matters if your target is an older engine or library that implements Vorbis and nothing else, so it is worth loading one converted file into the real project before converting a whole asset folder.

Will a game engine accept it?

Current ones generally will — Opus in Ogg is widely supported and has been for years. Older engines, older middleware and hand-rolled loaders written against a Vorbis decoder are the exceptions. There is no way to answer this from the outside: test one file in the actual build target rather than trusting a support table.

How much smaller than the WAV is it?

Dramatically. A minute of CD-quality WAV is about 10 MB; the same minute as Opus at 128 kbps is under 1 MB, and dialogue at 48 kbps is closer to 350 KB. For a project shipping hundreds of clips, that is usually the difference between a download people accept and one they abandon.

Will my seamless loop still loop?

It depends on the player, not the file. The Ogg Opus header records the encoder’s pre-skip so a decoder that honours it begins at the right sample; a decoder that ignores it prefixes a few milliseconds of silence, which is audible as a tick at the loop point. Test a looping asset specifically — it is the one case where the encode itself can be fine and the result still wrong.

Can the Ogg file hold a name or a loop marker?

It can hold arbitrary named text fields, so a name, a version or a custom key of your own is possible. Your WAV almost certainly has none to bring across, since WAV metadata is an optional chunk most tools never write, and no custom marker survives a conversion between two formats that describe them differently.

Is anything uploaded?

No, and this pair downloads nothing extra either. Every browser already ships an Opus encoder — it is what WebRTC uses for voice — so the conversion runs on code that is already there, inside the tab, with the audio never transmitted.

More about these formats