[Vorbis] can I inject metadata on every frame ?

Ralph Giles giles at xiph.org
Sun Jun 1 14:46:03 PDT 2008


On 1-Jun-08, at 11:31 AM, alex wrote:

> On title, send always actual Frequency of receiver, so if this
> change, clients can view the changes. This updates on metadata must  
> be refreshed too much, on every second of stream will be acceptable.

If you're streaming to normal "internet radio" clients, what you're  
supposed to do is end the current stream and start a new encoding  
every time the metadata changes. It's done this way so the metadata  
can be found after a seek if the stream is stored. However, because  
the codec setup headers have to resent at the same time, there's a  
bitrate penalty, so this doesn't work well if your metadata is  
changing more than every 30 seconds or so.

> FAQ tells that there is some way of multiplexing data in the OGG  
> container, but I don't know if this multiplexing is done for every  
> frame.

So I was speaking above about the built-in vorbis metadata, which is  
"per stream segment" not per frame, etc. You can multiplex another,  
custom data stream with the vorbis data, with whatever time  
resolution you like. This is the best thing to do if it's a custom  
application, where you control both the server and the client. The  
problem is there's no standard for a separate 'metadata' stream, so  
most regular Ogg stream clients will just ignore the updates, and  
some hardware players won't play it at all.

FWIW,
  -r



More information about the Vorbis mailing list