ffmpeg
หนึ่งในเครื่องมือที่ดีที่สุดที่ผมใช้เป็น สามารถใช้วิดีโอส่วนใหญ่จากเครื่องมือ screencast เช่นkazam
และแปลงเป็นรูปแบบอื่น
ติดตั้งจากศูนย์ซอฟต์แวร์ - ติดตั้งโดยอัตโนมัติหากคุณติดตั้งubuntu-restricted-extras
แพ็คเกจที่ดีเยี่ยม
Kazam สามารถส่งออกในรูปแบบวิดีโอหรือmp4
webm
โดยทั่วไปแล้วคุณจะได้ผลลัพธ์ที่ดีกว่าในmp4
รูปแบบ
ตัวอย่าง GIF การสร้างไวยากรณ์
ไวยากรณ์พื้นฐานในการแปลงวิดีโอเป็น gif คือ:
ffmpeg -i [inputvideo_filename] -pix_fmt rgb24 [output.gif]
แปลง GIFs โดยเฉพาะที่มี 25/29 เฟรมต่อวินาทีมาตรฐานอาจมีขนาดใหญ่มาก ตัวอย่างเช่น - วิดีโอ 800Kb webm 15 วินาทีที่ 25fps สามารถส่งออกไปที่ 435Mb!
คุณสามารถลดสิ่งนี้ได้หลายวิธี:
เฟรม
ใช้ตัวเลือก -r [frame-per-second]
ตัวอย่างเช่น ffmpeg -i Untitled_Screencast.webm -r 1 -pix_fmt rgb24 out.gif
ขนาดลดลงจาก 435Mb เป็น 19Mb
ขีด จำกัด ขนาดไฟล์
ใช้ตัวเลือก -fs [filesize]
ตัวอย่างเช่น ffmpeg -i Untitled_Screencast.webm -fs 5000k -pix_fmt rgb24 out.gif
หมายเหตุ - นี่เป็นขนาดไฟล์เอาต์พุตโดยประมาณดังนั้นขนาดอาจใหญ่กว่าที่ระบุไว้เล็กน้อย
ขนาดของวิดีโอที่ส่งออก
ใช้ตัวเลือก -s [widthxheight]
ตัวอย่างเช่น ffmpeg -i Untitled_Screencast.webm -s 320x200 -pix_fmt rgb24 out.gif
นี่ลดขนาดตัวอย่างวิดีโอ 1366x768 ลงเหลือ 26Mb
วนตลอดไป
บางครั้งคุณอาจต้องการให้ GIF วนซ้ำตลอดไป
ใช้ตัวเลือก -loop_output 0
ffmpeg -i Untitled_Screencast.webm -loop_output 0 -pix_fmt rgb24 out.gif
เพิ่มประสิทธิภาพและหดตัวต่อไป
ถ้าคุณใช้imagemagick
convert
กับปัจจัย fuzz ระหว่าง 3% และ 10% จากนั้นคุณสามารถลดขนาดภาพได้อย่างมาก
convert output.gif -fuzz 3% -layers Optimize finalgif.gif
ในที่สุด
รวมตัวเลือกเหล่านี้บางอย่างเข้าด้วยกันเพื่อลดสิ่งที่จัดการได้สำหรับ Ask Ubuntu
ffmpeg -i Untitled_Screencast.webm -loop_output 0 -r 5 -s 320x200 -pix_fmt rgb24 out.gif
ติดตามโดย
convert output.gif -fuzz 8% -layers Optimize finalgif.gif
ตัวอย่าง