[vorbis-dev] Adaptive bitrate streaming
Robert Jessop
robertjessop at f2s.com
Wed Oct 22 13:52:30 PDT 2003
I've been reading the vorbis docs and source code hoping to be able to
contribute. I've found in mapping0.c that in bitrate managed mode each
packet is encoded at a range of qualities and then one is chosen and
written to the file. This explains VBR being so much faster than ABR.
Now what if, instead of choosing a packet, you just write them all to a
multiplexed ogg stream? Then your streaming server makes the decision of
which packet to send individually for each client.
It would allow full utilization of modem bitrates without the stream
cutting out when visiting a big web page. It would be a bit like Real
SureStream - but hopefully allow more densely packed bitrates and
smoother bitrate change.
Obviously there's a limit to the range you can get from one encoding
mode, but a range of 18-42kbps would be good for modem users. You could
also have multiple modes with slightly overlapping bandwidth ranges and
send the headers when it needs to switch mode.
A streaming server (e.g. Icecast) will need to know how to demux the
stream as well.
I think it would be pretty simple to add to the vorbis code, but I'm
having trouble finding the right place to start hacking (the comments to
code ratio ain't fantastic). I need to know:
1) Where do I need to change it to write out all possibilities instead
of choosing one>
2) What is the correct way to add a switch to the API front end to turn
it on or off?
3) Anyone want to help?
4) Am I crazy?
Robert Jessop
P.S. Before you say bitrate peeling: A) It probably won't sound as good.
B) It will probably be much more work to implement well.
--- >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 'vorbis-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 Vorbis-dev
mailing list