Historique du Streaming
2013
2010
Avant 2010
2016
Ultimatum de Google Chrome
Les étapes
Les ingrédients : HLS / DASH - MSE / EME
Le dressage : Player
La préparation : SDK Video
HLS - HTTP Live Streaming
HTTP Live Streaming
Streaming basé sur le HTTP
Fragmentation du flux en fichier Transport Stream (.m2ts)
Manifest (.m3u8)
Supporté nativement par Safari
Plugin Flash pour le desktop
Adaptive BitRate
Niveau de Protection :
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-FAXS-CM:MII6nQYJKoZIhvc......VbIUHxKH5Yex07/lc9tDTboVVG8gpQBqijNldduTt7qVYQ7XdxfX2/PvDYKFr08ZVQM5MZz+6jVfsXfgHMLpPm
#EXT-X-STREAM-INF:BANDWIDTH=2056000,RESOLUTION=960x540,CODECS="avc1.64001F,mp4a.40.2"
224_5.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=408313,RESOLUTION=400x224,CODECS="avc1.42C01E,mp4a.40.2"
224_6.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=828371,RESOLUTION=640x360,CODECS="avc1.42C01E,mp4a.40.2"
224_7.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=1328395,RESOLUTION=720x406,CODECS="avc1.42C01E,mp4a.40.2"
224_8.m3u8
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:6
#EXT-X-FAXS-CM:
#EXT-X-KEY:METHOD=AES-128,URI="faxs://faxs.adobe.com",IV=0x469ED9BADF0AF2D794154BBC69103C01
#EXT-X-MEDIA-SEQUENCE:533052
#EXTINF:6.000,
224_5_533052.ts?m=1466673026
#EXTINF:6.000,
224_5_533053.ts?m=1466673026
#EXTINF:6.000,
224_5_533054.ts?m=1466673026
#EXTINF:6.000,
224_5_533055.ts?m=1466673026
#EXTINF:6.000,
224_5_533056.ts?m=1466673026
#EXTINF:6.000,
224_5_533057.ts?m=1466673026
#EXTINF:6.000,
224_5_533058.ts?m=1466673026
#EXTINF:6.000,
224_5_533059.ts?m=1466673026
#EXTINF:6.000,
224_5_533060.ts?m=1466673026
DASH - Dynamic Adaptive Streaming over HTTP
DASH
Standard de format de diffusion audiovisuelle sur Internet basé sur la norme ISO/IEC 23009-1
Fragmentation du flux en MPEG-4, WebM, ou libre
Manifest Media Presentation Description (.mpd)
Non supporté < IE11 & IOS
<video />
Adaptive BitRate
Multi DRM via Common Encryption (CENC)
Advertising Insertion
<MPD xmlns="urn:mpeg:DASH:schema:MPD:2011" mediaPresentationDuration="PT0H3M1.63S" minBufferTime="PT1.5S" profiles="urn:mpeg:dash:profile:isoff-on-demand:2011"
type="static">
<Period duration="PT0H3M1.63S" start="PT0S">
<AdaptationSet>
<ContentComponent contentType="video" id="1" />
<Representation bandwidth="4190760" codecs="avc1.640028" height="1080" id="1" mimeType="video/mp4" width="1920">
<BaseURL>car-20120827-89.mp4</BaseURL>
<SegmentBase indexRange="674-1149">
<Initialization range="0-673" />
</SegmentBase>
</Representation>
<Representation bandwidth="2073921" codecs="avc1.4d401f" height="720" id="2" mimeType="video/mp4" width="1280">
<BaseURL>car-20120827-88.mp4</BaseURL>
<SegmentBase indexRange="708-1183">
<Initialization range="0-707" />
</SegmentBase>
</Representation>
<Representation bandwidth="869460" codecs="avc1.4d401e" height="480" id="3" mimeType="video/mp4" width="854">
<BaseURL>car-20120827-87.mp4</BaseURL>
<SegmentBase indexRange="708-1183">
<Initialization range="0-707" />
</SegmentBase>
</Representation>
<Representation bandwidth="686521" codecs="avc1.4d401e" height="360" id="4" mimeType="video/mp4" width="640">
<BaseURL>car-20120827-86.mp4</BaseURL>
<SegmentBase indexRange="708-1183">
<Initialization range="0-707" />
</SegmentBase>
</Representation>
<Representation bandwidth="264835" codecs="avc1.4d4015" height="240" id="5" mimeType="video/mp4" width="426">
<BaseURL>car-20120827-85.mp4</BaseURL>
<SegmentBase indexRange="672-1147">
<Initialization range="0-671" />
</SegmentBase>
</Representation>
<Representation bandwidth="100000" codecs="avc1.4d4015" height="144" id="5" mimeType="video/mp4" width="256">
<BaseURL>car-20120827-160.mp4</BaseURL>
<SegmentBase indexRange="671-1146">
<Initialization range="0-670" />
</SegmentBase>
</Representation>
</AdaptationSet>
<AdaptationSet>
<ContentComponent contentType="audio" id="2" />
<Representation bandwidth="127236" codecs="mp4a.40.2" id="6" mimeType="audio/mp4" numChannels="2" sampleRate="44100">
<BaseURL>car-20120827-8c.mp4</BaseURL>
<SegmentBase indexRange="592-851">
<Initialization range="0-591" />
</SegmentBase>
</Representation>
<Representation bandwidth="255236" codecs="mp4a.40.2" id="7" mimeType="audio/mp4" numChannels="2" sampleRate="44100">
<BaseURL>car-20120827-8d.mp4</BaseURL>
<SegmentBase indexRange="592-851">
<Initialization range="0-591" />
</SegmentBase>
</Representation>
<Representation bandwidth="31749" codecs="mp4a.40.5" id="8" mimeType="audio/mp4" numChannels="1" sampleRate="22050">
<BaseURL>car-20120827-8b.mp4</BaseURL>
<SegmentBase indexRange="592-851">
<Initialization range="0-591" />
</SegmentBase>
</Representation>
</AdaptationSet>
</Period>
</MPD>
MSE - Media Source Extension
MSE - Media Source Extension
Extension de l'interface HTMLMediaElement
utilisé par HTMLVideoElement et HTMLAudioElement
Permet à Javascript de faire du streaming audio ou video.
Can I use ?
EME - Encrypted Media Extensions
EME - Encrypted Media Extensions
Extension de MSE qui met en place un moyen de communication entre les navigateurs et leurs fournisseurs DRM
Environment |
Player Technology |
Media |
DRM |
---|---|---|---|
Chrome |
HTML5 MSE |
MPEG-DASH |
Widevine Modular |
Internet Explorer 11 Windows 8.1 |
HTML5 MSE |
MPEG-DASH |
PlayReady |
Internet Explorer (other) |
Flash, Silverlight |
MPEG-DASH |
ClearKey, PlayReady |
Edge |
HTML5 MSE, HTML5 HLS |
MPEG-DASH, HLS |
PlayReady, AES HLS |
Firefox |
HTML5 MSE |
MPEG-DASH |
Adobe, Widevine |
Safari |
HTML5 MSE, HTML5 HLS |
MPEG-DASH, HLS |
Fairplay, AES |
Android: Web > v4.1 |
HTML5 MSE, HTML5 HLS |
MPEG-DASH, HLS |
Widevine Modular |
iOS: web |
HTML5 HLS |
HLS |
AES |
Et laisser reposer ....
Les ingrédients : HLS / DASH - MSE / EME
Le dressage : Player
La préparation : SDK Video
Les étapes
Objectif Fin 2016
Objectif 2017
Des questions ?