ทำ Live streaming ด้วย Azure Media Services กัน

Pisit Phudphong
Krungsri Consumer-Innovation
3 min readAug 25, 2021

ไม่ใช่ทุกคนที่ต้องการมีระบบจัดการเนื้อหา — Content Management System (CMS) หรือตั้งใจที่จะเผยแพร่เนื้อหาในรูปแบบ Video Live Steming ที่เทียบเท่า YouTube หรือ Twitch ในบางครั้งเราอาจจะต้องการเพียงแค่โซลูชันที่ตอบโจทย์ในการนำเสนอในรูปแบบที่เราต้องการ

วันนี้เราจะนำเสนออีกหนึ่ง Use Case ของการใช้ Cloud Service ในการถ่ายทอดภาพและเสียงด้วย Azure Media Services ซึ่งเป็นบริการที่ทำงานได้ดีพอสมควรในรูปแบบ zero code กันเลยทีเดียว

Azure Media Services (AMS) คือแพลตฟอร์มการให้บริการด้านวิดีโอของไมโครซอฟท์ ที่รวมตั้งแต่การเข้ารหัสไฟล์วิดิโอ, แปลงไฟล์, ป้องกันการละเมิดลิขสิทธิ์ (DRM) รวมไปถึงการทำ Live streaming ที่เดิมทีผู้ให้บริการต้องทำเองทั้งหมดไปรวมไว้ที่ Azure ซึ่งเป็นคลาวด์แพลตฟอร์ม (Cloud Platform) ของไมโครซอฟท์

เนื้อหาในบทความนี้

  1. Prerequisite
  2. Setup AMS for Live Streaming
  3. Demo

Prerequisite

  • บัญชีผู้ใช้สำหรับ Microsoft Azure
  • Open Broadcaster Software (OBS)

Setup AMS for Live Streaming

หลังจากที่เตรียมตัวพร้อมแล้ว เรามาเริ่มกันด้วยการสร้าง Media Service โดย Login ไปที่ Azure portal หลังจากนั้นเลือก +Create a resource ตามด้วย Media Services

Media Services on the Azure Marketplace

กรอกรายละเอียดของ Media Service โดย Account Name จะต้องไม่ซ้ำกับคนอื่น (Globally unique) / เลือก Location ที่ต้องการตามกลุ่มเป้าหมาย แน่นอนครับสำหรับชาวไทย Southeast Asia เหมาะที่สุด / และตามด้วย Storage account

Creating media service account

เมื่อกรอกรายละเอียดต่างๆ ครบแล้วกด Review + create เพื่อตรวจสอบและ Create หลังจากนั้นรอไม่กี่นาทีเราก็จะมี Media Service พร้อมสำหรับการใช้งานแล้ว

ลำดับต่อไปจะเป็นการสร้าง Live event โดยเข้าไปยัง Media Service ที่สร้างไว้ก่อนหน้านี้และเลือกแท็บ Live event ด้านซ้ายมือและเลือก +Add live event ตามลำดับ

Creating live event for streaming

ในส่วนของรายละเอียดในการสร้าง Live event นั้นจะประกอบไปด้วย 2 ส่วนหลักๆ ได้แก่

  1. Basic ซึ่งเป็นการกำหนดรายละเอียดพื้นฐานตั้งแต่ชื่อ Event ลักษณะการประมวลผลบนคลาวด์ ซึ่งผู้ใช้งานทั่วๆ ไปตั้งค่าในส่วนนี้ก็เพียงพอต่อการนำไปใช้งานแล้ว
  2. Advanced เป็นการกำหนดรายละเอียดข้อจำกัดด้านความปลอดภัยและข้อมูลอื่นๆ (สามารถปรับเปลี่ยนได้ภายหลัง) ซึ่งไม่ครอบคลุมในบทความนี้

การใช้ความสามารถเพิ่มเติมอาจมีค่าใช้จ่าย ผู้อ่านสามารถศึกษารายละเอียดได้ที่ Azure Media Services Pricing

Basic configuration for an event

สำหรับรายละเอียดที่จำเป็นต้องกรอกในขั้นตอนนี้ได้แก่

  • Live event name: ชื่อกิจกรรม
  • Cloud encoding: ลักษณะการประมวลผลบนคลาวด์ ณ วันที่เขียนบทความมีด้วยกัน 3 ตัวเลือก ซึ่งมีค่าใช้จ่ายต่างกัน และในบทความนี้เลือกเป็น Pass-through
  • Input protocol: รูปแบบการส่ง Input เข้ามา และแน่นอนครับเราเลือก RTMP กัน

ส่วนรายละเอียดอื่นๆ สามารถปรับได้ตามความต้องการ

กรณีที่เลือก Start live event เป็น Yes จะเริ่มถูกคิดค่าใช้บริการทันที หากสิ้นสุดการ Live แล้วต้องกลับมา Stop Service ด้วยนะครับ

เมื่อกรอกข้อมูลครบแล้วกด Review + create เพื่อตรวจสอบและ Create อีกครั้ง

Live event screen after completed creation

และเมื่อเตรียมของพร้อมแล้ว ตอนนี้เราจะมา Live streaming กัน! โดยเลือก Live event ที่ได้สร้างไว้ก่อนหน้านี้ (ในบทความนี้ใช้ชื่อว่า passthrough) และหากใครยังไม่ได้ Start service ไว้ก่อนหน้านี้สามารถกด Start ได้ในหน้าจอนี้

โดย Input URL ที่แสดงบนหน้าจอนี้จะใช้สำหรับ OBS ในการส่ง Input ที่สามารถเลือกได้ทั้งแบบ RTMP ธรรมดา และ RMTPS ที่มีการเข้ารหัสเพิ่มเติม

Create an output of an event

การเปิดให้ผู้ชมสามารถดู Live steaming ได้จะต้องทำการสร้างส่งที่เรียกว่า Output กันก่อน ให้กดเลือก Create an output และกรอกรายละเอียด โดยเบื้องต้นนั้นระบบจะเตรียมข้อมูลให้แล้ว โดย

  • Name: ชื่อของ Output
  • Rewind window: ช่วงเวลาสูงสุดของวิดิโอที่จะจัดเก็บไว้เพื่อใช้ดูย้อนหลังได้นับจากเวลาปัจจุบัน
  • Asset name: ชื่อของไฟล์ Outout
  • Asset storage account: Storage account ที่ใช้จัดเก็บไฟล์
Sreaming locator configuration of an output

อีกหนึ่งจุดสำคัญ สำหรับแพลตฟอร์มการให้บริการด้านวิดีโอคือ สามารถกำหนด Policy ในการรับชมเพิ่มเติมได้ทันทีจาก Predefined sets ที่ทาง Azure เตรียมไว้ (อาจมีค่าบริการเพิ่มเติม)

เช่นจำกัดการรับชมเฉพาะ Client ที่กำหนดโดยใช้ JWT หรือ DRM เป็นต้น

ในบทความนี้จะใช้ Policy แบบ Predefined_ClearStreamingOnly ที่เป็นค่ามาตรฐานของการทำ Live streaming ทำให้สามารถรับชมได้อย่างเดียว

ตรวจสอบการกำหนดค่าซ้ำอีกครั้ง และกด Create

เพื่อที่จะทำให้ผู้ชมรับชมได้จะต้องส่ง Output ผ่านสิ่งที่เรียกว่า Streaming endoint ซึ่งโดยปกติแล้วจะถูกสร้างขึ้นมาโดยอัตโนมัติพร้อมกับ Media Service Account

หากยังไม่ได้ Start streaming endpoint สามารถกดเลือก Start ได้จากหน้าจอนี้ครับ

และเช่นเคยครับ Streaming endpoint ก็มีหลากหลาย Tier ซึ่งมีข้อจำกัด และราคาที่แตกต่างกัน

หากสิ้นสุดการ Live แล้วต้องกลับมา Stop Service นี้ด้วยนะครับ

สุดท้ายแล้วเราก็จะได้รับ Streaming URL ตามแต่ละ Protocol ออกมาให้ใช้งาน

Demo

ถ้าลองมองย้อนกลับไปในขั้นตอนของการสร้าง Live event จะพบว่ามีงั้นตอนหลักๆ ที่ทาง Azure แนะนำไว้ทั้งหมด 5 ขั้นตอน

ถึงจนถึงตอนนี้ผู้อ่านที่ทำตามขั้นตอนต่างๆ จะครอบคลุมในขั้นตอนที่ 2–4 เรียบร้อยแล้ว หลังจากนี้เราจะทำขั้นตอนที่ 1 และ 5 นั่นคือการส่ง Input และนำ Output ไปใช้งาน

Steps to create a live event

ในส่วนของการส่ง Input เราจะใช้ Open Broadcaster Software หรือ OBS นั่นเอง โดยการตั้งค่านั้นทำได้โดยเข้าไปที่ Settings -> Stream และกรอกรายละเอียด Input URL ลงไปในช่อง Server และ ใช้ค่า “default” (ไม่มีเครื่องหมายคำพูด) ลงไปในช่อง Stream Key

Setting stream input to Azure Media Services

เมื่อเริ่ม Stream ทางผู้ชมสามารถดูได้ผ่าน Output URL ได้ทันที โดยทาง Azure เองก็ได้เตรียมเครื่องมือสำหรับทดสอบที่ Azure Media Player ซึ่งสามารถปรับแต่งค่าต่างๆ ได้ตามต้องการ เพียงเท่านี้ก็สามารถส่งลิงก์ให้เพื่อนๆ รับชมกันได้โดยไม่ต้องเขียนโปรแกรมกันเลย

Azure Media Player

หลังจากที่ได้ทำตามบทความนี้แล้ว เมื่อเลิกใช้งานอย่าลืม Stop Service ต่างๆ ที่ได้เปิดไว้ก่อนหน้านี้ หรือหากไม่ใช้งานแล้วให้ดำเนินการลบออกทันทีเพื่อป้องกันการคิดค่าใช้จ่ายเพิ่มเติม

สรุปภาพรวม

Azure Media Services เป็นอีกหนึ่งบริการบนคลาวด์แพลตฟอร์มที่สามารถตอบโจทย์ในหลายๆ ด้าน แต่สำหรับการใช้งานจริงอาจต้องพิจารณาปัจจัยในหลายๆ เรื่องเพิ่มเติม โดยเฉพาะจำนวนผู้ชม และค่าใช้จ่ายแผงอื่นๆ

สุดท้ายนี้หวังว่าบทความนี้จะช่วยให้ผู้อ่านรู้จักบริการนี้เพิ่มขึ้น ไม่มากก็น้อยครับ

– Azure Fundamentals and Azure Administrator Certified

--

--