Drupal, NetFlix, & Chill: Adaptive Bitrate Video Streaming · Finishing Touches Taking care of all existing files. • Bulk upload all files from Drupal files directory to S3 •

Post on 23-Aug-2020

6 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

Transcript

Drupal, NetFlix, & Chill: Adaptive Bitrate Video StreamingStephen Barker, Digital Frontiers Media, Inc. Dave Kopecek, Aisle 8, Inc.

1

The Problem

Existing Site 400 HD videos Slow video loading/buffering/playback latency (10-11 seconds average; sometimes up to 30 seconds!) Stuttering video playback Web server disk space being exhausted Budget Two-Pronged Issue of User Experience (stutter) v. Site Maintainability

2

Does NetFlix hate you?

3Image: cnet.com

Adaptive Bitrate Streaming

4Image: encoding.com

HLS Video File Structure

5Image: apple.com

Stutter Solution: Amazon Elastic Transcoder

6

Transcoder Workflow

7

AWS Elastic Transcoder HLS Presets

8

Pipelines and Jobs

9

AmazonS3 Events

10

AWS Lambda

11

Node.js Lambda Function

12

Lambda Initiated HLS Files

13

Standard Drupal File Handling

14

AmazonS3 Module

15

AmazonS3 CORS Upload Module

16

Tying It All Together

17

CloudFront CDN Setup in Minutes

18

Two URL Issues

19

hook_file_url_alter

20

hook_file_url_alter (cont.)

21

Finishing TouchesTaking care of all existing files.

• Bulk upload all files from Drupal files directory to S3

• UPDATE file_managed SET uri = REPLACE(uri, 'public', 's3') WHERE INSTR(filemime, 'video') > 0;

22

Lambda cleanup functions.

• If Elastic Transcoder is succesful, then move original mp4 to an Archive bucket.

• If Elastic Transcoder fails send Amazon SNS push notification

Results

23

Results

Both New and Existing Videos now served via fast Amazon CloudFront CDN! End User Experience - No stuttering video playback or video stoppage! Maintainer Experience - No change from standard Drupal node creation. Single video upload. ZERO web server disk space used and nearly infinite S3 expandability! Super cheap and easy to maintain!

24

Stephen Barkerstephen@digitalfrontiersmedia.com https://twitter.com/DigitalFrontier

25

Dave Kopecekdave@aisle8.net https://twitter.com/davekopecek

top related