Skip to Content
Nextra 4.0 is released 🎉

āĻĄāĻŋāϜāĻžāχāύ āĻĄā§€āĻĒ āĻĄāĻžāχāĻ­

āĻšāĻžāχ-āϞ⧇āϭ⧇āϞ āĻĄāĻŋāϜāĻžāχāύ⧇ āĻĒ⧁āϰ⧋ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽāϕ⧇ āĻĻ⧁āχ āĻ­āĻžāϗ⧇ āĻ­āĻžāĻ— āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇: āĻ­āĻŋāĻĄāĻŋāĻ“ āφāĻĒāϞ⧋āĻĄāĻŋāĻ‚ āĻĢā§āϞ⧋ āĻāĻŦāĻ‚ āĻ­āĻŋāĻĄāĻŋāĻ“ āĻ¸ā§āĻŸā§āϰāĻŋāĻŽāĻŋāĻ‚ āĻĢā§āϞ⧋āĨ¤ āĻāχ āĻ…āĻ‚āĻļ⧇ āφāĻŽāϰāĻž āĻāχ āĻĻ⧁āχāϟāĻŋ āĻĢā§āϞ⧋ āφāϰāĻ“ āĻŦāĻŋāĻ¸ā§āϤāĻžāϰāĻŋāϤāĻ­āĻžāĻŦ⧇ āωāĻ¨ā§āύāϤ āĻ•āϰāĻŦā§‹ āĻāĻŦāĻ‚ āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ āĻ…āĻĒāϟāĻŋāĻŽāĻžāχāĻœā§‡āĻļāύ āĻ“ āĻāϰāϰ āĻšā§āϝāĻžāĻ¨ā§āĻĄāϞāĻŋāĻ‚ āĻŽā§‡āĻ•āĻžāύāĻŋāϜāĻŽ āϝ⧋āĻ— āĻ•āϰāĻŦā§‹āĨ¤

āĻ­āĻŋāĻĄāĻŋāĻ“ āĻŸā§āϰāĻžāĻ¨ā§āϏāϕ⧋āĻĄāĻŋāĻ‚

āϝāĻ–āύ āφāĻĒāύāĻŋ āĻāĻ•āϟāĻŋ āĻ­āĻŋāĻĄāĻŋāĻ“ āϰ⧇āĻ•āĻ°ā§āĻĄ āĻ•āϰ⧇āύ, āĻĄāĻŋāĻ­āĻžāχāϏ (āϏāĻžāϧāĻžāϰāĻŖāϤ āĻĢā§‹āύ āĻŦāĻž āĻ•ā§āϝāĻžāĻŽā§‡āϰāĻž) āĻ­āĻŋāĻĄāĻŋāĻ“āϟāĻŋāϕ⧇ āĻāĻ•āϟāĻŋ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻĢāϰāĻŽā§āϝāĻžāĻŸā§‡ āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰ⧇āĨ¤ āϝāĻĻāĻŋ āφāĻĒāύāĻŋ āϚāĻžāύ āĻ­āĻŋāĻĄāĻŋāĻ“āϟāĻŋ āĻ…āĻ¨ā§āϝ āĻĄāĻŋāĻ­āĻžāχāϏ⧇ āϏāĻšāĻœā§‡ āϚāĻžāϞāĻžāύ⧋ āϝāĻžāϝāĻŧ, āϤāĻžāĻšāϞ⧇ āĻ­āĻŋāĻĄāĻŋāĻ“āϟāĻŋāϕ⧇ āωāĻĒāϝ⧁āĻ•ā§āϤ āĻŦāĻŋāϟāϰ⧇āϟ āĻāĻŦāĻ‚ āĻĢāϰāĻŽā§āϝāĻžāĻŸā§‡ āĻāύāϕ⧋āĻĄ āĻ•āϰāϤ⧇ āĻšāϝāĻŧāĨ¤

āĻŦāĻŋāϟāϰ⧇āϟ āĻšāϞ⧋ āĻĒā§āϰāϤāĻŋ āϏ⧇āϕ⧇āĻ¨ā§āĻĄā§‡ āĻ•āϤ āĻŦāĻŋāϟ āĻĒā§āϰāϏ⧇āϏ āĻšāĻšā§āϛ⧇ āϤāĻžāϰ āĻšāĻžāϰāĨ¤ āωāĻšā§āϚ āĻŦāĻŋāϟāϰ⧇āϟ āϏāĻžāϧāĻžāϰāĻŖāϤ āωāĻšā§āϚ āĻŽāĻžāύ⧇āϰ āĻ­āĻŋāĻĄāĻŋāĻ“ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰ⧇, āϤāĻŦ⧇ āĻāϤ⧇ āĻŦ⧇āĻļāĻŋ āĻĒā§āϰāϏ⧇āϏāĻŋāĻ‚ āĻĒāĻžāĻ“āϝāĻŧāĻžāϰ āĻāĻŦāĻ‚ āĻĻā§āϰ⧁āϤ āχāĻ¨ā§āϟāĻžāϰāύ⧇āϟ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āĻšāϝāĻŧāĨ¤

āĻ­āĻŋāĻĄāĻŋāĻ“ āĻŸā§āϰāĻžāĻ¨ā§āϏāϕ⧋āĻĄāĻŋāĻ‚ āϕ⧇āύ āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ:

  • āĻ•āĻžāρāϚāĻž āĻ­āĻŋāĻĄāĻŋāĻ“ āĻ…āύ⧇āĻ• āĻŦ⧇āĻļāĻŋ āĻ¸ā§āĻŸā§‹āϰ⧇āϜ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ (ā§§ āϘāĻŖā§āϟāĻž HD āĻ­āĻŋāĻĄāĻŋāĻ“ āĻ•āϝāĻŧ⧇āĻ• āĻļāϤ GB āĻšāϤ⧇ āĻĒāĻžāϰ⧇)
  • āϏāĻŦ āĻĄāĻŋāĻ­āĻžāχāϏ āϏāĻŦ āĻĢāϰāĻŽā§āϝāĻžāϟ āϏāĻžāĻĒā§‹āĻ°ā§āϟ āĻ•āϰ⧇ āύāĻž
  • āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āύ⧇āϟāĻ“āϝāĻŧāĻžāĻ°ā§āϕ⧇ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āϰ⧇āĻœā§‹āϞāĻŋāωāĻļāύ āĻĻāϰāĻ•āĻžāϰ
  • āĻŽā§‹āĻŦāĻžāχāϞ āύ⧇āϟāĻ“āϝāĻŧāĻžāĻ°ā§āĻ• āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύāĻļā§€āϞ āĻšāĻ“āϝāĻŧāĻžāϝāĻŧ adaptive quality āĻĻāϰāĻ•āĻžāϰ

āĻāύāϕ⧋āĻĄāĻŋāĻ‚ āĻĢāϰāĻŽā§āϝāĻžāϟ:

Container: āĻ­āĻŋāĻĄāĻŋāĻ“, āĻ…āĻĄāĻŋāĻ“, āĻŽā§‡āϟāĻžāĻĄāĻžāϟāĻž āϧāĻžāϰāĻŖ āĻ•āϰ⧇ (.mp4, .avi) Codecs: āĻ­āĻŋāĻĄāĻŋāĻ“ āĻ•āĻŽāĻĒā§āϰ⧇āϏ āĻ•āϰ⧇ (H.264, VP9, HEVC)

DAG āĻŽāĻĄā§‡āϞ

āĻ­āĻŋāĻĄāĻŋāĻ“ āĻŸā§āϰāĻžāĻ¨ā§āϏāϕ⧋āĻĄāĻŋāĻ‚āϕ⧇ āϛ⧋āϟ āϛ⧋āϟ āϟāĻžāĻ¸ā§āϕ⧇ āĻ­āĻžāĻ— āĻ•āϰāϤ⧇ DAG āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤

āĻ…āϰāĻŋāϜāĻŋāύāĻžāϞ āĻ­āĻŋāĻĄāĻŋāĻ“ → āĻ­āĻŋāĻĄāĻŋāĻ“ / āĻ…āĻĄāĻŋāĻ“ / āĻŽā§‡āϟāĻžāĻĄāĻžāϟāĻž → āĻĒā§āϰāϏ⧇āϏāĻŋāĻ‚ → āĻĢāĻžāχāύāĻžāϞ āĻ­āĻŋāĻĄāĻŋāĻ“

āϟāĻžāĻ¸ā§āĻ•:

  • Inspection
  • Encoding
  • Thumbnail generation
  • Watermark

āφāĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āϚāĻžāϰ

āĻŽā§‚āϞ āĻ•āĻŽā§āĻĒā§‹āύ⧇āĻ¨ā§āϟ:

  • Preprocessor
  • DAG Scheduler
  • Resource Manager
  • Task Workers
  • Temporary Storage
  • Encoded Video

Preprocessor

  • āĻ­āĻŋāĻĄāĻŋāĻ“ GOP āĻ­āĻžāĻ— āĻ•āϰāĻž
  • āĻĒ⧁āϰāĻžāύ⧋ āĻĄāĻŋāĻ­āĻžāχāϏ support
  • DAG āϤ⧈āϰāĻŋ āĻ•āϰāĻž
  • cache āĻšāĻŋāϏ⧇āĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰāĻž

DAG Scheduler

āϟāĻžāĻ¸ā§āĻ•āϗ⧁āϞ⧋ āĻ­āĻžāĻ— āĻ•āϰ⧇ resource manager-āĻ āĻĒāĻžāĻ āĻžāϝāĻŧ

Resource Manager

ā§ŠāϟāĻŋ āĻ•āĻŋāω:

  • Task Queue
  • Worker Queue
  • Running Queue

āϏāĻ āĻŋāĻ• worker-āϕ⧇ āϏāĻ āĻŋāĻ• āĻ•āĻžāϜ āĻĻ⧇āϝāĻŧ

Task Workers

  • Encoder
  • Watermark
  • Thumbnail
  • Merger

Temporary Storage

intermediate data āϰāĻžāϖ⧇

Speed Optimization

  • GOP splitting
  • resumable upload
  • region-based upload center

Safety Optimization

Pre-signed URL:

  1. API āĻĨ⧇āϕ⧇ URL āύ⧇āĻ“āϝāĻŧāĻž
  2. āϏāϰāĻžāϏāϰāĻŋ storage-āĻ upload

DRM / AES / Watermark āĻŦā§āϝāĻŦāĻšāĻžāϰ

Cost Optimization

  • āĻļ⧁āϧ⧁ popular āĻ­āĻŋāĻĄāĻŋāĻ“ CDN-āĻ
  • less popular server āĻĨ⧇āϕ⧇ serve
  • on-demand encoding
  • region-based distribution

Error Handling

  • Upload → retry
  • Transcoding → retry
  • Scheduler → reschedule
  • Worker down → new worker
  • DB fail → replica/failover