แทนที่ GIF ด้วยวิดีโอ

ใน Codelab นี้ ปรับปรุงประสิทธิภาพโดยแทนที่ GIF แบบเคลื่อนไหวด้วยวิดีโอ

วัดก่อน

ก่อนอื่น ให้วัดผลประสิทธิภาพของเว็บไซต์ ดังนี้

  1. หากต้องการดูตัวอย่างเว็บไซต์ ให้กดดูแอป แล้วกดเต็มหน้าจอ เต็มหน้าจอ
  2. กด "Control+Shift+J" (หรือ "Command+Option+J" ใน Mac) เพื่อเปิดเครื่องมือสำหรับนักพัฒนาเว็บ
  3. คลิกแท็บ Lighthouse
  4. ตรวจสอบว่าได้เลือกช่องทำเครื่องหมายประสิทธิภาพในรายการหมวดหมู่
  5. คลิกปุ่มสร้างรายงาน

เมื่อดำเนินการเสร็จสิ้น คุณจะเห็นว่า Lighthouse ได้แจ้งว่า GIF นั้นเป็นปัญหาในการตรวจสอบ "ใช้รูปแบบวิดีโอสำหรับเนื้อหาภาพเคลื่อนไหว"

รับ FFmpeg

คุณสามารถแปลง GIF เป็นวิดีโอได้หลายวิธี คู่มือนี้ใช้ FFmpeg โค้ดนี้ติดตั้งอยู่ใน VM ของ Glitch แล้ว และคุณก็ทำตามวิธีการเหล่านี้เพื่อติดตั้งบนเครื่องภายในได้ด้วย หากต้องการ

เปิดคอนโซล

ตรวจสอบอีกครั้งว่า FFmpeg ได้รับการติดตั้งและใช้งานได้:

  1. คลิกรีมิกซ์เพื่อแก้ไขเพื่อทำให้โปรเจ็กต์แก้ไขได้
  2. คลิกเทอร์มินัล (หมายเหตุ: หากปุ่มเทอร์มินัลไม่แสดงขึ้น คุณอาจต้องใช้ตัวเลือกเต็มหน้าจอ)
  3. ในคอนโซล ให้ใช้คำสั่งต่อไปนี้
which ffmpeg

คุณควรได้รับเส้นทางไฟล์กลับคืนมาดังนี้

/usr/bin/ffmpeg

เปลี่ยน GIF เป็นวิดีโอ

  • ในคอนโซล ให้เรียกใช้ cd images เพื่อเข้าสู่ไดเรกทอรีรูปภาพ
  • เรียกใช้ ls เพื่อดูเนื้อหา

คุณควรจะเห็นข้อความดังนี้

$ ls
cat-herd.gif
  • ในคอนโซล ให้ใช้คำสั่งต่อไปนี้
ffmpeg -i cat-herd.gif -b:v 0 -crf 25 -f mp4 -vcodec libx264 -pix_fmt yuv420p cat-herd.mp4

การดำเนินการนี้จะบอกให้ FFmpeg เอาอินพุตซึ่งแสดงเป็นแฟล็ก -i ของ cat-herd.gif แล้วแปลงเป็นวิดีโอชื่อ cat-herd.mp4 การดำเนินการนี้อาจใช้เวลาอีก 1 วินาที เมื่อคำสั่งเสร็จสิ้นแล้ว คุณควรสามารถพิมพ์ ls ได้อีกครั้งและเห็นไฟล์ 2 ไฟล์ต่อไปนี้

$ ls
cat-herd.gif  cat-herd.mp4

สร้างวิดีโอ WebM

แม้ว่า MP4 จะมีวางจำหน่ายมาตั้งแต่ปี 1999 แต่ WebM ก็ได้กลายมาเป็นน้องใหม่ที่เพิ่งเปิดตัวไปเมื่อปี 2010 วิดีโอ WebM อาจมีขนาดเล็กกว่าวิดีโอ MP4 มาก ดังนั้นการสร้างวิดีโอทั้ง 2 แบบจึงเป็นเรื่องที่เหมาะสม โชคดีที่องค์ประกอบ <video> ให้คุณเพิ่มแหล่งที่มาได้หลายแหล่ง ดังนั้นหากเบราว์เซอร์ไม่รองรับ WebM คุณก็ใช้ MP4 แทนได้

  • ในคอนโซล ให้ใช้คำสั่งต่อไปนี้
ffmpeg -i cat-herd.gif -c vp9 -b:v 0 -crf 41 cat-herd.webm
  • วิธีตรวจสอบขนาดไฟล์ที่ทำงาน
ls -lh

คุณควรมี GIF 1 รายการและวิดีโอ 2 รายการ

$ ls -lh
total 4.5M
-rw-r--r-- 1 app app 3.7M May 26 00:02 cat-herd.gif
-rw-r--r-- 1 app app 551K May 31 17:45 cat-herd.mp4
-rw-r--r-- 1 app app 341K May 31 17:44 cat-herd.webm

โปรดสังเกตว่า GIF ต้นฉบับคือ 3.7M ขณะที่เวอร์ชัน MP4 มีความละเอียด 551K และเวอร์ชัน WebM มีความละเอียดเพียง 341K เท่านั้น ช่วยประหยัดค่าใช้จ่ายได้มาก

อัปเดต HTML เพื่อสร้างเอฟเฟกต์ GIF ใหม่

GIF แบบเคลื่อนไหวมีลักษณะสำคัญ 3 ประการที่วิดีโอจำเป็นต้องทำซ้ำดังนี้

  • วิดีโอจะเล่นโดยอัตโนมัติ
  • วนซ้ำอย่างต่อเนื่อง (โดยปกติ แต่ก็สามารถป้องกันการวนซ้ำได้)
  • พวกนั้นจะเงียบ

โชคดีที่คุณสร้างพฤติกรรมเหล่านี้ขึ้นใหม่ได้โดยใช้องค์ประกอบ <video>

  • ในไฟล์ index.html ให้แทนที่บรรทัดด้วย <img> ด้วย:
<img src="/images/cat-herd.gif" alt="Cowboys herding cats.">
<video autoplay loop muted playsinline></video>

องค์ประกอบ <video> ที่ใช้แอตทริบิวต์เหล่านี้จะเล่นโดยอัตโนมัติ วนซ้ำไปเรื่อยๆ ไม่เล่นเสียง และเล่นแทรกในบรรทัด (ไม่ใช่แบบเต็มหน้าจอ) ตามลักษณะการทำงานที่คาดไว้ของ GIF แบบเคลื่อนไหว 🎉

ระบุแหล่งที่มา

สิ่งที่คุณต้องทำก็แค่ระบุแหล่งที่มาของวิดีโอ องค์ประกอบ <video> ต้องมีองค์ประกอบย่อย <source> อย่างน้อย 1 รายการที่ชี้ไปยังไฟล์วิดีโอต่างๆ ที่เบราว์เซอร์เลือกได้ ทั้งนี้ขึ้นอยู่กับการรองรับรูปแบบ อัปเดต <video> ด้วยองค์ประกอบ <source> ที่ลิงก์ไปยังวิดีโอเกี่ยวกับแมวของคุณ:

<video autoplay loop muted playsinline>
  <source src="/images/cat-herd.webm" type="video/webm">
  <source src="/images/cat-herd.mp4" type="video/mp4">
</video>

Preview

  • หากต้องการดูตัวอย่างเว็บไซต์ ให้กดดูแอป แล้วกดเต็มหน้าจอ เต็มหน้าจอ

ประสบการณ์การใช้งานควรมีลักษณะเหมือนกัน จนถึงตอนนี้

ยืนยันด้วย Lighthouse

เมื่อเปิดเว็บไซต์ที่เผยแพร่อยู่ ให้ทำดังนี้

  1. กด "Control+Shift+J" (หรือ "Command+Option+J" ใน Mac) เพื่อเปิดเครื่องมือสำหรับนักพัฒนาเว็บ
  2. คลิกแท็บ Lighthouse
  3. ตรวจสอบว่าได้เลือกช่องทำเครื่องหมายประสิทธิภาพในรายการหมวดหมู่
  4. คลิกปุ่มสร้างรายงาน

คุณจะเห็นว่าการตรวจสอบ "ใช้รูปแบบวิดีโอสำหรับเนื้อหาภาพเคลื่อนไหว" ผ่านแล้ว! ไชโย 💪