အဓိက အကြောင်းအရာသို့ ကျော်သွားရန်

ကဏ္ဍ

နည်းပညာ

အလွှာနှစ်ခုဖြင့် အမှန်တကယ် Dueli စွမ်းအားရှင်များ- ရိုးရိုးရှင်းရှင်း ရှင်းလင်းချက်နှင့် အင်ဂျင်နီယာမြင်ကွင်း။

ဤစာမျက်နှာသည် Dueli အမှန်တကယ် သုံးသော နည်းပညာများကို အလွှာနှစ်ခုဖြင့် ရှင်းပြပါသည်၊ လူတိုင်းအတွက် ရိုးရှင်းသော ဘာသာစကား မြင်ကွင်းနှင့် ကျွမ်းကျင်သူများအတွက် အင်ဂျင်နီယာ မြင်ကွင်း။ လက်ရှိကုဒ်မှ မသုံးပါက နည်းပညာတစ်ခုကိုမျှ စာရင်းမပါဝင်စေပါ။

ရိုးရိုးရှင်းရှင်း ပြောရလျှင်

Dueli သည် Cloudflare ၏ ကမ္ဘာ့ကွန်ရက်ပေါ်တွင် ဘရောက်ဇာအတွင်း လည်ပတ်ပါသည်။ ပြိုင်ဘက်နှစ်ဦးသည် ၎င်းတို့၏ စက်များကြား တိုက်ရိုက် ဗီဒီယိုခေါ်ဆိုမှုတွင် တွေ့ဆုံပါသည် (WebRTC peer-to-peer)၊ ကွန်ရက်က တိုက်ရိုက်လမ်းကြောင်းကို ပိတ်ပါက TURN ကြားခံက ချိတ်ဆက်မှုကို ဖြတ်သန်းစေပါသည်။

ပြိုင်ပွဲအတွင်း ဘရောက်ဇာသည် ကင်မရာပုံနှစ်ခုကို ပုံတစ်ခုတည်း ပေါင်းစပ်၍ ၅ စက္ကန့်စီ အပိုင်းအစများအဖြစ် မှတ်တမ်းတင်ပါသည်။ အပိုင်းအစများကို ထုတ်လုပ်သည်နှင့်အမျှ အပ်လုဒ်တင်ပြီး အစဉ်လိုက် ပြန်ဖွင့်နိုင်၍ ယှဉ်ပြိုင်မှု ပြီးဆုံးပါက ပြည့်စုံသော ပြန်ဖွင့်မှုအဖြစ် စုစည်းပါသည်။

မှတ်တမ်းတင်ထားသော ပြိုင်ပွဲများကို MP4 ဖိုင်အဖြစ် ဒေါင်းလုဒ်လုပ်နိုင်ပါသည်။ မှတ်တမ်းကို ပြောင်းလဲရန် လိုအပ်ပါက ပြောင်းလဲခြင်းသည် လည်ပတ်သူ၏ ဘရောက်ဇာအတွင်း FFmpeg.wasm ဖြင့် လည်ပတ်သဖြင့် ဖိုင်ကို ပြင်ပ ပြောင်းလဲရေး ဝန်ဆောင်မှုသို့ မပေးပို့ပါ။

ပလက်ဖောင်း ဒေတာသည် D1 တွင် ရှိပြီး စာမျက်နှာများနှင့် API များကို Cloudflare ပေါ်တွင် Hono နှင့် TypeScript ဖြင့် တည်ဆောက်ထားပြီး အသွင်အပြင်သည် Tailwind CSS ကို သုံးပါသည်။ တိုက်ရိုက်ပြင်ဆင်မှုများသည် SSE နှင့် မေးယူမှုများမှတစ်ဆင့် ရောက်လာပါသည်။

အင်ဂျင်နီယာများအတွက်

လည်ပတ်မှု- TypeScript ပေါ်တွင် Hono 4 ဖြင့် Cloudflare Pages/Workers။ D1 (SQLite) သည် ဒေတာဘေ့စ ဖြစ်ပါသည်။ Vite သည် Worker အစုကို တည်ဆောက်ပြီး Tailwind CSS 4 သည် အသွင်အပြင်ကို အလှဆင်၍ esbuild သည် ဘရောက်ဇာ ဝင်ပေါက်များကို စုစည်းပါသည်။

တိုက်ရိုက်မီဒီယာ- ဘရောက်ဇာ RTCPeerConnection သည် အိမ်ရှင်နှင့် ပြိုင်ဘက်ကြား WebRTC ကို သယ်ဆောင်ပါသည်။ ICE ဆာဗာများကို ဆက်ရှင်တစ်ခုစီအလိုက် GET /api/signaling/ice-servers မှ ထုတ်ပေးပြီး Cloudflare Calls TURN (TURN_TOKEN_ID နှင့် TURN_API_TOKEN) သို့မဟုတ် ကိုယ်ပိုင်စီစဉ်ထားသော coturn (TURN_URL နှင့် TURN_SECRET) က ကြားခံနိုင်ပြီး နှစ်ခုစလုံး မသတ်မှတ်ထားပါက STUN သီးသန့် အရံကို သုံးပါသည်။

မှတ်တမ်းတင်ခြင်း- canvas ဖွဲ့စည်းစက်သည် ပုံနှစ်ခုလုံးကို ဆွဲပြီး MediaRecorder က ၅ စက္ကန့်တစ်ကြိမ် အပိုင်းအစ ထုတ်ပါသည်။ အိမ်ရှင်သည် အပိုင်းအစတိုင်းကို POST /api/chunks/register တွင် (ပြိုင်ပွဲ၊ အစဉ်နှင့် ဘိုက်အမြင့်ဆုံးနှင့် တွဲထားသော တိုတောင်းသည့် တစ်ကြိမ်သုံးသော့ဖြင့်) မှတ်ပုံတင်၍ အပ်လုဒ်တင်ပြီး GET /verify ဖြင့် စစ်ဆေး၍ POST /receipt ကို အစီရင်ခံပါသည်။ ပြန်ဖွင့်မှုသည် GET /api/chunks/playlist/:id ကို ဖတ်၍ ရှိပြီးသား finalize အဆင့်က VOD ကို ထုတ်ပါသည်။

ဒေါင်းလုဒ်များ- @ffmpeg/core 0.12.10 သည် MP4 ပြောင်းလဲရန် ကိုယ်ပိုင်စီစဉ်ထားသော ဘရောက်ဇာ worker တွင် လည်ပတ်ပြီး MP4 နှင့် ကိုက်ညီနှင့်ပြီးသား မှတ်တမ်းများအတွက် ဖွဲ့စည်းပုံ remux လမ်းကြောင်း ရှိပါသည်။ တိုးတက်မှုနှင့် မှတ်ဥာဏ် ကန့်သတ်ချက်များကို ကလိုင်းယင့် ဝန်ဆောင်မှုတွင် ကိုင်တွယ်ပါသည်။

အချိန်နှင့်တပြေးညီ- GET /api/sse မှတစ်ဆင့် SSE သည် တိုက်ရိုက်ပြင်ဆင်မှုများကို သယ်ဆောင်ပြီး ချိတ်ဆက်မှုအချက်ပြမှုသည် HTTP မေးယူမှုကို သုံးပါသည်၊ ထုတ်လုပ်ရေး လမ်းကြောင်းသည် WebSocket ကို မသုံးပါ။

အရည်အသွေး- Vitest သည် ယူနစ်နှင့် UI စာချုပ်များကို အုပ်စုထားပြီး Playwright သည် အဆုံးမှအဆုံး ဘရောက်ဇာ စီးဆင်းမှုများကို အုပ်စုထားပါသည်။ မာ့က်ဒေါင်း စာရွက်စာတမ်းများကို marked ဖြင့် ပြသ၍ PostCSS နှင့် အော်တိုပရီဖစ်ခ်ဆာက CSS ပိုက်လိုင်းကို ပြီးစေပါသည်။

ဤကိုယ်ပိုင်သိုလှောင်မှုရှိ နည်းပညာအထပ်များ

  • Cloudflare Pages / Workers အိမ်ရှင်လုပ်ခြင်းနှင့် ဆာဗာ လည်ပတ်မှု
  • Cloudflare D1 (SQLite) အက်ပလီကေးရှင်း ဒေတာဘေ့စ
  • Hono 4 HTTP လမ်းကြောင်းများ၊ စာမျက်နှာများနှင့် API
  • TypeScript 5 ဆာဗာနှင့် ကလိုင်းယင့်အတွက် အမျိုးအစားထားသော source
  • Tailwind CSS 4 + PostCSS + အော်တိုပရီဖစ်ခ်ဆာ အသွင်အပြင် အလှဆင်မှုနှင့် CSS ပိုက်လိုင်း
  • Vite 7 + esbuild Worker အစုနှင့် ဘရောက်ဇာ ဝင်ပေါက်များ
  • WebRTC (RTCPeerConnection) + TURN/STUN ပါဝင်သူများကြား တိုက်ရိုက် အသံနှင့် ဗီဒီယို
  • Canvas ဖွဲ့စည်းစက် + MediaRecorder ဘရောက်ဇာအတွင်း ၅ စက္ကန့် မှတ်တမ်းတင် အပိုင်းအစများ
  • FFmpeg.wasm (@ffmpeg/core 0.12.10) ဘရောက်ဇာအတွင်း MP4 ပြောင်းလဲခြင်းနှင့် ဒေါင်းလုဒ်
  • marked 17 စီမံထားသော စာရွက်စာတမ်းများအတွက် မာ့က်ဒေါင်း ပြသခြင်း
  • Vitest 5 ယူနစ်နှင့် UI စမ်းသပ်မှု အစု
  • Playwright အဆုံးမှအဆုံး ဘရောက်ဇာ စမ်းသပ်မှုများ
  • Wrangler 4 Cloudflare ဖွံ့ဖြိုးရေးနှင့် တပ်ဆင်ရေး ကိရိယာများ
  • SSE + HTTP မေးယူမှု မီဒီယာလမ်းကြောင်းပြင်ပ တိုက်ရိုက်ပြင်ဆင်မှုများ

စာရင်းသည် package.json နှင့် ကိုယ်ပိုင်သိုလှောင်မှုတွင် အမှန်တကယ် ပါဝင်သည့်အရာများသာ ဖြစ်ပါသည်။ ၎င်းသည် နည်းပညာ ဖော်ပြချက်သာဖြစ်၍ မိတ်ဖက်လုပ်ငန်း သို့မဟုတ် ထောက်ခံချက် မဟုတ်ပါ။

လမ်းညွှန်ဗဟိုသို့ ပြန်သွားရန်