จากเอกสารของ GNOME API นั้นเครื่องบันทึกหน้าจอgnome-shell ( shell-recorder class ) นั้นเป็นไปป์ไลน์ที่ส่งภาพหน้าจอทั้งหมดไปยังไพพ์ไลน์ซึ่ง GStreamer เข้ารหัสแล้ว
คุณสามารถใช้แอปพลิเคชั่น dconf-editor ของคุณและนำทางไปยังorg.gnome.shell.recorder
ในสคีมานี้คุณจะพบ 3 ตัวเลือก:
- ไฟล์นามสกุล - เริ่มต้นในกล่องของฉันไปที่
webm
- framerate - defauly ในกล่องของฉันถึง 30
- ไปป์ไลน์ - ซึ่งเริ่มต้นที่ไพพ์ไลน์ไปยัง GStreamer vp8enc สำหรับการเข้ารหัสสตรีม
vp8enc min_quantizer=13 max_quantizer=13 cpu-used=5 deadline=1000000 threads=%T ! queue ! webmmux
ดังนั้นเราจะทำซ้ำขั้นตอนการบันทึกในบรรทัดคำสั่งได้อย่างไร เราสามารถทำได้ด้วยคำสั่ง gst-launch ของ gstreamer-tool ประการแรกคุณต้องติดตั้ง gst-tools บนกล่องของคุณและคุณสามารถเริ่มเล่นกับ gstreamer! นี่คือตัวอย่างบางส่วน:
บันทึกไปยัง webm (วิดีโอ vp8 & เสียง vorbis):
gst-launch ximagesrc ! ffmpegcolorspace ! queue ! vp8enc quality=10 speed=2 ! mux. alsasrc ! audio/x-raw-int ! queue ! audioconvert ! vorbisenc ! mux. webmmux name=mux ! filesink location=screencast.webm
กด Ctrl + C เพื่อหยุดการบันทึก
บันทึกเป็น ogv (theora video & vorbis audio):
gst-launch ximagesrc ! ffmpegcolorspace ! queue ! theoraenc ! mux. alsasrc ! audio/x-raw-int ! queue ! audioconvert ! vorbisenc ! mux. oggmux name=mux ! filesink location=screencast.ogv
กด Ctrl + C เพื่อหยุดการบันทึก
ท่อจะดำเนินการโดย gst-launch นี่คือสิ่งที่พวกเขาทำ:
- คว้าภาพวิดีโอ X (เดสก์ท็อป)
- แปลงวิดีโอเป็นรูปแบบที่ยอมรับได้โดยอัตโนมัติ
- วางเธรดพื้นหลัง [t1] เพื่อประมวลผลวิดีโอต่อ
- [t1] เข้ารหัสวิดีโอ (เป็น vp8 หรือ theora)
- [t1] เตรียมการรวมวิดีโอเข้ากับเชลล์วิดีโอ (webm หรือ ogg)
- หยิบอินพุตเสียงเป็น raw (ไมโครโฟน)
- วางเธรดพื้นหลัง [t2] เพื่อประมวลผลเสียงต่อ
- [t2] แปลงเสียงเป็นรูปแบบที่ยอมรับโดยอัตโนมัติ
- [t2] เข้ารหัสเสียงเป็น vorbis
- [t2] การเตรียมการสำหรับการผสานเสียงเข้ากับเชลล์วิดีโอ (webm หรือ ogg)
- เขียนเสียงและวิดีโอที่เข้ารหัสลงในไฟล์วิดีโอ
ตอนนี้คุณไม่ต้องกลัวท่อส่ง gstreamer อีกต่อไป! \ O /
man istanbul
?