Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Improving the Video Delivery at The New York Times

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest. →

Improving the Video Delivery at The New York Times

This talk presents the improvements we made on the on-demand stack and live streaming platform at The New York Times.

Flávio Ribeiro

November 03, 2017

Transcript

108 slides
  1. Flavio Ribeiro Lead Engineer
 { , } /flavioribeiro http://flavioribeiro.com Maxwell

    Da Silva Executive Director of Engineering
 { , } /dayvson http://dayvson.me
  2. agenda • recap of 2016’s SMWest • on-demand stack improvements

    • live streaming stack improvements • what’s coming next
  3. Media Factory Client Acquisition API Media Factory API Transcoding API

    Database Distribution API CDN Storage / Swap Area recap
  4. Media Factory Client Acquisition API Media Factory API Transcoding API

    Database Distribution API CDN Storage / Swap Area recap
  5. some numbers • > 20k encoding/publishing jobs • ~ 12

    different outputs each (H264/MP4, HLS levels, VP8/WebM)
  6. some numbers • > 20k encoding/publishing jobs • ~ 12

    different outputs each (H264/MP4, HLS levels, VP8/WebM) • 4 external pull requests on the transcoding API
  7. some numbers • > 20k encoding/publishing jobs • ~ 12

    different outputs each (H264/MP4, HLS levels, VP8/WebM) • 4 external pull requests on the transcoding API • 6 encoding services supported
  8. • migrate assets to Google Cloud Storage except HLS •

    generate adaptive formats on-the-fly 
 cdn migration: our video library
  9. • migrate assets to Google Cloud Storage except HLS •

    generate adaptive formats on-the-fly • less storage (~40%) • more formats delivered (MPEG-Dash for free) • faster transcoding process • help on closed captions support
 cdn migration: our video library
  10. Media Factory Client Acquisition API Media Factory API Transcoding API

    Database Distribution API CDN Storage / Swap Area pipeline integration
  11. Media Factory Client Acquisition API Media Factory API Transcoding API

    Database Distribution API Storage / Swap Area pipeline integration
  12. Media Factory Client Acquisition API Media Factory API Transcoding API

    Database Distribution API Storage / Swap Area pipeline integration GCS GCS Helper + Cache
  13. closed captions • accessibility • follow web standards • muted

    autoplay • first step for internationalization
  14. closed captions • accessibility • follow web standards • muted

    autoplay • first step for internationalization • integrate with the pipeline
  15. closed captions • accessibility • follow web standards • muted

    autoplay • first step for internationalization • integrate with the pipeline • avoid vendor dependency
  16. closed captions • accessibility • follow web standards • muted

    autoplay • first step for internationalization • integrate with the pipeline • avoid vendor dependency • multiple generation options
  17. closed captions • accessibility • follow web standards • muted

    autoplay • first step for internationalization • integrate with the pipeline • avoid vendor dependency • multiple generation options • Integrated with our CMS
  18. Media Factory Client Acquisition API Media Factory API Transcoding API

    Database Distribution API Storage / Swap Area GCS GCS Helper + Cache pipeline integration
  19. Media Factory Client Acquisition API Media Factory API Transcoding API

    Database Distribution API Storage / Swap Area GCS GCS Helper + Cache Captions API pipeline integration
  20. #EXTM3U #EXT-X-MEDIA:TYPE=SUBTITLES,GROUP- ID="subs0",LANGUAGE="en",NAME="English",AUTOSELECT=YES,DEFAULT=YES,URI="index-f6.m3u8" #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=3778274,RESOLUTION=854x480,FRAME- RATE=29.970,CODECS="avc1.4d401f,mp4a.40.2",SUBTITLES="subs0" index-f1-v1-a1.m3u8 #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=365226,RESOLUTION=426x240,FRAME- RATE=29.970,CODECS="avc1.4d401f,mp4a.40.2",SUBTITLES="subs0" index-f2-v1-a1.m3u8 #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=967515,RESOLUTION=640x360,FRAME-

    RATE=29.970,CODECS="avc1.4d401f,mp4a.40.2",SUBTITLES="subs0" index-f3-v1-a1.m3u8 #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1568184,RESOLUTION=854x480,FRAME- RATE=29.970,CODECS="avc1.4d401f,mp4a.40.2",SUBTITLES="subs0" index-f4-v1-a1.m3u8 #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2573061,RESOLUTION=854x480,FRAME- RATE=29.970,CODECS="avc1.4d401f,mp4a.40.2",SUBTITLES="subs0" index-f5-v1-a1.m3u8 segmented WebVTT on HLS
  21. on-demand stack improvements recap! • we are shutting down our

    datacenters • serving adaptive formats on-the-fly (less storage, more formats, speed up encoding)
  22. on-demand stack improvements recap! • we are shutting down our

    datacenters • serving adaptive formats on-the-fly (less storage, more formats, speed up encoding) • a/b tests to avoid hurting playback experience
  23. on-demand stack improvements recap! • we are shutting down our

    datacenters • serving adaptive formats on-the-fly (less storage, more formats, speed up encoding) • a/b tests to avoid hurting playback experience • closed captions API is just a wrapper for vendors
  24. on-demand stack improvements recap! • we are shutting down our

    datacenters • serving adaptive formats on-the-fly (less storage, more formats, speed up encoding) • a/b tests to avoid hurting playback experience • closed captions API is just a wrapper for vendors • on-the-fly packager takes care of serving the captions too
  25. on-demand stack improvements recap! • we are shutting down our

    datacenters • serving adaptive formats on-the-fly (less storage, more formats, speed up encoding) • a/b tests to avoid hurting playback experience • closed captions API is just a wrapper for vendors • on-the-fly packager takes care of serving the captions too • WebVTT on HLS for the win!
  26. some background • we had a basic support for live

    • newsroom expressed interest in doing more live streaming events
  27. some background • we had a basic support for live

    • newsroom expressed interest in doing more live streaming events • Presidential Election debates and correlated events
  28. problem 1: delivery • tons of HTTP PUT requests through

    open internet • our deal with the CDN was coming to an end
  29. problem 2: management • manual setup of the live events

    • no clear/automated way for live-to-VoD
  30. problem 2: management • manual setup of the live events

    • no clear/automated way for live-to-VoD • no clear/automated way to ingest the stream on partners
  31. what’s next • thumbnails service • A/B test: fragmented MP4’s

    versus MPEG-TS • A/B test: variable segments size for faster start
  32. what’s next • thumbnails service • A/B test: fragmented MP4’s

    versus MPEG-TS • A/B test: variable segments size for faster start • A/B test: motion covers for click-to-play engagement
  33. what’s next • thumbnails service • A/B test: fragmented MP4’s

    versus MPEG-TS • A/B test: variable segments size for faster start • A/B test: motion covers for click-to-play engagement • closed captions feeding recommendations / search
  34. what’s next • thumbnails service • A/B test: fragmented MP4’s

    versus MPEG-TS • A/B test: variable segments size for faster start • A/B test: motion covers for click-to-play engagement • closed captions feeding recommendations / search • closed captions integration with partners
  35. what’s next • thumbnails service • A/B test: fragmented MP4’s

    versus MPEG-TS • A/B test: variable segments size for faster start • A/B test: motion covers for click-to-play engagement • closed captions feeding recommendations / search • closed captions integration with partners • DVR for live streaming

More Decks by Flávio Ribeiro

Other Decks in Technology