Directshow Filters for Ogg Vorbis, Speex, Theora and FLAC

This is a temporary page until I get time to do a proper one. I really will get around to it someday soon ! I made a token effort to tidy it up !

Installation
  • Uninstall any previous version of these filters. Go to add remove programs, remove oggcodecs
  • Make sure media player or any directshow applications are closed.
  • Unzip the file to a temp directory then run setup.

  • Then media player or any other directshow application (ie BSPlayer) will be able to play Ogg Vorbis, Ogg Speex, Ogg Theora and Ogg FLAC.

    Other stuff
  • Also you can encode vorbis, speex, FLAC and theora files using graphedit(DirectX9 SDK) or other similar program.
  • See audio encoding example filter graphs
  • Theora encoding how-to
  • If you install ffdshow, you will be able to play ogm style *video only* files (ie OGM\DivX in one stream and non-OGM vorbis in the other).
  • Also, if you download, install and register Gabests .cda directshow source you can rip CD's using graphedit
  • Looking for old versions ?
  • Want the zipped source code (7 MB zipped, 70MB unzipped) ?
  • Want to browse the source on the web http://svn.xiph.org/trunk/oggdsf/

  • Current Version (0.60.7043) - 08/07/2004
    Quite a fair bit added this time, most notably an encoder for theora... see Encoding theora
    Only a few encoding parameters are currently exposed via a filter property page. Also modified the demuxer so it can handle http streams though there are some issues. The buffering is very simple, it doesn't optimise buffer based on bandwidth. Network steams are currently non-seekable. Also only non-chained files should be streamed. Most encoded files are not chained. However some icecast streams, Which are not continuous, have breaks where songs change, this type of stream will likely crash the media player. However continuous live streams... such as radio broadcasts etc generally work fine. The network streaming has only recently be added, so i expect it to still be fairly buggy.

    Windows XP
    853,647 bytes
    Windows 98/ME/NT/2000
    4,303,667 bytes

    Changes this version
  • Added CMML Decoder filter
  • Added a simple subtitle renderer based on VMR 9
  • Added an OO vorbis comment parsing library
  • Added an example tool called OOOggCommentDump which dumps comment information from the first stream in a file
  • Added container class library for CMML
  • Added minimal CMML parsing library based on MSXML
  • Added a demuxer filter for Annodex, will only play in graphedit currently, and needs to manually build graphs to include the VMR9 as video renderer, also won't play the mpeg coded videos that are on the annodex site.
  • Added network support for demuxer to stream .ogg files
  • Fixed the speex encoder (I think)
  • Ogg Mux filter now supports multiple stream muxing
  • Added a theora encode filter, with a minimal configurable property page
  • Theora encode filter supports YUY2 input (generally from mpeg) or YV12 (generally from avi codecs, in particular those decoded by ffdshow)
  • Fixed some bad implementation of frame offsets in the theora decoder
  • Now files can be added to the WMP9+ Media Library, however no media metadata is yet extracted from the vorbis comments. Nor can you currently use the rip or burn functionality.

  • Known issues.
  • Seeking very close to the end of speex or vorbis files, causes all audio to cease, requiring stop/play to resolve. Particularly noticable in small files, seems roughly 5 secs from end where this occurs.
  • There is no way to alter the audio encoding parameters, vorbis defaults to quality 0.3
  • Seeking in theora occasionally seg faults
  • Duration is wrong for all files except speex, vorbis and theora... doesn't affect playback
  • When transcoding theora, if a media decoder (WMV usually) doesn't advertise its framerate, output may be time distorted
  • Created files are not yet gauranteed to be correct. No produced encoded files should be distributed.
  • I think there may be a little memory leak in the encoders... nothing too serious, but if you try and encode really large files it may be a problem.
  • Theora will not playback with Windows Media Player 9 or 10, but vorbis and speex are just fine, but will in previous WMP's and other DS players like BSPlayer
  • Theora and annodex playback requires directX 9.
  • CMML decoding requires MSXML3.dll to be present. (it was installed with IE6)
  • DON'T try to stop a FLAC stream. It crashes. Running to the end is ok.
  • FLAC will make media player do the error sound or crash on exit
  • Only plays FLAC with 16 bit 2 channel 44100Hz settings. Still hardcoded.
  • Only plays Ogg encapsulated FLAC. Won't play normal FLAC files.
  • Muxer only does a single stream... won't interleave yet. This is fine for encoding speex and vorbis, or splitting theora+vorbis into component parts
  • Speex encoder is currently broken. Vorbis works but is buggy.
  • Seeking in speex and vorbis seeking is sometimes not as responsive as it previously was.
  • Some black bordering when frame size changes mid-stream