03 กันยายน 2555

การบันทึกวิดีโอบน Linux ที่ง่ายที่สุด

เรื่องของเรื่องคือ จะทำวิดีโอสาธิตการใช้งานระบบปฏิบัติการลินุกซ์ เรื่องของการเขียนโปรแกรมบน Android OS ทั้งนี้เอาแบบง่ายๆ เข้าไว้ พอจะเริ่มใช้งานจริงก็ค้นหาโปรแกรมที่เคยใช้ทำ ไม่ว่าจะเป็น Gtk-recordMyDesktop , หรือ Qt-recordMyDesktop ผลปรากฎว่ามันไม่เวิร์คเอาเสียเลย

ลองค้นหาในเน็ตดูพบวิธีการที่ง่าย และตรงไปตรงมามากกว่า แต่การใช้งานครั้งแรกอาจจะยุ่งๆหน่อย วิธีที่ว่าคือการใช้คอมมานด์ไลน์ครับ

คำสั่งบันทึกหน้าจอ จะทำผ่านโปรแกรม ffmpeg โดยระบุ พารามิเตอร์เข้าไปยังบรรทัดคำสั่งเลย ตัวอย่างการใช้คำสั่ง เช่น

ffmpeg -f alsa -ac 2 -i default -f x11grab -r 30 -s 1366x768 -i :0.0 -acodec pcm_s16le -vcodec libx264 -preset ultrafast -crf 0 -threads 0 test.mkv

คำสั่งข้างต้นเป็นการจับภาพหน้าจอขนาด 1366x768 โดยบันทึกเป็นไฟลชื่อ test.mkv
จะเห็นว่าเวลาเราจะเอาไปใช้จริงมันยุ่งยากที่ต้องพิมพ์คำสั่งยาวๆ เลยเอามาใส่เป็น shell script แทน สมมติชื่อไฟล์ record.sh ก็แล้วกันนะครับ เนื้อข้างในก็ประมาณนี้


#!/bin/sh
ffmpeg -f alsa -ac 2 -i default -f x11grab -r 30 -s 1366x768 -i :0.0 -acodec pcm_s16le -vcodec libx264 -preset ultrafast -crf 0 -threads 0 "$1.mkv"

โค้ดข้างต้นเป็นคำสั่งที่อยู่ในไฟล์ record.sh ซึ่งจะยังไม่สามารถทำงานได้จริง
ต้องสั่งให้ record.sh ทำงานได้โดยสั่ง
chmod +x record.sh

วิธีใช้งาน
./record.sh myclip

เป็นการส่งค่าให้บันทึกหน้าจอตามปกติ โดยเก็บเป็นไฟล์ชื่อ myclip.mkv
แสดงความคิดเห็น