Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การแก้ไขปัญหา >> Linux

จับภาพหน้าจอจากบรรทัดคำสั่ง Linux: คู่มือขั้นตอน

ใน GNU/Linux มีวิธีจับภาพหน้าจอจากบรรทัดคำสั่ง หลายเหตุผล: ควบคุมรายละเอียดการจับภาพ (โดยเฉพาะ timing) สร้างแกลเลอรีภาพจากไฟล์วิดีโอ หรือผู้ใช้คีย์บอร์ดหนักอาจรู้สึกว่าวิธีนี้เร็วกว่า

ขึ้นอยู่กับเป้าหมายและดิสโตร มีหลายวิธีทำ เครื่องมือส่วนใหญ่ติดตั้งมาอยู่แล้ว

วิธีที่ 1: ใช้ scrot

พิมพ์ scrot กด Enter จะจับภาพทั้งเดสก์ทอป บันทึกไฟล์ใน home directory ไม่ต้องอยู่ในเทอร์มินัลจริงๆ กด Alt+F2 หรือ Super+R เปิด Run dialog พิมพ์ scrot กด Enter ก็ได้ ใช้ cd ~ และ ls ดูไฟล์ หากรันในเทอร์มินัล จะจับภาพหน้าต่างเทอร์มินัลด้วย แนะนำใช้ Run dialog แทน

ตั้งค่า delay: scrot -d 10 รอ 10 วินาที ก่อนจับภาพ มีเวลาเตรียมโปรแกรม ตั้งชื่อไฟล์ได้โดยเพิ่มชื่อหลังคำสั่ง

เพิ่ม -c เพื่อนับถอยหลัง: scrot -d 10 -c จะนับวินาทีช่วยวางแผน

สภาพแวดล้อมเดสก์ทอปสมัยใหม่ส่วนใหญ่ผูก scrot (หรือเครื่องมือ CLI อื่น) กับปุ่ม Print Screen (Prt Sc) กด Prt Sc จับภาพทั้งหน้าจอ กด Alt+Prt Sc จับหน้าต่างที่ใช้งานอยู่ แป้นพิมพ์บางแบบมี SysRq แยกจาก Prt Sc ก็อาจทำงานได้

ใช้ scrot -s จะให้วาดพื้นที่บนหน้าจอด้วยเมาส์ ได้ภาพเฉพาะพื้นที่นั้น (อาจดูแปลก/ครอปผิดปกติบ้าง)

วิธีที่ 2: ใช้ Xfce4 Screenshooter

ผู้ใช้ Debian-Xfce, Xubuntu และ Xfce4 อื่นๆ มีคำสั่ง xfce4-screenshooter ผูกกับ Prt Sc เรียกจาก CLI ได้: พิมพ์ xfce4-screenshooter ที่เทอร์มินัลหรือ Application Finder (Alt+F2 หรือ Super+R) จะได้กล่องโต้ตอบเลือกประเภทภาพ: Select Region, Entire Screen, Active Window

วิธีที่ 3: ดึงเฟรมจากวิดีโอด้วย ffmpeg

ใช้ ffmpeg สร้างแกลเลอรีภาพจากไฟล์วิดีโอ ติดตั้ง:

  • Debian/Ubuntu/Mint: sudo apt-get install ffmpeg (รองรับ Raspberry Pi ด้วย)
  • Fedora/Red Hat: yum install rpmbuild (as root)
  • Arch: เลือก ffmpeg-git หรือ ffmpeg-full (ส่วนใหญ่ใช้ ffmpeg-git)

cd ไปโฟลเดอร์ไฟล์วิดีโอ รัน:

ffmpeg -i myMovie.avi -r 1 -f image2 shots_%06d.jpg

แทนชื่อไฟล์วิดีโอ ตัวเลขใน shots_%06d.jpg = จำนวนศูนย์นำหน้าเพื่อเรียงลำดับ ตัวเลขหลัง -r = frame rate (1 = 1 เฟรม/วินาที) ปรับค่าได้ตามต้องการ

วิธีที่ 4: ใช้ mplayer

ผู้ใช้ Lubuntu, LXLE, Trisquel Mini มี mplayer อยู่แล้ว ไม่มีติดตั้ง: sudo apt-get install mplayer

รัน mplayer -vf screenshot video_file จะเปิดหน้าต่างเล่นวิดีโอ กด s ทุกครั้งที่อยากจับภาพ จะมีข้อความบอกสถานะ เทอร์มินัลยังคงแสดงข้อความต่อไป

หรือจับภาพอัตโนมัติ:

mplayer -nosound -frames ## -vo png:z=9 myVideo.avi

แทนชื่อไฟล์ และ ## = จำนวนเฟรมที่อยากจับ แทน png ด้วย jpg หรือ gif89a ได้ (png คุณภาพดีสุด)