SlideShare a Scribd company logo
Live HTTP Streaming of Video and
Subtitles within a Browser
Cyril Concolato
Jean Le Feuvre
{concolato, lefeuvre} @ telecom-paristech.fr
MMSys 2013
Context
1
■ Video Streaming is popular on the Web
• With subtitle support in VOD
• With live streaming solutions (DASH, HLS, …)
■ What about live subtitles ?
• Several specifications being developed
− ISOBMFF Amendment on Timed Text and Timed
Overlays, for use with DASH
− WebVTT draft (used in HLS v10)
• No deployment yet within browsers
■ Can we today stream and play live video+subtitles
within a browser?
• Yes !
• Development of a Proof-of-Concept
Live HTTP Streaming of Video and Subtitles within a Browser
- MMSys Demo 2013
Architecture
3
Live HTTP Streaming of Video and Subtitles within a Browser
- MMSys Demo 2013
Demonstration Media Formats
■ The ISO Base Media File Format
• To carry video stream segments
• Conformant to MPEG DASH and Google Chrome restrictions
■ The WebVTT format
• To carry subtitle data
− as separate text files (not multiplexed in the video container)
− Similar to HLS v10, with some differences (no embedded
video timing)
• Generation of non-overlapping, constant duration segments
(compatible with MPEG DASH)
■ MPEG DASH MPD
• To represent a dynamic live/long-running streaming service
• To enable synchronization of the video and subtitle streams.
4
Live HTTP Streaming of Video and Subtitles within a Browser
- MMSys Demo 2013
Demonstration software components
■ GPAC MP4Box
• To produce video segments on-the-fly and delete old
ones
− From a pre-recorded file (looped indefinitely)
■ VTTLiveGenerator
• Ad-hoc tool
• To produce subtitle segments on-the-fly, synchronized
with the video and delete old ones
■ Google Chrome
• Canary version
• To display the content using HTML5 and JavaScript
5
Live HTTP Streaming of Video and Subtitles within a Browser
- MMSys Demo 2013
Usage of MP4Box
■ Fragmenting a file repeatedly using -dash-ctx option
MP4Box.exe -dash-live 2000 -rap
-dash-ctx dash-live.txt
-segment-name counter-live
counter.mp4
■ Example of MP4Box’s DASH context
[DASH]
InitializationSegment=counter_liveinit.mp4
BitstreamSwitching=yes
InitializationSegmentSize=860
MaxSegmentDuration=1.000000
NextSegmentIndex=11
NextFragmentIndex=11
PeriodDuration=9.960000
[TrackID_1]
NextDecodingTime=249000
6
Live HTTP Streaming of Video and Subtitles within a Browser
- MMSys Demo 2013
Example of Video Content
7
Live HTTP Streaming of Video and Subtitles within a Browser
- MMSys Demo 2013
Example of WebVTT Segment
■ Each segment is a complete WebVTT file with multiple
cues,
• changing header, cue indices, and timing values
WEBVTT Segment 6
61
00:00:12.200 --> 00:00:12.400
This is cue 61 (start: 00:00:12.200 -- end:
00:00:12.400)
...
70
00:00:14.000 --> 00:00:14.200
This is cue 70 (start: 00:00:14.000 -- end:
00:00:14.200)
8
Live HTTP Streaming of Video and Subtitles within a Browser
- MMSys Demo 2013
Example of DASH Description
■ Use of a “dynamic” MPD
• No minUpdate attribute
• Without updates (assuming known/static timing)
■ A single period with 2 adaptation sets
• 1 video representation
• 1 subtitle representation
• Same video and subtitle segments duration (easy)
■ live-vtt-mp4.mpd
9
Live HTTP Streaming of Video and Subtitles within a Browser
- MMSys Demo 2013
Rendering using Google Chrome Canary
■ HTML page
• Use of HTML5 <video> element with an HTML
<track> element for playback synchronization
• Use of JavaScript code to control the download logic
■ JavaScript algorithm
• Fetch and parse the MPD,
• Create the <video> and <track> elements,
• Determine and fetch the video and subtitles segments
using the XMLHttpRequest API,
• Feed the video segments to the media decoder engine
using the Media Source extension API,
• Load each subtitle segment using an HTML5 work-
around
10
Live HTTP Streaming of Video and Subtitles within a Browser
- MMSys Demo 2013
Demo
11
Live HTTP Streaming of Video and Subtitles within a Browser
- MMSys Demo 2013
Discussion/Limitations
■ Working demo
• Supports time shifting or not
• Needs better integration of video & subtitle MPDs at server side
• Needs at client side:
− Better MPD parsing
− Better simple segment index algorithm
■ Issues
• Rendering performance problem if more than 4 cues per second
• User Interface problem
− Unusable built-in UI for long-running live events
− Needs custom UI to disable seeking before the first
received data
• HTML 5 limitations to load cues
− No MSE equivalent for cues (outside of VTT in MP4)
− No easy method to parse cues
12
Live HTTP Streaming of Video and Subtitles within a Browser
- MMSys Demo 2013
Questions ?
Come and see me

More Related Content

PDF
Streaming of SVG animations on the Web
Cyril Concolato
 
PPTX
Live streaming of video and subtitles with MPEG-DASH
Cyril Concolato
 
PPTX
Comments on carriage of timed text and visual overlays in MP4
Cyril Concolato
 
PPT
Latest Developments of Scalable Vector Graphics (SVG) 2, With a Focus on Stre...
Förderverein Technische Fakultät
 
PDF
ConférenSquad #4 - Hulu et DASH par Baptiste Coudurier
Justindwah
 
PDF
リニア放送型動画サービスの 
Web フロントエンド
Yusuke Goto
 
PDF
Paris Video Tech - 1st Edition: Afrostream, un player agile  pour suivre le m...
Erica Beavers
 
PPTX
Paris Video Tech - 1st Edition: Streamroot, Adaptive Bitrate Algorithms: comm...
Erica Beavers
 
Streaming of SVG animations on the Web
Cyril Concolato
 
Live streaming of video and subtitles with MPEG-DASH
Cyril Concolato
 
Comments on carriage of timed text and visual overlays in MP4
Cyril Concolato
 
Latest Developments of Scalable Vector Graphics (SVG) 2, With a Focus on Stre...
Förderverein Technische Fakultät
 
ConférenSquad #4 - Hulu et DASH par Baptiste Coudurier
Justindwah
 
リニア放送型動画サービスの 
Web フロントエンド
Yusuke Goto
 
Paris Video Tech - 1st Edition: Afrostream, un player agile  pour suivre le m...
Erica Beavers
 
Paris Video Tech - 1st Edition: Streamroot, Adaptive Bitrate Algorithms: comm...
Erica Beavers
 

What's hot (20)

ODP
Leases and-caching final
Gluster.org
 
PDF
ivisa retreat-2019
chavoosh
 
PDF
Tuning the Kernel for Varnish Cache
Per Buer
 
PDF
02 vng thanhnt-speedup_ntvv2_by_ph_pextmodule_
Nguyen Duc Phu
 
ODP
Accelerate your web app with a layer of Varnish
Jeremy Cook
 
PDF
HTTP/2 turns 3 years old // Web Performance Meetup wao.io 20180612
Avenga Germany GmbH
 
PDF
Include os @ flossuk 2018
Per Buer
 
PDF
CephFS Update
Ceph Community
 
PPTX
Varnish extend
Varnish Software
 
PDF
Varnish Cache 4.0 / Redpill Linpro breakfast in Oslo
Per Buer
 
PDF
KVM Tuning @ eBay
Xu Jiang
 
ODP
Lisa 2015-gluster fs-hands-on
Gluster.org
 
PDF
Cache hcm-topdev
Thanh Chau
 
ODP
Software defined storage
Gluster.org
 
PDF
2021.02 new in Ceph Pacific Dashboard
Ceph Community
 
PPTX
Streaming in HTML5
Nemanja Krivokapic
 
PPTX
Introducing Container Technology to TSUBAME3.0 Supercomputer
Akihiro Nomura
 
ODP
Disk Performance Comparison Xen v.s. KVM
nknytk
 
PDF
Ceph Month 2021: RADOS Update
Ceph Community
 
PDF
HTTP/2 and QUICK protocols. Optimizing the Web stack for HTTP/2 era
peychevi
 
Leases and-caching final
Gluster.org
 
ivisa retreat-2019
chavoosh
 
Tuning the Kernel for Varnish Cache
Per Buer
 
02 vng thanhnt-speedup_ntvv2_by_ph_pextmodule_
Nguyen Duc Phu
 
Accelerate your web app with a layer of Varnish
Jeremy Cook
 
HTTP/2 turns 3 years old // Web Performance Meetup wao.io 20180612
Avenga Germany GmbH
 
Include os @ flossuk 2018
Per Buer
 
CephFS Update
Ceph Community
 
Varnish extend
Varnish Software
 
Varnish Cache 4.0 / Redpill Linpro breakfast in Oslo
Per Buer
 
KVM Tuning @ eBay
Xu Jiang
 
Lisa 2015-gluster fs-hands-on
Gluster.org
 
Cache hcm-topdev
Thanh Chau
 
Software defined storage
Gluster.org
 
2021.02 new in Ceph Pacific Dashboard
Ceph Community
 
Streaming in HTML5
Nemanja Krivokapic
 
Introducing Container Technology to TSUBAME3.0 Supercomputer
Akihiro Nomura
 
Disk Performance Comparison Xen v.s. KVM
nknytk
 
Ceph Month 2021: RADOS Update
Ceph Community
 
HTTP/2 and QUICK protocols. Optimizing the Web stack for HTTP/2 era
peychevi
 

Similar to Mm sys 2013-demo (20)

PPTX
Streaming video to html
jeff tapper
 
PPT
HTML5 video & Amazon elastic transcoder - FCIP August 2014
RZasadzinski
 
PPTX
Multimedia Streaming Architecture
Olaf Reitmaier Veracierta
 
PDF
Serverless Media Workflow
MooYeol Lee
 
PDF
Silverlight Wireshark Analysis
Yoss Cohen
 
PPTX
IBC Content Everywhere Hub Presentation: HTML5 And Fastest Encoding
Bitmovin Inc
 
PPTX
Video Killed My Data Plan: Helsinki
Doug Sillars
 
PDF
Html5video
benwilkins
 
PPTX
Html 5
Nguyen Quang
 
PPTX
T3fest video
Doug Sillars
 
PPTX
NodeJS Edinburgh Video Killed My Data Plan
Doug Sillars
 
PPTX
Frontcon video
Doug Sillars
 
PDF
Wwx2014 - Todd Kulick "Shipping One Million Lines of Haxe to (Over) One Milli...
antopensource
 
PDF
Building video application on windows 8 with Windows Azure Media Services
Mingfei Yan
 
PPT
HTML5 Presentation
vs4vijay
 
PPTX
Media Source Extensions
FITC
 
PDF
ReproNow—Save Time Reproducing and Triaging Security Bugs
Priyanka Aash
 
PDF
Adobe HTTP Streaming
Yoss Cohen
 
PPTX
Video performance glasgow
Doug Sillars
 
Streaming video to html
jeff tapper
 
HTML5 video & Amazon elastic transcoder - FCIP August 2014
RZasadzinski
 
Multimedia Streaming Architecture
Olaf Reitmaier Veracierta
 
Serverless Media Workflow
MooYeol Lee
 
Silverlight Wireshark Analysis
Yoss Cohen
 
IBC Content Everywhere Hub Presentation: HTML5 And Fastest Encoding
Bitmovin Inc
 
Video Killed My Data Plan: Helsinki
Doug Sillars
 
Html5video
benwilkins
 
Html 5
Nguyen Quang
 
T3fest video
Doug Sillars
 
NodeJS Edinburgh Video Killed My Data Plan
Doug Sillars
 
Frontcon video
Doug Sillars
 
Wwx2014 - Todd Kulick "Shipping One Million Lines of Haxe to (Over) One Milli...
antopensource
 
Building video application on windows 8 with Windows Azure Media Services
Mingfei Yan
 
HTML5 Presentation
vs4vijay
 
Media Source Extensions
FITC
 
ReproNow—Save Time Reproducing and Triaging Security Bugs
Priyanka Aash
 
Adobe HTTP Streaming
Yoss Cohen
 
Video performance glasgow
Doug Sillars
 

More from Cyril Concolato (11)

PDF
Tutoriel sur le streaming vidéo sur HTTP et sur MPEG-DASH
Cyril Concolato
 
PPTX
Delivery of Timeline for External Data in MPEG-2 Transport Stream
Cyril Concolato
 
PPT
GPAC Team Research Highlights
Cyril Concolato
 
PPTX
Extensions for Hybrid Delivery using MPEG-2 TS and DASH
Cyril Concolato
 
PPTX
Carriage of timed subtitles and graphics in MP4
Cyril Concolato
 
PPT
MPEG-4 BIFS Overview
Cyril Concolato
 
PPTX
MPEG-4 BIFS and MPEG-2 TS: Latest developments for digital radio services
Cyril Concolato
 
PPTX
Usages of DASH for Rich Media Services
Cyril Concolato
 
PPTX
Adaptive Video and Metadata Display using Multimedia Documents
Cyril Concolato
 
PPTX
Usages of DASH for Rich Media Services
Cyril Concolato
 
PPTX
Electronic Program Guides using SVG
Cyril Concolato
 
Tutoriel sur le streaming vidéo sur HTTP et sur MPEG-DASH
Cyril Concolato
 
Delivery of Timeline for External Data in MPEG-2 Transport Stream
Cyril Concolato
 
GPAC Team Research Highlights
Cyril Concolato
 
Extensions for Hybrid Delivery using MPEG-2 TS and DASH
Cyril Concolato
 
Carriage of timed subtitles and graphics in MP4
Cyril Concolato
 
MPEG-4 BIFS Overview
Cyril Concolato
 
MPEG-4 BIFS and MPEG-2 TS: Latest developments for digital radio services
Cyril Concolato
 
Usages of DASH for Rich Media Services
Cyril Concolato
 
Adaptive Video and Metadata Display using Multimedia Documents
Cyril Concolato
 
Usages of DASH for Rich Media Services
Cyril Concolato
 
Electronic Program Guides using SVG
Cyril Concolato
 

Recently uploaded (20)

PDF
Make GenAI investments go further with the Dell AI Factory
Principled Technologies
 
PDF
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
PDF
Using Anchore and DefectDojo to Stand Up Your DevSecOps Function
Anchore
 
PPTX
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 
PDF
Unlocking the Future- AI Agents Meet Oracle Database 23ai - AIOUG Yatra 2025.pdf
Sandesh Rao
 
PDF
Brief History of Internet - Early Days of Internet
sutharharshit158
 
PDF
Event Presentation Google Cloud Next Extended 2025
minhtrietgect
 
PDF
BLW VOCATIONAL TRAINING SUMMER INTERNSHIP REPORT
codernjn73
 
PDF
Advances in Ultra High Voltage (UHV) Transmission and Distribution Systems.pdf
Nabajyoti Banik
 
PDF
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
PDF
Doc9.....................................
SofiaCollazos
 
PPTX
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 
PDF
How-Cloud-Computing-Impacts-Businesses-in-2025-and-Beyond.pdf
Artjoker Software Development Company
 
PDF
How Open Source Changed My Career by abdelrahman ismail
a0m0rajab1
 
PDF
Automating ArcGIS Content Discovery with FME: A Real World Use Case
Safe Software
 
PDF
Software Development Methodologies in 2025
KodekX
 
PDF
Responsible AI and AI Ethics - By Sylvester Ebhonu
Sylvester Ebhonu
 
PPTX
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
PDF
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 
PDF
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
Make GenAI investments go further with the Dell AI Factory
Principled Technologies
 
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
Using Anchore and DefectDojo to Stand Up Your DevSecOps Function
Anchore
 
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 
Unlocking the Future- AI Agents Meet Oracle Database 23ai - AIOUG Yatra 2025.pdf
Sandesh Rao
 
Brief History of Internet - Early Days of Internet
sutharharshit158
 
Event Presentation Google Cloud Next Extended 2025
minhtrietgect
 
BLW VOCATIONAL TRAINING SUMMER INTERNSHIP REPORT
codernjn73
 
Advances in Ultra High Voltage (UHV) Transmission and Distribution Systems.pdf
Nabajyoti Banik
 
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
Doc9.....................................
SofiaCollazos
 
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 
How-Cloud-Computing-Impacts-Businesses-in-2025-and-Beyond.pdf
Artjoker Software Development Company
 
How Open Source Changed My Career by abdelrahman ismail
a0m0rajab1
 
Automating ArcGIS Content Discovery with FME: A Real World Use Case
Safe Software
 
Software Development Methodologies in 2025
KodekX
 
Responsible AI and AI Ethics - By Sylvester Ebhonu
Sylvester Ebhonu
 
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 

Mm sys 2013-demo

  • 1. Live HTTP Streaming of Video and Subtitles within a Browser Cyril Concolato Jean Le Feuvre {concolato, lefeuvre} @ telecom-paristech.fr MMSys 2013
  • 2. Context 1 ■ Video Streaming is popular on the Web • With subtitle support in VOD • With live streaming solutions (DASH, HLS, …) ■ What about live subtitles ? • Several specifications being developed − ISOBMFF Amendment on Timed Text and Timed Overlays, for use with DASH − WebVTT draft (used in HLS v10) • No deployment yet within browsers ■ Can we today stream and play live video+subtitles within a browser? • Yes ! • Development of a Proof-of-Concept Live HTTP Streaming of Video and Subtitles within a Browser - MMSys Demo 2013
  • 3. Architecture 3 Live HTTP Streaming of Video and Subtitles within a Browser - MMSys Demo 2013
  • 4. Demonstration Media Formats ■ The ISO Base Media File Format • To carry video stream segments • Conformant to MPEG DASH and Google Chrome restrictions ■ The WebVTT format • To carry subtitle data − as separate text files (not multiplexed in the video container) − Similar to HLS v10, with some differences (no embedded video timing) • Generation of non-overlapping, constant duration segments (compatible with MPEG DASH) ■ MPEG DASH MPD • To represent a dynamic live/long-running streaming service • To enable synchronization of the video and subtitle streams. 4 Live HTTP Streaming of Video and Subtitles within a Browser - MMSys Demo 2013
  • 5. Demonstration software components ■ GPAC MP4Box • To produce video segments on-the-fly and delete old ones − From a pre-recorded file (looped indefinitely) ■ VTTLiveGenerator • Ad-hoc tool • To produce subtitle segments on-the-fly, synchronized with the video and delete old ones ■ Google Chrome • Canary version • To display the content using HTML5 and JavaScript 5 Live HTTP Streaming of Video and Subtitles within a Browser - MMSys Demo 2013
  • 6. Usage of MP4Box ■ Fragmenting a file repeatedly using -dash-ctx option MP4Box.exe -dash-live 2000 -rap -dash-ctx dash-live.txt -segment-name counter-live counter.mp4 ■ Example of MP4Box’s DASH context [DASH] InitializationSegment=counter_liveinit.mp4 BitstreamSwitching=yes InitializationSegmentSize=860 MaxSegmentDuration=1.000000 NextSegmentIndex=11 NextFragmentIndex=11 PeriodDuration=9.960000 [TrackID_1] NextDecodingTime=249000 6 Live HTTP Streaming of Video and Subtitles within a Browser - MMSys Demo 2013
  • 7. Example of Video Content 7 Live HTTP Streaming of Video and Subtitles within a Browser - MMSys Demo 2013
  • 8. Example of WebVTT Segment ■ Each segment is a complete WebVTT file with multiple cues, • changing header, cue indices, and timing values WEBVTT Segment 6 61 00:00:12.200 --> 00:00:12.400 This is cue 61 (start: 00:00:12.200 -- end: 00:00:12.400) ... 70 00:00:14.000 --> 00:00:14.200 This is cue 70 (start: 00:00:14.000 -- end: 00:00:14.200) 8 Live HTTP Streaming of Video and Subtitles within a Browser - MMSys Demo 2013
  • 9. Example of DASH Description ■ Use of a “dynamic” MPD • No minUpdate attribute • Without updates (assuming known/static timing) ■ A single period with 2 adaptation sets • 1 video representation • 1 subtitle representation • Same video and subtitle segments duration (easy) ■ live-vtt-mp4.mpd 9 Live HTTP Streaming of Video and Subtitles within a Browser - MMSys Demo 2013
  • 10. Rendering using Google Chrome Canary ■ HTML page • Use of HTML5 <video> element with an HTML <track> element for playback synchronization • Use of JavaScript code to control the download logic ■ JavaScript algorithm • Fetch and parse the MPD, • Create the <video> and <track> elements, • Determine and fetch the video and subtitles segments using the XMLHttpRequest API, • Feed the video segments to the media decoder engine using the Media Source extension API, • Load each subtitle segment using an HTML5 work- around 10 Live HTTP Streaming of Video and Subtitles within a Browser - MMSys Demo 2013
  • 11. Demo 11 Live HTTP Streaming of Video and Subtitles within a Browser - MMSys Demo 2013
  • 12. Discussion/Limitations ■ Working demo • Supports time shifting or not • Needs better integration of video & subtitle MPDs at server side • Needs at client side: − Better MPD parsing − Better simple segment index algorithm ■ Issues • Rendering performance problem if more than 4 cues per second • User Interface problem − Unusable built-in UI for long-running live events − Needs custom UI to disable seeking before the first received data • HTML 5 limitations to load cues − No MSE equivalent for cues (outside of VTT in MP4) − No easy method to parse cues 12 Live HTTP Streaming of Video and Subtitles within a Browser - MMSys Demo 2013