Apple http adaptive media streaming

Luca Rocchi lr1313 at gmail.com
Thu Oct 28 00:44:37 BST 2010


As all of you knows, Apple is offering his own http based media adaptive
streaming architecture,
based on apache on server side they claims
better than rtsp because of firewalls
better than FlashMediaServer that is proprietary and expensive and so on...

being adaptive streaming ,client-side player can both seek position
and change the stream to be played depends on available bandwidth.
see https://developer.apple.com/resources/http-streaming/ for details.


So on the server side there is a m3u playlist in Utf-8 , m3u8
see http://tools.ietf.org/html/draft-pantos-http-live-streaming-04 for draft

Of course on iPhone,iPad,iPod QuickTime player streams from such m3u8
playlist, further more to be admitted in the store,
apps have to be compliant at all, so there are a lot of streaming server on
the web that adhere to this standard.

i would really like very very much to be so wicked to implement a Qt player
for such streaming servers

As concrete test case here is a m3u8 :

#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=128000
compass_16_9xIpod6090910_ep_128k.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=56000
compass_16_9xIpod6090910_ep_56k.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=512000
compass_16_9xIpod6090910_ep_512k.m3u8

just a plain text recursive playlist ... lets see the first one

#EXTM3U
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:1
#EXTINF:10,
compass_16_9xIpod6090910_ep_128k-00001.ts
#EXTINF:10,
compass_16_9xIpod6090910_ep_128k-00002.ts
#EXTINF:10,
compass_16_9xIpod6090910_ep_128k-00003.ts
#EXTINF:10,
compass_16_9xIpod6090910_ep_128k-00004.ts
#EXT-X-ENDLIST

here we are , .ts are the effective data to be stream ...
At first it looks hesoteric to me ,never heard about .ts...
in the case you are still reading here is a wikipage about Transport
Stream
http://en.wikipedia.org/wiki/MPEG_transport_stream

that is, in very simple words, packetized transport of h264 (in my case)
chunks encoded as MPEG-2

Let's see what can be done from Qt ...
1) m3u8 manager class to get from http uri , parse and build object model
...  trivial
2) QTMobility Bearer based class to receive async signals about roaming so
we can react to bandwidth changes on the fly ...trivial
3) .ts manager class to rebuild the  MPEG-2 stream as needed ... not
trivial
4) QIODevice derived class for MPEG-2 buffer  ...not trivial
5) Phonon MediaObject that use the device as MediaSource  ...trivial, i
suppose

Please let me know your thought about , maybe you are already working on
this ,i would like to partecipate in some way
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-multimedia/attachments/20101028/9519a968/attachment.htm>
-------------- next part --------------
_______________________________________________
kde-multimedia mailing list
kde-multimedia at kde.org
https://mail.kde.org/mailman/listinfo/kde-multimedia


More information about the kde-multimedia mailing list