FlashRecord — เครื่องมือบันทึกเทอร์มินัลแบบเบาสุดสำหรับนักพัฒนา - จับภาพหน้าจอ·GIF ได้จากเทอร์มินัล
(github.com/Flamehaven)สวัสดีครับ ผมคือ Flamehaven ผู้สร้างเครื่องมือใหม่ ๆ ที่มีประโยชน์ทุกสัปดาห์ สัปดาห์นี้ขอแนะนำ FlashRecord
FlashRecord คือเครื่องมือจับภาพหน้าจอแบบ Python-native CLI ที่มีขนาดเบามาก (≈2MB) ออกแบบมาให้เข้าไปอยู่ในเวิร์กโฟลว์ของนักพัฒนาได้ทันที ไม่มี GUI และสามารถสร้างภาพหน้าจอ (@sc) กับการบันทึก GIF (@sv) ได้จากเทอร์มินัลโดยตรง อีกทั้งยังผสานเข้ากับสคริปต์/การทดสอบ/CI ได้โดยตรงผ่าน import flashrecord
คุณสมบัติหลัก
- เน้น CLI และเป็น Python-native — ใช้
import flashrecordหรือรันflashrecord @svได้ทันทีใน pipeline - เป็นมิตรกับเวิร์กโฟลว์ — บันทึกเซสชัน Claude/Gemini/Codex อัตโนมัติ, ส่งออก Markdown snippet สำหรับ PR/เอกสาร, รองรับ inline instruction note
- เบามาก: ขนาดติดตั้งประมาณ 2MB, พึ่งพาไลบรารีมาตรฐานเป็นหลัก เช่น Pillow/NumPy/imageio
- เรียบง่ายแบบคำสั่งเดียว —
@sc(ภาพหน้าจอ),@sv(บันทึก GIF) — รองรับทั้งแบบโต้ตอบและแบบสคริปต์ - การบีบอัดอัจฉริยะ — อิมพลีเมนต์ด้วย PIL+NumPy แบบล้วน โดยได้แรงบันดาลใจจาก CWAM ช่วยลดขนาดไฟล์อย่างมากพร้อมคงส่วนที่สำคัญต่อการมองเห็นไว้
- มี preset การบีบอัดหลายแบบ — เช่น
high,balanced,compactให้เลือกตามสมดุลระหว่างคุณภาพกับขนาดไฟล์ - ปรับแต่งเวลาและพื้นที่อย่างเหมาะสม — มี temporal subsampling (เช่น 10→8 FPS), adaptive resolution scaling, และการรักษาคุณภาพตาม saliency (variance, edge density, entropy)
- คงความเที่ยงตรงของสี RGB — พื้นที่สำคัญจะเก็บข้อมูลสีครบถ้วน
- ทำความสะอาดอัตโนมัติและจัดการอายุไฟล์ — ตั้งค่าให้ลบไฟล์ที่เก่ากว่า N ชั่วโมงอัตโนมัติได้ พร้อมโครงสร้างชื่อและโฟลเดอร์เอาต์พุตที่สม่ำเสมอ
- ข้ามแพลตฟอร์ม — ใช้คำสั่งเดียวกันบน Windows / macOS / Linux (※ macOS:
screencapture, Linux:gnome-screenshot/scrotเป็นต้น, Windows: อิงจาก ImageGrab) - พร้อมใช้งานระดับโปรดักชัน — มี pytest test suite, เอกสาร Sphinx และ GitHub Actions CI
- ผสานกับสคริปต์และ CI ได้ง่าย — มีเส้นทางเอาต์พุตแบบ deterministic จึงแนบเป็นหลักฐานเชิงภาพได้ทันทีในงานทดสอบ/สคริปต์ build/งาน CI
- ไม่มี native dependency เพิ่มเติม — ต้องการเพียง Pillow, NumPy, imageio เท่านั้น ไม่ต้องใช้ external binary ขนาดใหญ่
- จับภาพและเข้ารหัสได้รวดเร็ว — ภาพหน้าจอใช้เวลาประมาณ 10–50ms (ขึ้นอยู่กับแพลตฟอร์ม); pipeline การจับภาพและเข้ารหัสถูกออกแบบมาสำหรับเวิร์กโฟลว์นักพัฒนา
- API ที่ขยายต่อได้ — มีฟังก์ชันที่ import ได้สำหรับภาพหน้าจอ/การบันทึก/การจัดการเซสชัน — ฝังลงใน tooling หรือการทดสอบได้
- เน้นความเป็นส่วนตัว — ค่าเริ่มต้นคือประมวลผลในเครื่อง; การอัปโหลดขึ้นคลาวด์จะทำงานก็ต่อเมื่อผู้ใช้ผสานเองเท่านั้น
- พร้อมสำหรับโรดแมปในอนาคต — มีแผนสำหรับเอาต์พุต WebP/MP4, การจับเสียง, การจับเฉพาะหน้าต่าง, ส่วนขยาย VSCode, การสตรีม เป็นต้น
กรณีใช้งานหลัก:
- สร้าง GIF สำหรับคำอธิบาย PR และเอกสารได้อย่างรวดเร็ว
- ทำ visual test automation ใน CI และแนบ GIF เป็นหลักฐานเมื่อเกิดความล้มเหลว
- สร้างทรัพยากรสำหรับบทสอน/เดโมโดยไม่ต้องออกจากเทอร์มินัล
ลองได้ทันทีตอนนี้ (ติดตั้งจากซอร์ส):
git clone https://github.com/Flamehaven/FlashRecord
cd FlashRecord
pip install -e .
flashrecord @sc # ภาพหน้าจอ
flashrecord @sv 5 10 # ตัวอย่าง 5 วินาที, 10FPS
เรโป: https://github.com/Flamehaven/FlashRecord — ใบอนุญาต MIT
ยินดีรับ feedback, issue และ PR — หากต้องการ benchmark ที่จำเป็น (ขนาดตัวอย่าง GIF ก่อน/หลัง, ประสิทธิภาพตามความละเอียด·FPS) หรือคำอธิบายเชิงเทคนิคเพิ่มเติม บอกได้เลยแล้วผมจะโพสต์ให้ทันที
ยังไม่มีความคิดเห็น