SlideShare a Scribd company logo
1 of 12
m26906
Live Streaming of Video and Subtitles
            using DASH

                  Cyril Concolato
                  Jean Le Feuvre

    {concolato, lefeuvre} @ telecom-paristech.fr
Context

    ■ Need for live subtitles also on the Internet!
    ■ Multiple specification developments
       • MPEG DASH Amendment on Timed Text and Timed
         Overlays
       • W3C Media Source Extension API
       • WHATWG/W3C WebVTT
       • 3GPP Timed Text
    ■ Development of a Proof-of-Concept




1                       M26906 – Live Streaming of Video and Subtitles using DASH
Demonstration formats

    ■ The MP4 file format
       • To represent live video stream segments
    ■ The WebVTT subtitle format
       • To represent live subtitle segments as text files (similar
         to HLS v9)
    ■ MPEG DASH MPD
       • to represent a dynamic adaptive live/long-running
         streaming service
       • to enable synchronization of the video and subtitle
         streams.




2                                          test
Demonstration software components

    ■ GPAC MP4Box
      • To produce video segments on-the-fly and delete old
        ones
    ■ VTTLiveGenerator
      • Ad-hoc tool
      • To produce subtitle segments on-the-fly and delete old
        ones
    ■ Google Chrome
      • Canary version 24
      • To display the content




3                                       test
Usage of MP4Box
    ■ Fragmenting a file repeatedly using -dash-ctx option
       MP4Box.exe -dash-ctx dash-live.txt
                  -dash 2000 -rap
                  -segment-name counter-live
                  -url-template
                  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


4                                       test
Example of Video Content




5                          test
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)



6                                             test
MPD Example

    ■ Dynamic MPD
       • 1 single period
       • 2 adaptation sets (1 video, 1 subtitle)
          − ContentComponent@type=« text » for subtitles
       • No minUpdate attribute
       • Same video and subtitle segments duration (easy)
    ■ live-vtt-mp4.mpd




7                                      test
Rendering using Google Chrome Canary
    ■ HTML page with JavaScript code to:
       • Fetch and parse the MPD,
       • Create a HTML 5 <video> element to render the video
         and an HTML 5 <track> element to render the subtitles,
       • Fetch the video and subtitles segments using the
         XMLHttpRequest API (as demonstrated in DASH-JS),
       • Feed the video segments to the media decoder engine
         using the Media Source extension API (as
         demonstrated by YouTube MPEG DASH player),
       • Load each subtitle segment separately (using a work-
         around current HTML 5 limitations)
    ■ Synchronization is handled by the video element
       • Possible improvments: HTML5 timestampOffset and
         DASH @presentationTimeOffset and
         @suggestedPresentationDelay


8                                        test
Results




9             test
Problems/Limitations

     ■ Synchronization problems
        • Too many cues per seconds (Chrome performance?)
        • Some cues are not loaded correctly (Chrome bug?)
        • Need a work-around to load cues (HTML5 limitation)
           − No MSE equivalent for cues
           − No easy method to parse cues
     ■ Limitations
        •   Really only a proof of concept (ugly code)
        •   No real MPD parsing yet
        •   Very simple segment index algorithm
        •   No GUI for selecting subtitles



10                                          test
Questions ?

More Related Content

What's hot

Game Architecture and Programming
Game Architecture and ProgrammingGame Architecture and Programming
Game Architecture and ProgrammingSumit Jain
 
GameMaker:Studio and Windows
GameMaker:Studio and Windows GameMaker:Studio and Windows
GameMaker:Studio and Windows Lee Stott
 
ExoPlayer for Application developers
ExoPlayer for Application developersExoPlayer for Application developers
ExoPlayer for Application developersHassan Abid
 
Decoupling Compute from Memory, Storage and IO with OMI
Decoupling Compute from Memory, Storage and IO with OMIDecoupling Compute from Memory, Storage and IO with OMI
Decoupling Compute from Memory, Storage and IO with OMIAllan Cantle
 
Real-time CG animation in Unity: unpacking the Sherman project - Unite Copenh...
Real-time CG animation in Unity: unpacking the Sherman project - Unite Copenh...Real-time CG animation in Unity: unpacking the Sherman project - Unite Copenh...
Real-time CG animation in Unity: unpacking the Sherman project - Unite Copenh...Unity Technologies
 
Open Source Telegram Based Instant Messenger
Open Source Telegram Based Instant Messenger Open Source Telegram Based Instant Messenger
Open Source Telegram Based Instant Messenger Ujjwal Vishwakarma
 
[CB16] About the cyber grand challenge: the world’s first all-machine hacking...
[CB16] About the cyber grand challenge: the world’s first all-machine hacking...[CB16] About the cyber grand challenge: the world’s first all-machine hacking...
[CB16] About the cyber grand challenge: the world’s first all-machine hacking...CODE BLUE
 
Tegra 186のu-boot & Linux
Tegra 186のu-boot & LinuxTegra 186のu-boot & Linux
Tegra 186のu-boot & LinuxMr. Vengineer
 
Iain Richardson: An Introduction to Video Compression
Iain Richardson: An Introduction to Video CompressionIain Richardson: An Introduction to Video Compression
Iain Richardson: An Introduction to Video CompressionIain Richardson
 
Creativity and data driven design. Learnings from Archero case.
Creativity and data driven design. Learnings from Archero case.Creativity and data driven design. Learnings from Archero case.
Creativity and data driven design. Learnings from Archero case.GameCamp
 
How to make your Eclipse application HiDPI ready!
How to make your Eclipse application HiDPI ready!How to make your Eclipse application HiDPI ready!
How to make your Eclipse application HiDPI ready!Lakshmi Priya
 
Introducing the DSPGraph, the new audio rendering/mixing engine- Unite Copenh...
Introducing the DSPGraph, the new audio rendering/mixing engine- Unite Copenh...Introducing the DSPGraph, the new audio rendering/mixing engine- Unite Copenh...
Introducing the DSPGraph, the new audio rendering/mixing engine- Unite Copenh...Unity Technologies
 
Siggraph 2011: Occlusion culling in Alan Wake
Siggraph 2011: Occlusion culling in Alan WakeSiggraph 2011: Occlusion culling in Alan Wake
Siggraph 2011: Occlusion culling in Alan WakeUmbra
 
Understanding MPEG DASH
Understanding MPEG DASHUnderstanding MPEG DASH
Understanding MPEG DASHSeung-Bum Lee
 
HEVC Definitions and high-level syntax
HEVC Definitions and high-level syntaxHEVC Definitions and high-level syntax
HEVC Definitions and high-level syntaxYoss Cohen
 
Parallel Futures of a Game Engine (v2.0)
Parallel Futures of a Game Engine (v2.0)Parallel Futures of a Game Engine (v2.0)
Parallel Futures of a Game Engine (v2.0)Johan Andersson
 
An Overview of High Efficiency Video Codec HEVC (H.265)
An Overview of High Efficiency Video Codec HEVC (H.265)An Overview of High Efficiency Video Codec HEVC (H.265)
An Overview of High Efficiency Video Codec HEVC (H.265)Varun Ravi
 

What's hot (20)

Game Architecture and Programming
Game Architecture and ProgrammingGame Architecture and Programming
Game Architecture and Programming
 
GameMaker:Studio and Windows
GameMaker:Studio and Windows GameMaker:Studio and Windows
GameMaker:Studio and Windows
 
ExoPlayer for Application developers
ExoPlayer for Application developersExoPlayer for Application developers
ExoPlayer for Application developers
 
Decoupling Compute from Memory, Storage and IO with OMI
Decoupling Compute from Memory, Storage and IO with OMIDecoupling Compute from Memory, Storage and IO with OMI
Decoupling Compute from Memory, Storage and IO with OMI
 
Android Audio System
Android Audio SystemAndroid Audio System
Android Audio System
 
Real-time CG animation in Unity: unpacking the Sherman project - Unite Copenh...
Real-time CG animation in Unity: unpacking the Sherman project - Unite Copenh...Real-time CG animation in Unity: unpacking the Sherman project - Unite Copenh...
Real-time CG animation in Unity: unpacking the Sherman project - Unite Copenh...
 
VIDEO CODECS
VIDEO CODECSVIDEO CODECS
VIDEO CODECS
 
Open Source Telegram Based Instant Messenger
Open Source Telegram Based Instant Messenger Open Source Telegram Based Instant Messenger
Open Source Telegram Based Instant Messenger
 
[CB16] About the cyber grand challenge: the world’s first all-machine hacking...
[CB16] About the cyber grand challenge: the world’s first all-machine hacking...[CB16] About the cyber grand challenge: the world’s first all-machine hacking...
[CB16] About the cyber grand challenge: the world’s first all-machine hacking...
 
Tegra 186のu-boot & Linux
Tegra 186のu-boot & LinuxTegra 186のu-boot & Linux
Tegra 186のu-boot & Linux
 
Iain Richardson: An Introduction to Video Compression
Iain Richardson: An Introduction to Video CompressionIain Richardson: An Introduction to Video Compression
Iain Richardson: An Introduction to Video Compression
 
Creativity and data driven design. Learnings from Archero case.
Creativity and data driven design. Learnings from Archero case.Creativity and data driven design. Learnings from Archero case.
Creativity and data driven design. Learnings from Archero case.
 
How to make your Eclipse application HiDPI ready!
How to make your Eclipse application HiDPI ready!How to make your Eclipse application HiDPI ready!
How to make your Eclipse application HiDPI ready!
 
Introducing the DSPGraph, the new audio rendering/mixing engine- Unite Copenh...
Introducing the DSPGraph, the new audio rendering/mixing engine- Unite Copenh...Introducing the DSPGraph, the new audio rendering/mixing engine- Unite Copenh...
Introducing the DSPGraph, the new audio rendering/mixing engine- Unite Copenh...
 
Siggraph 2011: Occlusion culling in Alan Wake
Siggraph 2011: Occlusion culling in Alan WakeSiggraph 2011: Occlusion culling in Alan Wake
Siggraph 2011: Occlusion culling in Alan Wake
 
Understanding MPEG DASH
Understanding MPEG DASHUnderstanding MPEG DASH
Understanding MPEG DASH
 
Important adb commands
Important adb commandsImportant adb commands
Important adb commands
 
HEVC Definitions and high-level syntax
HEVC Definitions and high-level syntaxHEVC Definitions and high-level syntax
HEVC Definitions and high-level syntax
 
Parallel Futures of a Game Engine (v2.0)
Parallel Futures of a Game Engine (v2.0)Parallel Futures of a Game Engine (v2.0)
Parallel Futures of a Game Engine (v2.0)
 
An Overview of High Efficiency Video Codec HEVC (H.265)
An Overview of High Efficiency Video Codec HEVC (H.265)An Overview of High Efficiency Video Codec HEVC (H.265)
An Overview of High Efficiency Video Codec HEVC (H.265)
 

Viewers also liked

Using DASH and MPEG-2 TS
Using DASH and MPEG-2 TSUsing DASH and MPEG-2 TS
Using DASH and MPEG-2 TSAlex Giladi
 
Tutoriel sur le streaming vidéo sur HTTP et sur MPEG-DASH
Tutoriel sur le streaming vidéo sur HTTP et sur MPEG-DASHTutoriel sur le streaming vidéo sur HTTP et sur MPEG-DASH
Tutoriel sur le streaming vidéo sur HTTP et sur MPEG-DASHCyril Concolato
 
Extensions for Hybrid Delivery using MPEG-2 TS and DASH
Extensions for Hybrid Delivery using MPEG-2 TS and DASHExtensions for Hybrid Delivery using MPEG-2 TS and DASH
Extensions for Hybrid Delivery using MPEG-2 TS and DASHCyril Concolato
 
Building a Dash-264 Player
Building a Dash-264 PlayerBuilding a Dash-264 Player
Building a Dash-264 Playerjeff tapper
 
Streaming of SVG animations on the Web
Streaming of SVG animations on the WebStreaming of SVG animations on the Web
Streaming of SVG animations on the WebCyril Concolato
 
Dynamic Adaptive Streaming over HTTP/2.0
Dynamic Adaptive Streaming over HTTP/2.0Dynamic Adaptive Streaming over HTTP/2.0
Dynamic Adaptive Streaming over HTTP/2.0Christopher Mueller
 
Dynamic Adaptive Streaming over HTTP (DASH)
Dynamic Adaptive Streaming over HTTP (DASH)Dynamic Adaptive Streaming over HTTP (DASH)
Dynamic Adaptive Streaming over HTTP (DASH)Alpen-Adria-Universität
 
Dynamic Adaptive Streaming over HTTP: From Content Creation to Consumption
Dynamic Adaptive Streaming over HTTP: From Content Creation to ConsumptionDynamic Adaptive Streaming over HTTP: From Content Creation to Consumption
Dynamic Adaptive Streaming over HTTP: From Content Creation to ConsumptionAlpen-Adria-Universität
 
Latest Developments of Scalable Vector Graphics (SVG) 2, With a Focus on Stre...
Latest Developments of Scalable Vector Graphics (SVG) 2, With a Focus on Stre...Latest Developments of Scalable Vector Graphics (SVG) 2, With a Focus on Stre...
Latest Developments of Scalable Vector Graphics (SVG) 2, With a Focus on Stre...Förderverein Technische Fakultät
 
Ebu mpeg dash-webinar043
Ebu mpeg dash-webinar043Ebu mpeg dash-webinar043
Ebu mpeg dash-webinar043mc_killah
 
MPEG-DASH: Overview, State-of-the-Art, and Future Roadmap
MPEG-DASH: Overview, State-of-the-Art, and Future RoadmapMPEG-DASH: Overview, State-of-the-Art, and Future Roadmap
MPEG-DASH: Overview, State-of-the-Art, and Future RoadmapAlpen-Adria-Universität
 
Development of an FHMA-based Underwater Acoustic Communications System for Mu...
Development of an FHMA-based Underwater Acoustic Communications System for Mu...Development of an FHMA-based Underwater Acoustic Communications System for Mu...
Development of an FHMA-based Underwater Acoustic Communications System for Mu...Waqas Tariq
 
GPAC Team Research Highlights
GPAC Team Research HighlightsGPAC Team Research Highlights
GPAC Team Research HighlightsCyril Concolato
 
Adaptive Media Streaming over Emerging Protocols
Adaptive Media Streaming over Emerging ProtocolsAdaptive Media Streaming over Emerging Protocols
Adaptive Media Streaming over Emerging ProtocolsAlpen-Adria-Universität
 
Energy-Aware Wireless Video Streaming
Energy-Aware Wireless Video StreamingEnergy-Aware Wireless Video Streaming
Energy-Aware Wireless Video StreamingVideoguy
 
Investigation of Quick Handover Algorithm for Wireless Video Streaming App
Investigation of Quick Handover Algorithm for Wireless Video Streaming AppInvestigation of Quick Handover Algorithm for Wireless Video Streaming App
Investigation of Quick Handover Algorithm for Wireless Video Streaming AppRajvi Jagirdar
 
Streaming Video over a Wireless Network.ppt
Streaming Video over a Wireless Network.pptStreaming Video over a Wireless Network.ppt
Streaming Video over a Wireless Network.pptVideoguy
 

Viewers also liked (20)

Using DASH and MPEG-2 TS
Using DASH and MPEG-2 TSUsing DASH and MPEG-2 TS
Using DASH and MPEG-2 TS
 
Tutoriel sur le streaming vidéo sur HTTP et sur MPEG-DASH
Tutoriel sur le streaming vidéo sur HTTP et sur MPEG-DASHTutoriel sur le streaming vidéo sur HTTP et sur MPEG-DASH
Tutoriel sur le streaming vidéo sur HTTP et sur MPEG-DASH
 
Extensions for Hybrid Delivery using MPEG-2 TS and DASH
Extensions for Hybrid Delivery using MPEG-2 TS and DASHExtensions for Hybrid Delivery using MPEG-2 TS and DASH
Extensions for Hybrid Delivery using MPEG-2 TS and DASH
 
Building a Dash-264 Player
Building a Dash-264 PlayerBuilding a Dash-264 Player
Building a Dash-264 Player
 
HTTP Streaming of MPEG Media
HTTP Streaming of MPEG MediaHTTP Streaming of MPEG Media
HTTP Streaming of MPEG Media
 
Streaming of SVG animations on the Web
Streaming of SVG animations on the WebStreaming of SVG animations on the Web
Streaming of SVG animations on the Web
 
Dynamic Adaptive Streaming over HTTP/2.0
Dynamic Adaptive Streaming over HTTP/2.0Dynamic Adaptive Streaming over HTTP/2.0
Dynamic Adaptive Streaming over HTTP/2.0
 
Dynamic Adaptive Streaming over HTTP (DASH)
Dynamic Adaptive Streaming over HTTP (DASH)Dynamic Adaptive Streaming over HTTP (DASH)
Dynamic Adaptive Streaming over HTTP (DASH)
 
Dynamic Adaptive Streaming over HTTP: From Content Creation to Consumption
Dynamic Adaptive Streaming over HTTP: From Content Creation to ConsumptionDynamic Adaptive Streaming over HTTP: From Content Creation to Consumption
Dynamic Adaptive Streaming over HTTP: From Content Creation to Consumption
 
Latest Developments of Scalable Vector Graphics (SVG) 2, With a Focus on Stre...
Latest Developments of Scalable Vector Graphics (SVG) 2, With a Focus on Stre...Latest Developments of Scalable Vector Graphics (SVG) 2, With a Focus on Stre...
Latest Developments of Scalable Vector Graphics (SVG) 2, With a Focus on Stre...
 
Ebu mpeg dash-webinar043
Ebu mpeg dash-webinar043Ebu mpeg dash-webinar043
Ebu mpeg dash-webinar043
 
MPEG-DASH: Overview, State-of-the-Art, and Future Roadmap
MPEG-DASH: Overview, State-of-the-Art, and Future RoadmapMPEG-DASH: Overview, State-of-the-Art, and Future Roadmap
MPEG-DASH: Overview, State-of-the-Art, and Future Roadmap
 
Development of an FHMA-based Underwater Acoustic Communications System for Mu...
Development of an FHMA-based Underwater Acoustic Communications System for Mu...Development of an FHMA-based Underwater Acoustic Communications System for Mu...
Development of an FHMA-based Underwater Acoustic Communications System for Mu...
 
GPAC Team Research Highlights
GPAC Team Research HighlightsGPAC Team Research Highlights
GPAC Team Research Highlights
 
Adaptive Media Streaming over Emerging Protocols
Adaptive Media Streaming over Emerging ProtocolsAdaptive Media Streaming over Emerging Protocols
Adaptive Media Streaming over Emerging Protocols
 
Energy-Aware Wireless Video Streaming
Energy-Aware Wireless Video StreamingEnergy-Aware Wireless Video Streaming
Energy-Aware Wireless Video Streaming
 
Investigation of Quick Handover Algorithm for Wireless Video Streaming App
Investigation of Quick Handover Algorithm for Wireless Video Streaming AppInvestigation of Quick Handover Algorithm for Wireless Video Streaming App
Investigation of Quick Handover Algorithm for Wireless Video Streaming App
 
Distributed DASH Dataset
Distributed DASH DatasetDistributed DASH Dataset
Distributed DASH Dataset
 
libdash 2.0
libdash 2.0libdash 2.0
libdash 2.0
 
Streaming Video over a Wireless Network.ppt
Streaming Video over a Wireless Network.pptStreaming Video over a Wireless Network.ppt
Streaming Video over a Wireless Network.ppt
 

Similar to Live streaming of video and subtitles with MPEG-DASH

Streaming video to html
Streaming video to htmlStreaming video to html
Streaming video to htmljeff tapper
 
Introduction to Amazon Elastic Transcoder
 Introduction to Amazon Elastic Transcoder  Introduction to Amazon Elastic Transcoder
Introduction to Amazon Elastic Transcoder Amazon Web Services
 
AWS Webcast - What's New with Amazon Elastic Transcoder
AWS Webcast - What's New with Amazon Elastic TranscoderAWS Webcast - What's New with Amazon Elastic Transcoder
AWS Webcast - What's New with Amazon Elastic TranscoderAmazon Web Services
 
Silverlight Wireshark Analysis
Silverlight Wireshark AnalysisSilverlight Wireshark Analysis
Silverlight Wireshark AnalysisYoss Cohen
 
Media Source Extensions
Media Source ExtensionsMedia Source Extensions
Media Source ExtensionsFITC
 
Criteo Labs Infrastructure Tech Talk Meetup Nov. 7
Criteo Labs Infrastructure Tech Talk Meetup Nov. 7Criteo Labs Infrastructure Tech Talk Meetup Nov. 7
Criteo Labs Infrastructure Tech Talk Meetup Nov. 7Shuo LI
 
Serverless Media Workflow
Serverless Media WorkflowServerless Media Workflow
Serverless Media WorkflowMooYeol Lee
 
Integrating CMAF into a Vod Workflow
Integrating CMAF into a Vod WorkflowIntegrating CMAF into a Vod Workflow
Integrating CMAF into a Vod WorkflowTomas Bacik
 
Wwx2014 - Todd Kulick "Shipping One Million Lines of Haxe to (Over) One Milli...
Wwx2014 - Todd Kulick "Shipping One Million Lines of Haxe to (Over) One Milli...Wwx2014 - Todd Kulick "Shipping One Million Lines of Haxe to (Over) One Milli...
Wwx2014 - Todd Kulick "Shipping One Million Lines of Haxe to (Over) One Milli...antopensource
 
Efficient multimedia support in QtWebKit on Raspberry Pi (GStreamer Conferenc...
Efficient multimedia support in QtWebKit on Raspberry Pi (GStreamer Conferenc...Efficient multimedia support in QtWebKit on Raspberry Pi (GStreamer Conferenc...
Efficient multimedia support in QtWebKit on Raspberry Pi (GStreamer Conferenc...Igalia
 
Persistent Memory Programming with Pmemkv
Persistent Memory Programming with PmemkvPersistent Memory Programming with Pmemkv
Persistent Memory Programming with PmemkvIntel® Software
 
/* pOrt80BKK */ - PHP Day - PHP Performance with APC + Memcached for Windows
/* pOrt80BKK */ - PHP Day - PHP Performance with APC + Memcached for Windows/* pOrt80BKK */ - PHP Day - PHP Performance with APC + Memcached for Windows
/* pOrt80BKK */ - PHP Day - PHP Performance with APC + Memcached for WindowsFord AntiTrust
 
Webcast - Making kubernetes production ready
Webcast - Making kubernetes production readyWebcast - Making kubernetes production ready
Webcast - Making kubernetes production readyApplatix
 
Stealing Chromium: Embedding HTML5 with the Servo Browser Engine (LinuxCon NA...
Stealing Chromium: Embedding HTML5 with the Servo Browser Engine (LinuxCon NA...Stealing Chromium: Embedding HTML5 with the Servo Browser Engine (LinuxCon NA...
Stealing Chromium: Embedding HTML5 with the Servo Browser Engine (LinuxCon NA...Samsung Open Source Group
 

Similar to Live streaming of video and subtitles with MPEG-DASH (20)

Mm sys 2013-demo
Mm sys 2013-demoMm sys 2013-demo
Mm sys 2013-demo
 
Streaming video to html
Streaming video to htmlStreaming video to html
Streaming video to html
 
Introduction to Amazon Elastic Transcoder
 Introduction to Amazon Elastic Transcoder  Introduction to Amazon Elastic Transcoder
Introduction to Amazon Elastic Transcoder
 
AWS Webcast - What's New with Amazon Elastic Transcoder
AWS Webcast - What's New with Amazon Elastic TranscoderAWS Webcast - What's New with Amazon Elastic Transcoder
AWS Webcast - What's New with Amazon Elastic Transcoder
 
SDAccel Design Contest: Vivado HLS
SDAccel Design Contest: Vivado HLSSDAccel Design Contest: Vivado HLS
SDAccel Design Contest: Vivado HLS
 
Silverlight Wireshark Analysis
Silverlight Wireshark AnalysisSilverlight Wireshark Analysis
Silverlight Wireshark Analysis
 
Media Source Extensions
Media Source ExtensionsMedia Source Extensions
Media Source Extensions
 
Criteo Labs Infrastructure Tech Talk Meetup Nov. 7
Criteo Labs Infrastructure Tech Talk Meetup Nov. 7Criteo Labs Infrastructure Tech Talk Meetup Nov. 7
Criteo Labs Infrastructure Tech Talk Meetup Nov. 7
 
Serverless Media Workflow
Serverless Media WorkflowServerless Media Workflow
Serverless Media Workflow
 
Integrating CMAF into a Vod Workflow
Integrating CMAF into a Vod WorkflowIntegrating CMAF into a Vod Workflow
Integrating CMAF into a Vod Workflow
 
Apan media encoding
Apan media encodingApan media encoding
Apan media encoding
 
Wwx2014 - Todd Kulick "Shipping One Million Lines of Haxe to (Over) One Milli...
Wwx2014 - Todd Kulick "Shipping One Million Lines of Haxe to (Over) One Milli...Wwx2014 - Todd Kulick "Shipping One Million Lines of Haxe to (Over) One Milli...
Wwx2014 - Todd Kulick "Shipping One Million Lines of Haxe to (Over) One Milli...
 
Efficient multimedia support in QtWebKit on Raspberry Pi (GStreamer Conferenc...
Efficient multimedia support in QtWebKit on Raspberry Pi (GStreamer Conferenc...Efficient multimedia support in QtWebKit on Raspberry Pi (GStreamer Conferenc...
Efficient multimedia support in QtWebKit on Raspberry Pi (GStreamer Conferenc...
 
Persistent Memory Programming with Pmemkv
Persistent Memory Programming with PmemkvPersistent Memory Programming with Pmemkv
Persistent Memory Programming with Pmemkv
 
Technology Update: MPEG-Dash
Technology Update: MPEG-DashTechnology Update: MPEG-Dash
Technology Update: MPEG-Dash
 
/* pOrt80BKK */ - PHP Day - PHP Performance with APC + Memcached for Windows
/* pOrt80BKK */ - PHP Day - PHP Performance with APC + Memcached for Windows/* pOrt80BKK */ - PHP Day - PHP Performance with APC + Memcached for Windows
/* pOrt80BKK */ - PHP Day - PHP Performance with APC + Memcached for Windows
 
Webcast - Making kubernetes production ready
Webcast - Making kubernetes production readyWebcast - Making kubernetes production ready
Webcast - Making kubernetes production ready
 
Stealing Chromium: Embedding HTML5 with the Servo Browser Engine (LinuxCon NA...
Stealing Chromium: Embedding HTML5 with the Servo Browser Engine (LinuxCon NA...Stealing Chromium: Embedding HTML5 with the Servo Browser Engine (LinuxCon NA...
Stealing Chromium: Embedding HTML5 with the Servo Browser Engine (LinuxCon NA...
 
Remix
RemixRemix
Remix
 
Html 5
Html 5Html 5
Html 5
 

More from Cyril Concolato

Comments on carriage of timed text and visual overlays in MP4
Comments on carriage of timed text and visual overlays in MP4Comments on carriage of timed text and visual overlays in MP4
Comments on carriage of timed text and visual overlays in MP4Cyril Concolato
 
Delivery of Timeline for External Data in MPEG-2 Transport Stream
Delivery of Timeline for External Data in MPEG-2 Transport StreamDelivery of Timeline for External Data in MPEG-2 Transport Stream
Delivery of Timeline for External Data in MPEG-2 Transport StreamCyril Concolato
 
Carriage of timed subtitles and graphics in MP4
Carriage of timed subtitles and graphics in MP4Carriage of timed subtitles and graphics in MP4
Carriage of timed subtitles and graphics in MP4Cyril Concolato
 
MPEG-4 BIFS and MPEG-2 TS: Latest developments for digital radio services
MPEG-4 BIFS and MPEG-2 TS: Latest developments for digital radio servicesMPEG-4 BIFS and MPEG-2 TS: Latest developments for digital radio services
MPEG-4 BIFS and MPEG-2 TS: Latest developments for digital radio servicesCyril Concolato
 
Usages of DASH for Rich Media Services
Usages of DASH for Rich Media ServicesUsages of DASH for Rich Media Services
Usages of DASH for Rich Media ServicesCyril Concolato
 
Adaptive Video and Metadata Display using Multimedia Documents
Adaptive Video and Metadata Display using Multimedia DocumentsAdaptive Video and Metadata Display using Multimedia Documents
Adaptive Video and Metadata Display using Multimedia DocumentsCyril Concolato
 
Usages of DASH for Rich Media Services
Usages of DASH for Rich Media ServicesUsages of DASH for Rich Media Services
Usages of DASH for Rich Media ServicesCyril Concolato
 
Electronic Program Guides using SVG
Electronic Program Guides using SVGElectronic Program Guides using SVG
Electronic Program Guides using SVGCyril Concolato
 

More from Cyril Concolato (9)

Comments on carriage of timed text and visual overlays in MP4
Comments on carriage of timed text and visual overlays in MP4Comments on carriage of timed text and visual overlays in MP4
Comments on carriage of timed text and visual overlays in MP4
 
Delivery of Timeline for External Data in MPEG-2 Transport Stream
Delivery of Timeline for External Data in MPEG-2 Transport StreamDelivery of Timeline for External Data in MPEG-2 Transport Stream
Delivery of Timeline for External Data in MPEG-2 Transport Stream
 
Carriage of timed subtitles and graphics in MP4
Carriage of timed subtitles and graphics in MP4Carriage of timed subtitles and graphics in MP4
Carriage of timed subtitles and graphics in MP4
 
MPEG-4 BIFS Overview
MPEG-4 BIFS OverviewMPEG-4 BIFS Overview
MPEG-4 BIFS Overview
 
MPEG-4 BIFS and MPEG-2 TS: Latest developments for digital radio services
MPEG-4 BIFS and MPEG-2 TS: Latest developments for digital radio servicesMPEG-4 BIFS and MPEG-2 TS: Latest developments for digital radio services
MPEG-4 BIFS and MPEG-2 TS: Latest developments for digital radio services
 
Usages of DASH for Rich Media Services
Usages of DASH for Rich Media ServicesUsages of DASH for Rich Media Services
Usages of DASH for Rich Media Services
 
Adaptive Video and Metadata Display using Multimedia Documents
Adaptive Video and Metadata Display using Multimedia DocumentsAdaptive Video and Metadata Display using Multimedia Documents
Adaptive Video and Metadata Display using Multimedia Documents
 
Usages of DASH for Rich Media Services
Usages of DASH for Rich Media ServicesUsages of DASH for Rich Media Services
Usages of DASH for Rich Media Services
 
Electronic Program Guides using SVG
Electronic Program Guides using SVGElectronic Program Guides using SVG
Electronic Program Guides using SVG
 

Recently uploaded

Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 

Recently uploaded (20)

Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 

Live streaming of video and subtitles with MPEG-DASH

  • 1. m26906 Live Streaming of Video and Subtitles using DASH Cyril Concolato Jean Le Feuvre {concolato, lefeuvre} @ telecom-paristech.fr
  • 2. Context ■ Need for live subtitles also on the Internet! ■ Multiple specification developments • MPEG DASH Amendment on Timed Text and Timed Overlays • W3C Media Source Extension API • WHATWG/W3C WebVTT • 3GPP Timed Text ■ Development of a Proof-of-Concept 1 M26906 – Live Streaming of Video and Subtitles using DASH
  • 3. Demonstration formats ■ The MP4 file format • To represent live video stream segments ■ The WebVTT subtitle format • To represent live subtitle segments as text files (similar to HLS v9) ■ MPEG DASH MPD • to represent a dynamic adaptive live/long-running streaming service • to enable synchronization of the video and subtitle streams. 2 test
  • 4. Demonstration software components ■ GPAC MP4Box • To produce video segments on-the-fly and delete old ones ■ VTTLiveGenerator • Ad-hoc tool • To produce subtitle segments on-the-fly and delete old ones ■ Google Chrome • Canary version 24 • To display the content 3 test
  • 5. Usage of MP4Box ■ Fragmenting a file repeatedly using -dash-ctx option MP4Box.exe -dash-ctx dash-live.txt -dash 2000 -rap -segment-name counter-live -url-template 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 4 test
  • 6. Example of Video Content 5 test
  • 7. 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) 6 test
  • 8. MPD Example ■ Dynamic MPD • 1 single period • 2 adaptation sets (1 video, 1 subtitle) − ContentComponent@type=« text » for subtitles • No minUpdate attribute • Same video and subtitle segments duration (easy) ■ live-vtt-mp4.mpd 7 test
  • 9. Rendering using Google Chrome Canary ■ HTML page with JavaScript code to: • Fetch and parse the MPD, • Create a HTML 5 <video> element to render the video and an HTML 5 <track> element to render the subtitles, • Fetch the video and subtitles segments using the XMLHttpRequest API (as demonstrated in DASH-JS), • Feed the video segments to the media decoder engine using the Media Source extension API (as demonstrated by YouTube MPEG DASH player), • Load each subtitle segment separately (using a work- around current HTML 5 limitations) ■ Synchronization is handled by the video element • Possible improvments: HTML5 timestampOffset and DASH @presentationTimeOffset and @suggestedPresentationDelay 8 test
  • 10. Results 9 test
  • 11. Problems/Limitations ■ Synchronization problems • Too many cues per seconds (Chrome performance?) • Some cues are not loaded correctly (Chrome bug?) • Need a work-around to load cues (HTML5 limitation) − No MSE equivalent for cues − No easy method to parse cues ■ Limitations • Really only a proof of concept (ugly code) • No real MPD parsing yet • Very simple segment index algorithm • No GUI for selecting subtitles 10 test