การเข้ารหัสวิดีโอเป็นกระบวนการบีบอัดสัญญาณวิดีโอดิจิทัลให้เป็นรูปแบบที่เหมาะสมสำหรับการจัดเก็บและส่งผ่านเครือข่ายโดยสูญเสียคุณภาพน้อยที่สุด หากไม่มีการเข้ารหัส วิดีโอ 4K ที่ไม่ได้บีบอัดหนึ่งนาทีจะใช้พื้นที่ประมาณ 30 GB ทำให้การส่งผ่านอินเทอร์เน็ตเป็นไปไม่ได้ ตามรายงาน Sandvine Global Internet Phenomena (2025) วิดีโอคิดเป็น 65% ของปริมาณการใช้อินเทอร์เน็ตทั้งหมด และการเข้ารหัสคือเทคโนโลยีสำคัญที่ทำให้สิ่งนี้เป็นไปได้
ประเด็นสำคัญ
การเข้ารหัสวิดีโอ คือกระบวนการแปลงสัญญาณวิดีโอที่ไม่ได้บีบอัดเป็นรูปแบบดิจิทัลโดยใช้อัลกอริธึมการบีบอัด อัลกอริธึมเหล่านี้ซึ่งทำงานในตัวแปลงสัญญาณวิดีโอ จะลบข้อมูลที่ซ้ำซ้อนทั้งในโดเมนเชิงพื้นที่ (ภายในเฟรมเดียว) และโดเมนเวลา (ระหว่างเฟรมที่ต่อเนื่องกัน)
วิดีโอที่ไม่ได้บีบอัดคือลำดับของเฟรม แต่ละเฟรมถูกจัดเก็บเป็นอาร์เรย์ของพิกเซลในรูปแบบ RGB หรือ YUV หากไม่มีการบีบอัด หนึ่งวินาทีของวิดีโอ 1080p ที่ 30 FPS ต้องการหน่วยความจำประมาณ 1.5 GB ตัวแปลงสัญญาณ H.264 บีบอัดสตรีมนี้เหลือ 3–5 Mbps ซึ่งน้อยกว่าขนาดเดิม 2500 เท่า
ตัวแปลงสัญญาณวิดีโอใช้การบีบอัดสองประเภท: การบีบอัดภายในเฟรม (intra-frame) และการบีบอัดระหว่างเฟรม (inter-frame) การบีบอัดภายในเฟรม ถูกนำไปใช้กับแต่ละเฟรมอย่างอิสระ โดยใช้อัลกอริธึมที่คล้ายกับ JPEG: การแปลงโคไซน์ไม่ต่อเนื่อง (DCT), การหาปริมาณ และการเข้ารหัสเอนโทรปี
การบีบอัดระหว่างเฟรม วิเคราะห์ความแตกต่างระหว่างเฟรมที่ต่อเนื่องกันและเข้ารหัสเฉพาะการเปลี่ยนแปลงเท่านั้น หากพื้นหลังหยุดนิ่ง ตัวแปลงสัญญาณจะส่งเฟรมเต็มเพียงครั้งเดียว (I-frame) จากนั้นส่งเฉพาะความแตกต่าง (P- และ B-frames) ซึ่งช่วยลดปริมาณข้อมูลสำหรับฉากที่มีการเคลื่อนไหวน้อยได้อย่างมาก
การเลือกตัวแปลงสัญญาณวิดีโอ กำหนดอัตราส่วนคุณภาพต่อขนาด ความเข้ากันได้กับอุปกรณ์ และค่าธรรมเนียมใบอนุญาต ตัวแปลงสัญญาณหลักสี่ตัวครองตลาดแอปพลิเคชันมือถือ: H.264 (AVC), H.265 (HEVC), VP9 และ AV1
| ตัวแปลงสัญญาณ | มาตรฐาน | ปี | การบีบอัดเทียบกับ H.264 | การอนุญาต |
|---|---|---|---|---|
| H.264/AVC | MPEG-4 Part 10 | 2003 | 1 เท่า (พื้นฐาน) | ค่าลิขสิทธิ์ (MPEG LA) |
| H.265/HEVC | MPEG-H Part 2 | 2013 | มีประสิทธิภาพมากขึ้น 40–50% | ค่าลิขสิทธิ์ (สองกลุ่ม) |
| VP9 | 2013 | มีประสิทธิภาพมากขึ้น 30–40% | ฟรี | |
| AV1 | AOM | 2018 | มีประสิทธิภาพมากขึ้น 50–60% | ปลอดค่าลิขสิทธิ์ |
H.264 (AVC — Advanced Video Coding) ยังคงเป็นตัวแปลงสัญญาณวิดีโอที่เข้ากันได้มากที่สุด: รองรับโดยอุปกรณ์มือถือ เบราว์เซอร์ และสมาร์ททีวีทั้งหมดตั้งแต่ปี 2005 การถอดรหัส H.264 แบบเร่งด้วยฮาร์ดแวร์มีให้ใช้งานแม้ในอุปกรณ์ราคาประหยัด ทำให้เหมาะสำหรับสตรีมสากล
ข้อเสียหลักของ H.264 คือ ประสิทธิภาพการบีบอัดค่อนข้างต่ำ เมื่อเทียบกับตัวแปลงสัญญาณสมัยใหม่ ที่บิตเรตเดียวกัน H.265 และ AV1 ให้คุณภาพที่สูงกว่าอย่างเห็นได้ชัด ซึ่งสำคัญอย่างยิ่งสำหรับเนื้อหา HDR และ 4K
H.265 (HEVC — High Efficiency Video Coding) ให้การบีบอัดที่ดีกว่า H.264 40–50% ที่คุณภาพภาพเดียวกัน ซึ่งทำได้โดยการแบ่งเฟรมเป็นบล็อกที่ยืดหยุ่นมากขึ้น (CTU สูงสุด 64×64 พิกเซลแทน 16×16) และอัลกอริธึมการทำนายการเคลื่อนไหวที่ปรับปรุงแล้ว
HEVC รองรับบนอุปกรณ์ Apple ทั้งหมด (ตั้งแต่ iPhone 6), Android (ตั้งแต่เวอร์ชัน 5.0 พร้อมการถอดรหัสฮาร์ดแวร์) และสมาร์ททีวีส่วนใหญ่ ค่าธรรมเนียมใบอนุญาต HEVC สูงกว่า H.264 และจัดการโดยกลุ่มสิทธิบัตรสองกลุ่ม ซึ่งทำให้การใช้งานทางกฎหมายซับซ้อน
AV1 เป็นตัวแปลงสัญญาณวิดีโอที่พัฒนาโดย Alliance for Open Media (AOM) กลุ่มความร่วมมือที่นำโดย Google, Netflix, Amazon, Intel และ Mozilla AV1 ให้การบีบอัดที่ดีกว่า H.264 50–60% และปลอดค่าลิขสิทธิ์โดยสมบูรณ์ ทำให้ดึงดูดสำหรับบริการสตรีมมิ่ง
ข้อเสียหลักของ AV1 คือ ความซับซ้อนในการคำนวณสูง ของการเข้ารหัส การเข้ารหัส AV1 อาจช้ากว่า H.264 5–10 เท่าบนฮาร์ดแวร์เดียวกัน แม้ว่าการถอดรหัสฮาร์ดแวร์จะเริ่มปรากฏบนอุปกรณ์ปี 2024–2025 (Snapdragon 8 Gen 3, Apple A17 Pro)
ตัวแปลงสัญญาณเสียง ในแอปพลิเคชันมือถือมีความสำคัญไม่น้อยไปกว่าตัวแปลงสัญญาณวิดีโอ วิดีโอสตรีมมิ่งต้องใช้เสียงที่มีความหน่วงต่ำ คุณภาพสูง และความเข้ากันได้กับคอนเทนเนอร์ MP4 และ WebM ตัวแปลงสัญญาณเสียงหลักสามตัวครอบคลุม 99% ของแอปพลิเคชันสตรีมมิ่งบนมือถือ
AAC (Advanced Audio Coding) เป็นผู้สืบทอดของ MP3 พัฒนาโดย MPEG ในปี 1997 และกลายเป็นตัวแปลงสัญญาณเสียงมาตรฐานสำหรับ iTunes, YouTube และ Android AAC ให้คุณภาพเท่ากับ MP3 ที่บิตเรตต่ำกว่า 30% และรองรับเสียงหลายช่องสัญญาณสูงสุด 7.1
สำหรับแอปพลิเคชันมือถือ แนะนำให้ใช้ AAC-LC ที่ 128–192 kbps สำหรับสเตอริโอ และ AAC-HE สำหรับบิตเรตต่ำ 32–64 kbps การถอดรหัส AAC ด้วยฮาร์ดแวร์มีให้ใช้งานบนอุปกรณ์สมัยใหม่ทั้งหมด ช่วยลดการใช้พลังงาน
Opus เป็นตัวแปลงสัญญาณเสียงแบบเปิดจาก IETF (RFC 6716) ให้คุณภาพดีที่สุดในบรรดาตัวแปลงสัญญาณเสียงทั้งหมดที่บิตเรตตั้งแต่ 6 ถึง 510 kbps Opus รวม SILK (อัลกอริธึมสำหรับเสียงพูด) และ CELT (สำหรับดนตรี) และเปลี่ยนโหมดโดยอัตโนมัติตามเนื้อหา
Opus ใช้ใน WebRTC สำหรับการโทรวิดีโอ ในแอปพลิเคชัน Spotify และ Discord และรองรับใน HLS ตั้งแต่ iOS 11 และ Android 5.0 ความหน่วงต่ำของ Opus (5–26 ms เทียบกับ 40–100 ms ของ AAC) ทำให้เป็นตัวเลือกที่ต้องการสำหรับการถ่ายทอดสดและการประชุมทางวิดีโอ
พารามิเตอร์การเข้ารหัส กำหนดขนาดไฟล์สุดท้าย คุณภาพวิดีโอ และความเข้ากันได้กับอุปกรณ์ นักพัฒนาแอปพลิเคชันมือถือต้องเลือกการตั้งค่าที่เหมาะสมที่สุดสำหรับเนื้อหาแต่ละประเภท: ภาพยนตร์ การถ่ายทอดกีฬา เนื้อหาที่ผู้ใช้สร้างขึ้น
บิตเรต คือจำนวนบิตที่ใช้ในการเข้ารหัสวิดีโอหนึ่งวินาที มี CBR (บิตเรตคงที่) สำหรับการถ่ายทอดสด VBR (บิตเรตแปรผัน) พร้อมคุณภาพเป้าหมายสำหรับการจัดเก็บ และ ABR (บิตเรตเฉลี่ย) สำหรับการสตรีม
| ความละเอียด | H.264 (แนะนำ) | H.265/HEVC | AV1 |
|---|---|---|---|
| 360p | 400–800 kbps | 250–500 kbps | 200–400 kbps |
| 720p | 1.5–4 Mbps | 1–2.5 Mbps | 0.8–2 Mbps |
| 1080p | 3–8 Mbps | 2–5 Mbps | 1.5–4 Mbps |
| 4K (2160p) | 15–40 Mbps | 10–25 Mbps | 8–20 Mbps |
CRF (Constant Rate Factor) คือพารามิเตอร์การเข้ารหัสใน x264 และ x265 ที่กำหนดคุณภาพเป้าหมายแทนบิตเรตคงที่ สเกล CRF ตั้งแต่ 0 (ไม่สูญเสีย) ถึง 51 (คุณภาพแย่ที่สุด) โดย 18–28 เป็นช่วงการทำงาน สำหรับแอปพลิเคชันมือถือ แนะนำ CRF 23 สำหรับ x264 และ CRF 25 สำหรับ x265
CRF 18–20 ให้ คุณภาพสูง สำหรับเนื้อหาการนำเสนอและการรับชมแบบออฟไลน์ CRF 24–28 เหมาะสำหรับการสตรีมและเนื้อหาที่ผู้ใช้สร้างขึ้น ซึ่งขนาดไฟล์สำคัญกว่าคุณภาพสัมบูรณ์
มาตรฐาน H.264 กำหนดโปรไฟล์ (Baseline, Main, High) และระดับ (Level 1–5.2) ที่จำกัดพารามิเตอร์วิดีโอสูงสุด Baseline Profile เข้ากันได้กับทุกอุปกรณ์แต่ไม่รองรับ B-frames High Profile ให้คุณภาพสูงสุดและใช้สำหรับเนื้อหา 1080p
สำหรับการสตรีม 4K จำเป็นต้องใช้ Level 5.1 ขึ้นไป ซึ่งรองรับโดยอุปกรณ์มือถือส่วนใหญ่ตั้งแต่ปี 2018 ระดับของตัวแปลงสัญญาณกำหนดความละเอียดสูงสุด บิตเรต และขนาดบัฟเฟอร์ รับประกันการถอดรหัสที่ถูกต้องบนอุปกรณ์ที่ได้รับการรับรองทั้งหมด
การเข้ารหัสสำหรับการสตรีม แตกต่างจากการเข้ารหัสสำหรับจัดเก็บเนื่องจากต้องสร้างตัวแปรคุณภาพหลายแบบ (ABR ladder) และปรับให้เหมาะสมสำหรับการส่งผ่านเครือข่าย ผู้ให้บริการเนื้อหาใช้การแปลงรหัสแบบเรียลไทม์หรือการเข้ารหัสล่วงหน้าสำหรับ VOD
ABR ladder ทั่วไปสำหรับแอปพลิเคชันมือถือประกอบด้วย 4–6 ตัวแปร: ตั้งแต่ 144p (200 kbps) สำหรับเครือข่ายที่อ่อนแอถึง 1080p (8 Mbps) สำหรับ Wi-Fi ความละเอียดที่แนะนำ: 144p, 240p, 360p, 480p, 720p, 1080p สำหรับเนื้อหา 4K เพิ่ม 1440p และ 2160p
val mediaCodec = MediaCodec.createEncoderByType(
MediaFormat.MIMETYPE_VIDEO_AVC
)
val format = MediaFormat.createVideoFormat(
MediaFormat.MIMETYPE_VIDEO_AVC,
1280, 720
).apply {
setInteger(MediaFormat.KEY_BIT_RATE, 3_000_000)
setInteger(MediaFormat.KEY_FRAME_RATE, 30)
setInteger(MediaFormat.KEY_I_FRAME_INTERVAL, 2)
setInteger(MediaFormat.KEY_PROFILE,
MediaCodecInfo.CodecProfileLevel.AVCProfileHigh)
setInteger(MediaFormat.KEY_LEVEL,
MediaCodecInfo.CodecProfileLevel.AVCLevel31)
}
mediaCodec.configure(format, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE)
สำหรับการถ่ายทอดสด ความหน่วงต่ำมีความสำคัญเป็นพิเศษ การตั้งค่าการเข้ารหัสควรลดความหน่วงเข้าออกของตัวแปลงสัญญาณ: แนะนำขนาด GOP 1–2 วินาที (ทุก 30–60 เฟรม) ควรปิดหรือลด B-frames และใช้ Baseline Profile สำหรับ H.264
โปรโตคอลความหน่วงต่ำสมัยใหม่ — LL-HLS และ CMAF-Low Latency — ต้องการการเข้ารหัสแบบแยกส่วนกับเซ็กเมนต์ 1–2 วินาทีและรองรับการดาวน์โหลดบางส่วน (Partial Segments) ตัวแปลงสัญญาณต้องรองรับ moof-box ในแต่ละเซ็กเมนต์สำหรับ MP4 แบบแยกส่วน
คำถามที่พบบ่อย
การเข้ารหัสวิดีโอ คือกระบวนการบีบอัดสัญญาณวิดีโอดิจิทัลโดยใช้ตัวแปลงสัญญาณเพื่อลดปริมาณข้อมูล ในแอปพลิเคชันมือถือ การเข้ารหัสช่วยให้สามารถส่งและจัดเก็บวิดีโอ โดยลดขนาดลงหลายร้อยเท่าโดยไม่สูญเสียคุณภาพที่สังเกตได้บนหน้าจออุปกรณ์
H.264 ให้ความเข้ากันได้สูงสุดกับอุปกรณ์รุ่นเก่า ในขณะที่ H.265 มีประสิทธิภาพมากกว่า 40–50% ที่คุณภาพเท่ากัน สำหรับเนื้อหา 1080p และต่ำกว่า H.264 ก็เพียงพอ สำหรับ 4K แนะนำ H.265 หรือ AV1 หากอุปกรณ์รองรับ
บิตเรต คือปริมาณข้อมูลต่อวินาทีของวิดีโอ สำหรับ 1080p บิตเรตที่เหมาะสมคือ 3–8 Mbps สำหรับ H.264 และ 2–5 Mbps สำหรับ H.265 การเลือกขึ้นอยู่กับเนื้อหา: ฉากเคลื่อนไหว (กีฬา) ต้องการบิตเรตสูงกว่า ฉากนิ่ง (สัมภาษณ์) ต้องการบิตเรตต่ำกว่า
VP9 เป็นรุ่นก่อนของ AV1 จาก Google ให้การบีบอัดในระดับ H.265 AV1 บีบอัดมีประสิทธิภาพมากกว่า VP9 20–30% แต่ต้องใช้ทรัพยากรการเข้ารหัสมากกว่า 5–10 เท่า VP9 เหมาะสำหรับ YouTube, AV1 สำหรับ Netflix และบริการสตรีมมิ่งสมัยใหม่
สำหรับการถ่ายทอดสด ใช้ H.264 Baseline Profile ด้วย GOP 1–2 วินาที ไม่มี B-frames บิตเรต 2–4 Mbps สำหรับ 1080p เปิดใช้งาน MP4 แบบแยกส่วน (CMAF) สำหรับ LL-HLS และใช้การเข้ารหัสด้วยฮาร์ดแวร์ผ่าน MediaCodec หรือ VideoToolbox
สรุป
เราจะพัฒนาแอปพลิเคชันบนมือถือแบบครบวงจร
IT Sectr สร้างแอปพลิเคชัน iOS และ Android สำหรับสตาร์ทอัพและธุรกิจตั้งแต่ปี 2017 เราจะให้คำแนะนำและเสนอวิธีแก้ปัญหาที่ดีที่สุดแก่คุณ
อ่านเพิ่มเติม