The problem of having multiple Content-Range headers in HTTP response

Dear all,

There has been a bit of (private) discussion between Silvia, Yves, Davy 
and myself, but it should actually be discussed here so I'm bringing the 
discussion on this mailing list.

Context: The following media fragment has been made up: 
http://example.com/video.ogv#t=25,100&track='audio', i.e. I want to 
retrieve only the 'audio' track of the media resource 'video.ogv' 
between the temporal interval [25s, 100s]. Further, I have as assumption 
that the UA cannot do the mapping between this fragment and a byte 
ranges by itself so it needs some server help (see also section 5.2.2 [1]).

The request might be something like:
   GET /video.ogv HTTP/1.1
   Host: www.example.com
   Accept: video/*
   Range: t:npt=25-100&track='audio'

While we thought the answer could be:
   HTTP/1.1 206 Partial Content
   Accept-Ranges: bytes, t, track
   Content-Length: 3743
   Content-Type: video/ogg
   Content-Range: bytes 19147-22880/35614993
   Content-Range: t:npt 24.85-100.34/653.791
   Content-Range: track audio/653.791
   { binary data }

Problem: according to some preliminary investigations from Yves, we 
cannot have multiple Content-Range in a response :-( Which means that 
the example described in the spec at [1] is *wrong*. We MUST correct it 
at the F2F meeting.

As alternatives, Yves proposed this:
   Content-Range : bytes 19147-22880/35614993
   Content-Range-Equivalent: { {t:npt 24.85-100.34/653.791} {track 
audio/653.791} }
with the introduction of a new header Content-Range-Equivalent.

Which is more or less similar to Conrad's proposal:
   Content-Range : bytes 19147-22880/35614993
   Fragment: { {t:npt 24.85-100.34/653.791} {track audio/653.791} }
with the introduction of the header Fragment.

But another possibility is to use:
   Content-type: multipart/byteranges; boundary=THIS_STRING_SEPARATES
... and write the multiple byte ranges
Q: can they overlap?

Another problem is how should we express that when 2 tracks have been 
requested?

So a lots of things to discuss at F2F ... but we can start from now on 
by emails ...

   Raphaël

[1] 
http://www.w3.org/2008/WebVideo/Fragments/WD-media-fragments-spec/#processing-protocol-Server-mapped

-- 
Raphaël Troncy
EURECOM, Multimedia Communications Department
2229, route des Crêtes, 06560 Sophia Antipolis, France.
e-mail: raphael.troncy@eurecom.fr & raphael.troncy@gmail.com
Tel: +33 (0)4 - 9300 8242
Fax: +33 (0)4 - 9000 8200
Web: http://www.eurecom.fr/~troncy/

Received on Wednesday, 3 March 2010 12:49:26 UTC