[speex-dev] Speex, what container?

Christian Buchner Christian.Buchner1 at epost.de
Thu Mar 4 08:09:16 PST 2004

> But using the ACM codec I just need to put the speex content into the wave file data chunk and then
> windows will play it?

Typically it is the application like for example Windows Sound Recorder that creates the AVI/WAVE file
and writes it to disk. After installing the ACM you can simply start recording with any application that
supports recording to WAVE files.  Windows Sound Recorder, GoldWave come to my mind.

The packaging of speex frames into the data chunk is not trivial. It slightly more complicated than concatenating
individual speex audio frames. For efficiency, I grouped several audio frames into blocks. Depending on the
speex mode, these groups have different sizes. This minimizes bit padding loss. Also to be compatible with the
ACM you need to create a WAVEFORMATEX header that is exactly like in my ACM.

I recommend against using the Speex API to create wave files that try to be playable with the ACM.
Way too mouch trouble.

Of course you could write a program that talks directly to the ACM and then create the WAVE file based
on the data returned by the ACM (for example using the AVIFile API provided by Windows). But that
 is quite complicated. Definitely more troublesome than if you just used using the native speex API and the
suggested ogg container format (see speexenc.c)


<p>--- >8 ----
List archives:  http://www.xiph.org/archives/
Ogg project homepage: http://www.xiph.org/ogg/
To unsubscribe from this list, send a message to 'speex-dev-request at xiph.org'
containing only the word 'unsubscribe' in the body.  No subject is needed.
Unsubscribe messages sent to the list will be ignored/filtered.

More information about the Speex-dev mailing list