Under the hood...

{
  "url": "http://<media>.mp4",
  "uuid": "b10329d7-af85-462c-bbee-e1f0ec171f4e",
  "download_requested_at": "2020-04-16T07:45:21.474Z"
}
MRequest

Rate limiting

OCR

Transcribe

MAX

Before Rate limiting

?

MAX

OCR

Transcribe

Before Rate limiting

Notify about Transcribe Errors due to limit exceeded...
MAX

OCR

Transcribe

With Rate limiting

MAX

OCR

Transcribe

?

MAX

With Rate limiting

OCR

Transcribe

MAX

With Rate limiting

Wait for slot...

OCR

Transcribe

MAX

With Rate limiting

Wait for slot...

OCR

Transcribe

MAX

With Rate limiting

Wait for slot...

OCR

Transcribe

MAX

With Rate limiting

OCR

Transcribe

Rate limiting Feature

  • Back pressure mechanism allowing us to gracefully handle Video request spikes
    • (40k videos in 30min)
       
  • Better overall experience for both clients and team
    • (No need to reprocess when limits are reached)

Storing...

Video Transcribe

MRequest
MResponse

 1. Download

 Media Storage Layer

Downloading...

Downloading...

Storing...

Video Transcribe

MRequest
MResponse

 1. Download

 Media Storage Layer

NEW

Secured Partners Assets
Public Assets

Video Transcribe

 Media Storage Layer

Resizing Support

    High quality assets may result in large files

Is the media larger than 2Gb ?

NEW

NO

TranscodeRequest

YES

Send media for

resizing...

Secured Partners Assets

 1. Resizing Support (Generic FFMPEG support)

(1) Video Transcoder

m3u8

mp4

(2) Storing...

 Media Storage Layer

Resizing

M3U8

???

mp4

M3U8 Support

{
  "url": "http://<media>.m3u8",
  "uuid": "e10329d7-af85-462c-bbee-e1f0ec171f4e",
  "download_requested_at": "2020-04-16T07:45:21.474Z"
}
MRequest
#EXTM3U
#EXT-X-VERSION:4
#EXT-X-INDEPENDENT-SEGMENTS
#EXT-X-STREAM-INF:BANDWIDTH=6945044,AVERAGE-BANDWIDTH=6288046,CODECS="avc1.640032,mp4a.40.2",RESOLUTION=1920x1080,FRAME-RATE=29.970
b64c5f1a-2951-40e7-9751-9a0fac36f302_1.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=3977862,AVERAGE-BANDWIDTH=3232435,CODECS="avc1.64001f,mp4a.40.2",RESOLUTION=1280x720,FRAME-RATE=29.970
b64c5f1a-2951-40e7-9751-9a0fac36f302_2.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=1449409,AVERAGE-BANDWIDTH=1193358,CODECS="avc1.77.30,mp4a.40.2",RESOLUTION=640x360,FRAME-RATE=29.970
b64c5f1a-2951-40e7-9751-9a0fac36f302_3.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=839395,AVERAGE-BANDWIDTH=700508,CODECS="avc1.42c00d,mp4a.40.2",RESOLUTION=400x224,FRAME-RATE=29.970
b64c5f1a-2951-40e7-9751-9a0fac36f302_4.m3u8

Downloading...

M3U8 detected requires transcoding...

Video Transcribe

MRequest
TranscodeRequest

 1. M3U8 Support

#EXTM3U
#EXT-X-VERSION:4
#EXT-X-INDEPENDENT-SEGMENTS
#EXT-X-STREAM-INF:BANDWIDTH=6945044,AVERAGE-BANDWIDTH=6288046,CODECS="avc1.640032,mp4a.40.2",RESOLUTION=1920x1080,FRAME-RATE=29.970
b64c5f1a-2951-40e7-9751-9a0fac36f302_1.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=3977862,AVERAGE-BANDWIDTH=3232435,CODECS="avc1.64001f,mp4a.40.2",RESOLUTION=1280x720,FRAME-RATE=29.970
b64c5f1a-2951-40e7-9751-9a0fac36f302_2.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=1449409,AVERAGE-BANDWIDTH=1193358,CODECS="avc1.77.30,mp4a.40.2",RESOLUTION=640x360,FRAME-RATE=29.970
b64c5f1a-2951-40e7-9751-9a0fac36f302_3.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=839395,AVERAGE-BANDWIDTH=700508,CODECS="avc1.42c00d,mp4a.40.2",RESOLUTION=400x224,FRAME-RATE=29.970
b64c5f1a-2951-40e7-9751-9a0fac36f302_4.m3u8

Send Transcode Job to a queue...

 1. M3U8 Support

(1) Video Transcoder

m3u8

mp4

TrResponse

(2) Storing...

 Media Storage Layer

(3) Reply

MResponse
TrRequest
TRequest
ORequest

 2. Media Analysis

MResponse
{
  "url": "http://<media>.mp4",
  "uuid": "b10329d7-af85-462c-bbee-e1f0ec171f4e",
  "language_code": "en",
  "transcribe_requested_at": "2020-04-16T07:45:21.474Z"
}
{
  "url": "http://<media>.mp4",
  "uuid": "b10329d7-af85-462c-bbee-e1f0ec171f4e",
  "ocr_requested_at": "2020-04-16T07:45:21.474Z"
}
 Media Storage Layer
TRequest
ORequest

 2. Media Analysis

 Media Storage Layer

 2.1. Transcribe Job

TRequest
ORequest

2.2. OCR Job

 2. Media Analysis

 Media Storage Layer

Store result...

Function

Tapas

TResponse

3.1 Transcribe Result

3.2 OCR Result

Function

OResponse

Send notification...

TapasRequest

4. Tapas

4. Tapas

Under the hood

By Florian Dambrine

Under the hood

Under the hood

  • 1,155