ຂ້າມໄປທີ່ເນື້ອຫາຫຼັກ

ໝວດ

ເຕັກໂນໂລຊີ

ຊຸດເຕັກໂນໂລຊີຕົວຈິງຂອງ Dueli ໃນສອງຊັ້ນ: ຄຳອະທິບາຍແບບຄົນທົ່ວ ແລະ ມຸມມອງຂອງນັກວິສະວະກອນ

ໜ້ານີ້ອະທິບາຍເຕັກໂນໂລຊີທີ່ Dueli ໃຊ້ຕົວຈິງ ໃນສອງຊັ້ນ: ມຸມມອງແບບຄົນທົ່ວສຳລັບທຸກຄົນ ແລະ ມຸມມອງຂອງນັກວິສະວະກອນສຳລັບຜູ້ຊ່ຽວຊານ ບໍ່ມີເຕັກໂນໂລຊີໃດຖືກລົງລາຍການ ຖ້າໂຄດປັດຈຸບັນບໍ່ໄດ້ໃຊ້ມັນ

ແບບຄົນທົ່ວເຂົ້າໃຈງ່າຍ

Dueli ເດີນທາງໃນບຣາວເຊີ ເທິງເຄືອຂ່າຍທົ່ວໂລກຂອງ Cloudflare ຜູ້ແຂ່ງສອງຝ່າຍພົບກັນໃນສາຍວິດີໂອສົດ ລະຫວ່າງອຸປະກອນຂອງກັນແລະກັນ (WebRTC ແບບ peer-to-peer) ເມື່ອເຄືອຂ່າຍບລັອກເສັ້ນທາງກົງ ຕົວກາງ TURN ຈະຊ່ວຍນຳການເຊື່ອມຕໍ່ຜ່ານໄປໄດ້

ຂະນະແຂ່ງຂັນ ບຣາວເຊີຈະປະສົມພາບຈາກກ້ອງທັງສອງເປັນພາບດຽວ ແລະ ບັນທຶກເປັນຊິ້ນສັ້ນໆ ຈຳນວນ 5 ວິນາທີ ຊິ້ນເຫຼົ່ານີ້ຖືກອັບໂຫຼດ ທັນທີທີ່ຜະລິດອອກມາ ເປີດຊົມຕໍ່ເນື່ອງຕາມລຳດັບໄດ້ ແລະ ຈະຖືກປະກອບເປັນການບັນທຶກຄົບຖ້ວນ ຫຼັງການແຂ່ງຈົບລົງ

ການແຂ່ງຂັນທີ່ບັນທຶກໄວ້ ດາວໂຫຼດເປັນໄຟລ໌ MP4 ໄດ້ ເມື່ອການບັນທຶກຕ້ອງປ່ຽນຮູບແບບ ການປ່ຽນຈະເດີນນານຢູ່ໃນບຣາວເຊີຂອງຜູ້ຊົມເອງ ດ້ວຍ FFmpeg.wasm ດັ່ງນັ້ນໄຟລ໌ຈຶ່ງບໍ່ຖືກສົ່ງໄປຫາ ບໍລິການປ່ຽນໄຟລ໌ພາຍນອກ

ຂໍ້ມູນຂອງແພລດຟອມຢູ່ໃນ D1 ໜ້າ ແລະ API ສ້າງດ້ວຍ Hono ແລະ TypeScript ເທິງ Cloudflare ສ່ວນໜ້າຕາໃຊ້ Tailwind CSS ການອັບເດດສົດມາຜ່ານ SSE ແລະ ການຖາມຊ້ຳ

ສຳລັບນັກວິສະວະກອນ

Runtime: Cloudflare Pages/Workers ທີ່ມີ Hono 4 ເທິງ TypeScript ຖານຂໍ້ມູນແມ່ນ 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 ຢ່າງດຽວ ຖ້າບໍ່ມີການຕັ້ງຄ່າອັນໃດເລີຍ

ການບັນທຶກ: ຕົວປະສົມພາບຄານວາດ ວາດພາບທັງສອງສາຍ ແລະ MediaRecorder ຜະລິດຊິ້ນໃໝ່ ທຸກໆ 5 ວິນາທີ ເຈົ້າບ້ານລົງທະບຽນແຕ່ລະຊິ້ນ ທີ່ POST /api/chunks/register (ລະຫັດໃຊ້ຄັ້ງດຽວ ອາຍຸສັ້ນ ຜູກກັບການແຂ່ງຂັນ ລຳດັບ ແລະ ເພດານຂະໜາດໄບຕ໌) ອັບໂຫຼດມັນ ຢືນຢັນດ້ວຍ GET /verify ແລະ ສົ່ງລາຍງານທີ່ POST /receipt ການຊົມຄືນອ່ານຈາກ GET /api/chunks/playlist/:id ແລະ ຂັ້ນຕອນສຳເລັດທີ່ມີຢູ່ ຈະສ້າງ VOD ໃຫ້

ການດາວໂຫຼດ: @ffmpeg/core 0.12.10 ເດີນທາງໃນ worker ຂອງບຣາວເຊີທີ່ໂຮດເອງ ສຳລັບການປ່ຽນເປັນ MP4 ພ້ອມເສັ້ນທາງ remux ແບບໂຄງສ້າງ ສຳລັບການບັນທຶກທີ່ເຂົ້າກັບ MP4 ຢູ່ແລ້ວ ສ່ວນຄວາມຄືບໜ້າ ແລະ ຂອບເຂດຄວາມຈຳ ຈັດການໃນບໍລິການຝັ່ງຜູ້ໃຊ້

ທັນທີແທ້ຈິງ: SSE ຜ່ານ GET /api/sse ນຳການອັບເດດສົດ ແລະ ການສັນຍານໃຊ້ HTTP ແບບຖາມຊ້ຳ ເສັ້ນທາງຜະລິດຕະພັນບໍ່ໄດ້ໃຊ້ WebSocket

ຄຸນນະພາບ: Vitest ກວມການທົດສອບຫົວໜ່ວຍ ແລະ ສັນຍາ UI Playwright ກວມການທົດສອບຕັ້ງແຕ່ຕົ້ນຈົນປາຍໃນບຣາວເຊີ ເອກະສານ Markdown ຈະສະແດງຜົນດ້ວຍ marked ແລະ PostCSS ພ້ອມ Autoprefixer ປິດທາງປະມວນຜົນ CSS

ຊຸດເຕັກໂນໂລຊີໃນຄັງໂຄດນີ້

  • Cloudflare Pages / Workers ການໂຮດສະຖິງ ແລະ ສະພາບແວດລ້ອມເດີນທາງຂອງເຊີບເວີ
  • Cloudflare D1 (SQLite) ຖານຂໍ້ມູນຂອງແອັບ
  • Hono 4 ເສັ້ນທາງ HTTP ໜ້າ ແລະ API
  • TypeScript 5 ໂຄດຕົ້ນສະບັບທີ່ກຳນົດປະເພດ ສຳລັບເຊີບເວີ ແລະ ຝັ່ງຜູ້ໃຊ້
  • Tailwind CSS 4 + PostCSS + Autoprefixer ການຕົກແຕ່ງໜ້າຕາ ແລະ ທາງປະມວນຜົນ CSS
  • Vite 7 + esbuild ຊຸດ Worker ແລະ ຈຸດເຂົ້າຂອງບຣາວເຊີ
  • WebRTC (RTCPeerConnection) + TURN/STUN ສຽງ ແລະ ວິດີໂອສົດ ລະຫວ່າງຜູ້ຮ່ວມແຂ່ງ
  • ຕົວປະສົມພາບຄານວາດ + MediaRecorder ຊິ້ນບັນທຶກ 5 ວິນາທີໃນບຣາວເຊີ
  • FFmpeg.wasm (@ffmpeg/core 0.12.10) ການປ່ຽນເປັນ MP4 ແລະ ດາວໂຫຼດໃນບຣາວເຊີ
  • marked 17 ການສະແດງຜົນ Markdown ສຳລັບເອກະສານຄຸ້ມຄອງ
  • Vitest 5 ຊຸດທົດສອບຫົວໜ່ວຍ ແລະ UI
  • Playwright ການທົດສອບຕັ້ງແຕ່ຕົ້ນຈົນປາຍໃນບຣາວເຊີ
  • Wrangler 4 ເຄື່ອງມືພັດທະນາ ແລະ ເຜີຍແຜ່ຂອງ Cloudflare
  • SSE + HTTP ແບບຖາມຊ້ຳ ການອັບເດດສົດ ນອກເສັ້ນທາງສື່

ລາຍການນີ້ຈຳກັດເທົ່າທີ່ package.json ແລະ ຄັງໂຄດມີຕົວຈິງ ເປັນພຽງຄຳອະທິບາຍດ້ານວິຊາການ ບໍ່ແມ່ນຄຳຢືນຢັນເລື່ອງພັນທະມິດ ຫຼື ການຮັບຮອງ

ກັບໄປໜ້າສູນກາງຂອງຄູ່ມື