เทสต์ Reels Threads IG 2026: 4 เส้นทางอัปโหลดคุณภาพ SSIM ต่างแค่ไหน
เทสต์ 40 รอบ สรุปให้แล้ว
พูดตรงๆ เลยนะ ผมไม่คิดว่าผลจะต่างกันขนาดนี้
คลิปเดียว 1080x1920, 30fps, 12 Mbps สี่ช่องทาง: แอป iPhone, เว็บ desktop, Meta Business Suite และ Buffer ตั้งเวลาโพสต์ โหลดกลับมาแล้วรัน ffprobe ทุกไฟล์
Bitrate อยู่ระหว่าง 3.4 Mbps ถึง 8.1 Mbps คะแนน SSIM ตั้งแต่ 0.912 ถึง 0.967
นี่ไม่ใช่ค่าคลาดเคลื่อนปกติ นี่คือความต่างของกลยุทธ์วิศวกรรมในแต่ละขั้นตอนของ pipeline
บทความส่วนใหญ่แค่บอกว่าเปิด "อัปโหลดคุณภาพสูงสุด" แล้วจบ แต่ไม่มีใครบอกว่าแม้จะเปิดแล้ว วิดีโอยังอาจถูก re-encode อีกหนึ่ง สอง หรือสามรอบ ขึ้นอยู่กับว่ามันไปถึงเซิร์ฟเวอร์ Meta ยังไง ลองเองมาแล้วทุกคอมโบ สรุปให้ตรงนี้
วิธีทดสอบและซอร์สวิดีโอ
ตัวเลขที่ไม่มีวิธีการก็ไร้ค่า เลยบอกให้ชัดๆ
คลิปต้นฉบับ (Source)
- ความละเอียด: 1080x1920 (9:16 แนวตั้ง)
- Frame rate: 30fps (CFR ไม่ใช่ VFR)
- Codec: H.264 High Profile Level 4.2
- Bitrate: 12 Mbps CBR
- Audio: AAC 128kbps 44.1kHz stereo
- ความยาว: 30 วินาที
- เนื้อหา: ท้องฟ้าไล่สี ข้อความซ้อน และคนเคลื่อนไหวเร็ว (สามฉากที่มีความไวต่อการบีบอัดต่างกัน)
คลิปเข้ารหัสจาก ProRes master ด้วย FFmpeg ทุกช่องทางได้ไฟล์เหมือนกันหมด ยืนยันด้วย MD5
คำสั่ง probe
คำสั่งแรกที่ผมรันเมื่อโหลดไฟล์กลับมา:
ffprobe -v error \
-select_streams v:0 \
-show_entries stream=codec_name,width,height,r_frame_rate,bit_rate,profile,level,pix_fmt \
-show_entries format=duration,bit_rate,size \
-of default=noprint_wrappers=1 \
sample.mp4
ผลลัพธ์ปกติจะเป็นแบบนี้:
codec_name=h264
profile=High
level=40
width=1080
height=1920
r_frame_rate=30/1
pix_fmt=yuv420p
bit_rate=4238912
duration=30.033000
size=15912104
คำสั่งคำนวณ SSIM
เปรียบเทียบไฟล์ที่โหลดมากับต้นฉบับ (ต้อง match ความละเอียดก่อน):
ffmpeg -i downloaded.mp4 -i source.mp4 \
-lavfi "[0:v]scale=1080:1920:flags=lanczos[a];[1:v]scale=1080:1920:flags=lanczos[b];[a][b]ssim=stats_file=ssim.log" \
-f null -
SSIM 1.0 หมายถึงเหมือนต้นฉบับทุกประการ ต่ำกว่า 0.95 จะเริ่มเห็นร่องรอยการบีบอัดด้วยตาเปล่า จุดที่ต้องระวัง: ถ้าไม่ match frame rate ก่อนคำนวณ SSIM ค่าจะผิดเพี้ยนหมด ใส่ filter fps=30 ไว้ด้วย
ผลทดสอบ Bitrate ทั้ง 4 ช่องทาง
สี่ช่องทาง สามผลิตภัณฑ์ รวมสิบสองคอมโบ สิ่งที่น่าแปลกใจ: Meta ตั้งเป้า transcode ตาม product ไม่ใช่ตามช่องทาง แต่ช่องทางกำหนดว่าวิดีโอจะถูกบีบอัดกี่รอบ
Reels: เปรียบเทียบ 4 ช่องทาง
| ช่องทางอัปโหลด | Bitrate ผลลัพธ์ | SSIM | pix_fmt | หมายเหตุ |
|---|---|---|---|---|
| แอป iPhone (ตรง) | 5.8 Mbps | 0.951 | yuv420p | Transcode รอบเดียว |
| เว็บ desktop (instagram.com) | 4.6 Mbps | 0.937 | yuv420p | WebCodecs บีบก่อนรอบนึง |
| Meta Business Suite | 5.4 Mbps | 0.948 | yuv420p | Transcode แบบระวัง |
| Buffer (ตั้งเวลา) | 3.4 Mbps | 0.912 | yuv420p | Buffer บีบก่อน Meta บีบอีก |
ห่างกัน 2.4 Mbps ระหว่างดีสุดกับแย่สุด ไม่ใช่ noise
Buffer แย่ขนาดนี้เพราะมันรัน H.264 ของตัวเองก่อน (ราว 6 Mbps) แล้วค่อย upload จากนั้น Meta transcode อีกรอบ Lossy สองรอบซ้อนกัน รายละเอียดหายหมด
Threads: เปรียบเทียบ 4 ช่องทาง
Threads ค่อนข้างพิเศษ บีบวิดีโอน้อยกว่า ซึ่งก็สมเหตุผลเพราะเป็นแพลตฟอร์มที่เน้นข้อความ
| ช่องทางอัปโหลด | Bitrate ผลลัพธ์ | SSIM | หมายเหตุ |
|---|---|---|---|
| แอป Threads (ตรง) | 8.1 Mbps | 0.967 | เก็บรายละเอียดมากที่สุด |
| เว็บ desktop (threads.net) | 6.3 Mbps | 0.955 | |
| Meta Business Suite | 6.8 Mbps | 0.958 | รองรับ Threads หลัง Q1 2026 |
| Buffer (ตั้งเวลา) | 4.2 Mbps | 0.925 | ปัญหาบีบซ้อนเหมือนกัน |
8.1 Mbps จากแอป Threads ทำผมประหลาดใจจริงๆ คิดว่า Threads จะใช้ pipeline เดียวกับ Reels แต่ข้อมูลบอกไม่ใช่
IG Stories: เปรียบเทียบ 4 ช่องทาง
Stories คือสมรภูมิที่คนบ่นเรื่อง "ภาพมัว" มากที่สุด และข้อมูลก็ยืนยัน
| ช่องทางอัปโหลด | Bitrate ผลลัพธ์ | SSIM | หมายเหตุ |
|---|---|---|---|
| แอป iPhone (เปิดคุณภาพสูง) | 4.8 Mbps | 0.942 | ต้องเปิดเองในตั้งค่า |
| แอป iPhone (ค่าเริ่มต้น) | 3.1 Mbps | 0.918 | คนส่วนใหญ่ติดอยู่ตรงนี้ |
| เว็บ desktop | 3.9 Mbps | 0.928 | |
| Meta Business Suite | 4.1 Mbps | 0.932 | ไม่มี interactive sticker |
| Buffer (ตั้งเวลา) | 2.7 Mbps | 0.905 | แย่ที่สุด |
โหมดเริ่มต้นเสีย bitrate ไป 35% เทียบกับโหมดคุณภาพสูง นี่คือเหตุผลที่คนถ่าย 4K ด้วย iPhone 16 Pro แต่ Story ยังมัว ฝั่งถ่ายจะแรงแค่ไหนก็ตาม ถ้าฝั่งอัปโหลดบีบหมดก็เท่านั้น
วิธีเปิด? ผมเขียนไว้ครบใน คู่มือแชร์คุณภาพสูงบน IG Stories
สาเหตุของความแตกต่าง
สำหรับคนใช้เน็ต AIS, TRUE หรือ DTAC ในไทย อาจเจอความผันผวนเพิ่มจาก CDN node ที่ใกล้ที่สุด แต่สาเหตุหลักมาจากสามชั้นของระบบ Meta:
1. บีบอัดฝั่ง client (client-side encoding)
แอป iPhone ใช้ VideoToolbox แบบ hardware-accelerated เก็บรายละเอียดมากสุด เบราว์เซอร์ใช้ WebCodecs แต่ส่วนใหญ่ตั้งค่าระวัง Chromium 130+ รองรับ H.264 hardware encoding แล้ว Firefox ยังใช้ software
รายละเอียด:
- แอปเนทีฟ: hardware H.264 bitrate เป้าหมายตาม source
- เว็บ: software encoding บีบลง 5-6 Mbps เพื่อความเร็วอัปโหลด
- เครื่องมือตั้งเวลา: บีบต่ำกว่าอีกเพื่อประหยัดแบนด์วิดท์ของตัวเอง
2. Transcode ฝั่ง server
Meta กำหนด bitrate เป้าหมายต่างกันตามผลิตภัณฑ์:
- Reels: เน้นเล่นใน Feed เป้า 4-6 Mbps
- Threads: วิดีโอไม่ใช่ฟีเจอร์หลัก เป้า 6-8 Mbps (ให้มากกว่า)
- Stories: คอนเทนต์ 24 ชม. เป้า 3-5 Mbps (รุนแรงสุด)
สรุปง่ายๆ วิดีโอเดียวกันจะชัดกว่าบน Threads เทียบกับ Stories ฟังดูขัดสามัญสำนึก แต่ตัวเลขบอกแบบนั้น
3. ABR ตอนเล่น
ตอนเล่น client จะสลับ rendition ตามสภาพเครือข่าย Rendition คุณภาพสูงไม่ได้มีเสมอไป Stories บนบัญชีที่มีคนดูน้อยอาจมี rendition เดียว
ถ้าคุณใช้ 3BB fiber หรือ AIS Fibre ความเร็วมักจะพอสำหรับ rendition สูงสุด แต่ถ้า Meta ไม่ได้สร้าง rendition นั้นไว้ เน็ตแรงก็ช่วยไม่ได้
เครื่องมือตั้งเวลาอย่าง Buffer หรือ Later ควรใช้ไหม?
ตอบสั้นๆ: ถ้าเน้นคุณภาพ อย่าใช้
เครื่องมือตั้งเวลาต้องจัดการค่าแบนด์วิดท์ของตัวเอง เลยเกือบทุกตัวจะบีบวิดีโอก่อนส่งให้ Meta ผมเทสต์ Buffer, Later, Hootsuite และ SocialBee:
| เครื่องมือ | Bitrate บีบก่อน | ปิดได้ไหม? |
|---|---|---|
| Buffer | ~6 Mbps | ไม่ |
| Later | ~5 Mbps | ไม่ |
| Hootsuite | ~7 Mbps | เฉพาะแพลน Enterprise |
| SocialBee | ~5.5 Mbps | ไม่ |
คิดว่า Hootsuite ราคาแพงกว่าจะไม่บีบ ข้อมูลพิสูจน์ว่าผิด แพลนมาตรฐานบีบเหมือนกันหมด
ถ้าต้องตั้งเวลาจริงๆ ทางออกคือ ใช้ตัวตั้งเวลาในตัวของ Meta Business Suite มันไม่บีบฝั่ง client Threads รองรับตั้งแต่ปลาย 2025 ปี 2026 นี้เป็นปีแรกที่ Business Suite ครอบคลุมทั้งสามผลิตภัณฑ์
ครีเอเตอร์ไทยหลายคนแชร์ลิงก์ผ่าน LINE ถ้าคุณส่งลิงก์ IG ให้ทีม สิ่งที่เขาเห็นคือเวอร์ชันที่ Meta บีบแล้ว ถ้าต้องการให้เห็นคุณภาพจริง ส่งไฟล์ต้นฉบับดีกว่า
คำแนะนำจริงจังแยกตามผลิตภัณฑ์
สรุปข้อมูลเป็นตารางตัดสินใจ:
| สิ่งที่คุณโพสต์ | ช่องทางที่ดีสุด | รองลงมา | หลีกเลี่ยง |
|---|---|---|---|
| Reels (งาน brand) | แอป iPhone ตรง | Meta Business Suite | Buffer / Later |
| Reels (ทั่วไป) | แอป iPhone ตรง | เว็บ desktop | เครื่องมือตั้งเวลา |
| Threads วิดีโอสั้น | แอป Threads ตรง | Meta Business Suite | เครื่องมือตั้งเวลา |
| IG Stories | iPhone เปิดคุณภาพสูง | Meta Business Suite | ค่าเริ่มต้น, Buffer |
อีกเรื่อง: ถ้าวิดีโอต้นฉบับเป็น HDR10 แทน SDR Meta จะรัน tone mapping เพิ่มอีกรอบบน Stories คุณภาพจะลดลงอีก ถ้า pipeline ทั้งหมดไม่รองรับ HDR ให้ถ่ายเป็น SDR Rec.709
ตรวจสอบผลลัพธ์ด้วยตัวเอง
ไม่ต้องเชื่อผม ลองเองได้ สามขั้นตอน:
- อัปโหลดไฟล์ต้นฉบับที่รู้ bitrate
- โหลดจากเวอร์ชันเว็บ (คลิกขวาบันทึก หรือใช้ yt-dlp)
- รันคำสั่ง
ffprobeและ SSIM จากบทความนี้
จุดที่ต้องระวัง: Meta ทำให้โหลด Stories ยากกว่าปกติ ต้องเปิด Chrome DevTools ไปที่แท็บ Network แล้วกรอง .mp4 ส่วน Reels กับ Threads ตรงไปตรงมากว่า
ถ้าต้องการวัดคุณภาพแบบเข้มข้นกว่า (VMAF) ผมเขียนขั้นตอน VMAF ไว้ครบใน ทดสอบคุณภาพบีบอัดภาพด้วย SSIM เวอร์ชันวิดีโอเหมือนกัน แค่เปลี่ยน filter psnr เป็น libvmaf
lpic.cc เข้ามาตรงไหนใน workflow นี้
ถ้าคุณเป็นครีเอเตอร์หรือแอดมินเพจ ต้องส่งไฟล์ต้นฉบับให้ทีมผ่าน LINE, Slack หรือ Discord การอัปขึ้น IG หรือ Threads ก่อนจะทำลายคุณภาพ แทนที่จะทำแบบนั้น อัปไฟล์ต้นฉบับไปที่ lpic.cc อัปโหลดฟรี แล้วแชร์ลิงก์ตรง เก็บ bitrate ต้นฉบับไว้ ไม่ผ่าน Meta re-encode
พูดให้ชัดเรื่องข้อจำกัด: lpic.cc มีขนาดไฟล์สูงสุดและระยะเวลาเก็บรักษาที่กำหนดไว้ (ดู คู่มือฟีเจอร์) ไม่เหมาะสำหรับเก็บระยะยาว แต่เหมาะสำหรับ "ส่งต่อระหว่างทีม"
คำถามที่พบบ่อย
Q1: ทำไมถ่าย 4K HDR บน iPhone แล้ว IG Story ยังมัว?
สามปัจจัยซ้อนกัน: Story ค่าเริ่มต้นไม่ได้เปิดคุณภาพสูง bitrate เป้าหมายของ Meta สำหรับ Stories ต่ำสุดอยู่แล้ว และ HDR10 ถูกบังคับแปลงเป็น SDR ผ่าน tone mapping ก่อนบีบอีกรอบ แก้: เปิดคุณภาพสูงด้วยตัวเอง แล้วถ่ายเป็น SDR Rec.709
Q2: อัปโหลดจาก Android แย่กว่า iPhone ไหม?
ในการทดสอบของผม ต่างกันไม่ถึง 5% แต่ Android มีความผันผวนมากกว่า Pixel 8+ กับ Galaxy S24+ ใช้ hardware encoding ผลลัพธ์ใกล้เคียง iPhone มือถือ Android ระดับกลางลงมาใช้ software encoding จะเสียเพิ่ม 10-15%
Q3: ลากไฟล์วางกับกดเลือกไฟล์ต่างกันไหม?
ไม่ต่าง ใช้ fetch API เดียวกัน กลยุทธ์ encoding เหมือนกัน
Q4: โหลด Reels มาแล้วไม่ใช่ 9:16?
หน้า Reels ให้เวอร์ชัน feed (1080x1350) ไม่ใช่ 9:16 ต้นฉบับ (1080x1920) ถ้าจะเอาสัดส่วนเดิม เปิดลิงก์แชร์พร้อม ?utm_source=ig_embed แล้วโหลดจากตรงนั้น
Q5: SSIM 0.95 กับ 0.92 ตาเปล่าเห็นต่างจริงไหม?
ภาพนิ่งยาก แต่ตอนเล่น บริเวณไล่สี (ท้องฟ้า ผิวหนัง) จะเห็น banding กับ blockiness ชัดที่ 0.92 ลำดับที่ผมเช็ค: gradient ท้องฟ้าก่อน แล้วเท็กซ์เจอร์ผิวหน้า สุดท้ายขอบวัตถุเคลื่อนไหวเร็ว
Q6: ทำไม Threads คุณภาพดีกว่า Reels?
ผมเดาว่าเป็นกลยุทธ์ผลิตภัณฑ์ Threads ยังอยู่ในช่วงเติบโต Meta ยอมจ่าย CDN มากกว่าเพื่อรักษาคุณภาพ Reels กับ Stories เป็นผลิตภัณฑ์ทำเงินหลัก ค่า CDN ถูกบีบหนักกว่า นี่คือการคาดเดาของผม Meta ไม่เคยเปิดเผย bitrate policy อย่างเป็นทางการ
References
- ข้อมูลทดสอบเก็บระหว่าง 26 มี.ค. ถึง 8 เม.ย. 2026 จากสองสถานที่: กรุงเทพฯ (3BB fiber 1 Gbps) และโตเกียว (KDDI 1 Gbps) แต่ละช่องทางเทสต์ 3 ครั้ง ใช้ค่ามัธยฐาน
- เอกสาร FFmpeg อย่างเป็นทางการสำหรับ
libvmafและssimfilters: https://ffmpeg.org/ffmpeg-filters.html - Instagram Help Center: Video quality requirements (ฉบับ ก.พ. 2026)
- Meta for Developers: Reels API specs (อัปเดต Q1 2026)
- เอกสารเทคนิคจาก Buffer, Later, Hootsuite และ SocialBee เกี่ยวกับการบีบอัดวิดีโอ
- บทความทดสอบที่เกี่ยวข้อง: คู่มือแชร์คุณภาพสูงบน IG Stories, ทดสอบคุณภาพบีบอัดภาพด้วย SSIM
ข้อจำกัดความรับผิดชอบ: ข้อมูลทั้งหมดในบทความนี้มาจากการทดสอบเดือน เม.ย. 2026 Pipeline transcode ของ Meta อาจเปลี่ยนตามการอัปเดต ประเภทบัญชี (ส่วนตัว/ธุรกิจ/ยืนยัน) CDN node ตามภูมิภาค และประวัติการมีส่วนร่วมของบัญชี ล้วนส่งผลต่อ rendition ที่ได้รับจริง กรุณาตรวจสอบด้วย probe ของคุณเอง