Thumbnail sheet (ภาพรวมเฟรม) คือไฟล์ภาพเดียวที่รวมเฟรมสำคัญจากวิดีโอไว้ด้วยกัน ต้นกำเนิดมาจาก "แผ่นรูปถ่าย" (photo sheets) ที่นิยมสมัยก่อนเมื่อคนยังพิมพ์รูปจากฟิล์มและการ์ด SD แผ่นรูปเหล่านั้นทำหน้าที่เป็นตัวอย่างภาพก่อนพิมพ์ Thumbnail sheet ทำหน้าที่คล้ายกันแต่สำหรับไฟล์วิดีโอ: ช่วยดูเนื้อหาและคุณภาพวิดีโอได้เร็วกว่าการเปิดเล่นในโปรแกรมเล่นวิดีโอและขยับหัวเล่นทีละนาที
โชคดีที่ไม่ต้องดึงเฟรมออกมาและจัดเรียงเอง มีเครื่องมือช่วยสร้าง Thumbnail sheet จากวิดีโอได้ง่าย ในบทความนี้จะแนะนำ 2 วิธีใน Linux
ใช้ GNOME Videos (Totem)
หากคุณใช้ GNOME โปรแกรมเล่นวิดีโอเริ่มต้น "Videos" (GNOME Videos หรือก่อนหน้านี้เรียกว่า Totem) มีเมนูสร้าง Thumbnail sheet อยู่แล้ว
- เปิดโปรแกรม Videos
- เปิดไฟล์วิดีโอที่ต้องการ
- จากเมนูแอปพลิเคชัน เลือก Create Screenshot Gallery…
- หน้าต่างจะแสดงตัวเลือก: ปรับความกว้างแต่ละเฟรม เลือกจำนวนภาพอัตโนมัติหรือกำหนดเอง
- ตั้งชื่อไฟล์ด้านบนกลาง แล้วกด Save ด้านบนขวา
ไฟล์ที่ได้ใช้งานได้ดี แต่หากไม่พอใจ ไม่สามารถปรับแต่งเพิ่มได้ ต้องใช้เครื่องมือที่มีตัวเลือกมากกว่า
ใช้ FFmpeg
FFmpeg เป็นเครื่องมือบรรทัดคำสั่งอันทรงพลังและซับซ้อน สามารถสร้าง Thumbnail sheet ได้ แต่ต้องเขียนคำสั่งที่ค่อนข้างยาว ตัวอย่างคำสั่ง:
ffmpeg -ss 3 -i "/path/to/video/file.mp4" -frames 5 -vf "select=not(mod(n\,3000)),scale=320:240,tile=4x3" -vsync vfr -q:v 10 image-sheet-filename_%03d.jpg
คำอธิบายพารามิเตอร์สำคัญ:
-ss 3: ข้าม 3 วินาทีแรกของวิดีโอ (มักเป็นโฆษณา/โชว์ชื่อ)-i: ไฟล์วิดีโอต้นทาง-frames 5: จำนวนเฟรมที่จะจับ-q:v 10: คุณภาพการบีบอัดภาพ (ค่าต่ำ = คุณภาพดี)
ส่วนที่ซับซ้อนที่สุดคือ -vf "select=not(mod(n\,3000)),scale=320:240,tile=4x3" ซึ่งทำ 3 อย่างพร้อมกัน:
select=not(mod(n\,3000)): เลือกเฟรมทุก 3000 เฟรม (ลดค่า = จับเฟรมบ่อยขึ้น)scale=320:240: กำหนดขนาดแต่ละเฟรมในชีท (ควรเป็นสัดส่วนของความละเอียดต้นฉบับ)tile=4x3: จัดเรียงเฟรมในชีท 4 คอลัมน์ x 3 แถว
ชื่อไฟล์เอาต์พุท filename_%03d.jpg หมายถึง หากเฟรมเยอะกว่าจะใส่ในชีทเดียวได้ FFmpeg จะสร้างไฟล์หลายไฟล์ต่อท้ายตัวเลข 001, 002...
สูตรคำนวณค่า mod(n\,NUMBER) เพื่อควบคุมจำนวนไฟล์เอาต์พุท:
Total Frames In Video / Number Of Tiles Per Sheet / Desired Number Of Sheets
นอกจากนี้ FFmpeg ยังสามารถแยกเฟรมเป็นไฟล์ภาพเดี่ยวๆ ได้อีกด้วย