Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Linux

วิธีสร้างภาพThumbnail Sheet จากวิดีโอใน Linux

Thumbnail sheet (ภาพรวมเฟรม) คือไฟล์ภาพเดียวที่รวมเฟรมสำคัญจากวิดีโอไว้ด้วยกัน ต้นกำเนิดมาจาก "แผ่นรูปถ่าย" (photo sheets) ที่นิยมสมัยก่อนเมื่อคนยังพิมพ์รูปจากฟิล์มและการ์ด SD แผ่นรูปเหล่านั้นทำหน้าที่เป็นตัวอย่างภาพก่อนพิมพ์ Thumbnail sheet ทำหน้าที่คล้ายกันแต่สำหรับไฟล์วิดีโอ: ช่วยดูเนื้อหาและคุณภาพวิดีโอได้เร็วกว่าการเปิดเล่นในโปรแกรมเล่นวิดีโอและขยับหัวเล่นทีละนาที

โชคดีที่ไม่ต้องดึงเฟรมออกมาและจัดเรียงเอง มีเครื่องมือช่วยสร้าง Thumbnail sheet จากวิดีโอได้ง่าย ในบทความนี้จะแนะนำ 2 วิธีใน Linux

ใช้ GNOME Videos (Totem)

หากคุณใช้ GNOME โปรแกรมเล่นวิดีโอเริ่มต้น "Videos" (GNOME Videos หรือก่อนหน้านี้เรียกว่า Totem) มีเมนูสร้าง Thumbnail sheet อยู่แล้ว

  1. เปิดโปรแกรม Videos
  2. เปิดไฟล์วิดีโอที่ต้องการ
  3. จากเมนูแอปพลิเคชัน เลือก Create Screenshot Gallery…
  4. หน้าต่างจะแสดงตัวเลือก: ปรับความกว้างแต่ละเฟรม เลือกจำนวนภาพอัตโนมัติหรือกำหนดเอง
  5. ตั้งชื่อไฟล์ด้านบนกลาง แล้วกด 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 อย่างพร้อมกัน:

  1. select=not(mod(n\,3000)): เลือกเฟรมทุก 3000 เฟรม (ลดค่า = จับเฟรมบ่อยขึ้น)
  2. scale=320:240: กำหนดขนาดแต่ละเฟรมในชีท (ควรเป็นสัดส่วนของความละเอียดต้นฉบับ)
  3. 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 ยังสามารถแยกเฟรมเป็นไฟล์ภาพเดี่ยวๆ ได้อีกด้วย