1 คะแนน โดย GN⁺ 2024-02-09 | 1 ความคิดเห็น | แชร์ทาง WhatsApp

มีส่วนร่วมกับ Blender VSE โดยบังเอิญ

  • เมื่อสองเดือนก่อน เริ่มส่งโค้ดเล็กน้อยเข้าไปมีส่วนร่วมกับ VideoSequence Editor (VSE) ของ Blender
  • รู้ไหมว่า Blender มีเครื่องมือตัดต่อวิดีโอด้วย? ฉันก็ไม่รู้เหมือนกัน
  • ทั้งที่ไม่รู้อะไรเลยเกี่ยวกับการตัดต่อวิดีโอ, ไทม์ไลน์, ซีเควนเซอร์, การเกรดสี, ffmpeg, การมิกซ์เสียง ฯลฯ ก็ยังเริ่มมาจับงาน VSE

เริ่มทำงาน VSE แบบ 'บังเอิญ' ได้อย่างไร?

  • ไปงานประชุม Unite 2023 ของ Unity ที่อัมสเตอร์ดัม แล้วตัดสินใจแวะไปเยี่ยมเพื่อน ๆ
  • หลังจบงานประชุม ได้ไปเยี่ยมสำนักงานใหญ่ของ Blender อยู่ครึ่งวัน และ Francesco กับ Sergey ก็ถามว่าสนใจจะมีส่วนร่วมกับ VSE ไหม
  • จากนั้นก็เลยเริ่มทำงานกับ VSE

ปรับปรุงการวาดไทม์ไลน์

  • ไทม์ไลน์ของ VSE อยู่ด้านล่างของภาพ และมองเห็น "strip" ได้ประมาณ 3000 รายการพร้อมกัน
  • การเลื่อนและขยับไทม์ไลน์ ทำให้อินเทอร์เฟซผู้ใช้อัปเดตได้ราว 15 เฟรม
  • ตอนนี้อัปเดตได้มากกว่า 60 เฟรมแล้ว (#115311)

Scopes

  • VSE สามารถแสดง "scopes" ทั่วไปอย่างฮิสโตแกรม, waveform, และ vectorscope ได้
  • มีการปรับปรุงในส่วนของฮิสโตแกรม, waveform, และ vectorscope

ส่วนของ ffmpeg

  • Blender ใช้ไลบรารี ffmpeg เป็นหลักสำหรับการอ่านและเขียนเสียง/วิดีโอ
  • ใช้ libswscale เพื่อแปลงเฟรมภาพยนตร์ RGB↔YUV
  • ตอนนี้ใช้ multithreading เพื่อเร่งขั้นตอนการแปลง RGB→YUV ให้เร็วขึ้น (#116008)

การรีแซมเพิลเสียง

  • ภายในไลบรารีเสียง (Audaspace) ใช้เวลามากกับการรีแซมเพิลข้อมูลคลิปเสียง
  • ได้เพิ่มการตั้งค่าคุณภาพการรีแซมเพิลระดับ "กลาง" แบบใหม่ใน Audaspace และนำไปใช้ตอนเรนเดอร์ (#116059)

การแปลงภาพและการกรอง

  • ใน VSE สามารถแปลงภาพ, ภาพยนตร์, ข้อความ, ซีน ฯลฯ ได้: จัดตำแหน่ง, หมุน, ปรับขนาด, และใช้การครอปเพิ่มเติม
  • การแปลงเหล่านี้ทั้งหมดทำบน CPU และเดิมก็รองรับ multithreading อยู่แล้ว
แก้ไข "ข้อผิดพลาดครึ่งพิกเซล"
  • ในโค้ดมี "ข้อผิดพลาดครึ่งพิกเซล" อยู่หลายจุด ซึ่งในหลายกรณีก็หักล้างกันเองหรือมองไม่เห็น
  • ตอนนี้ข้อผิดพลาดเหล่านี้ถูกแก้แล้ว (#116628)
ขอบความโปร่งใสรอบ ๆ Bilinear filtering
  • มีเพียง Bilinear filtering เท่านั้นที่เพิ่มความโปร่งใสรอบภาพผลลัพธ์
  • ตอนนี้ได้เอา "การ blend เข้ากับความโปร่งใส" ออกจากโค้ด Bilinear filtering แล้ว (#117717)
เพิ่มและเปลี่ยนตัวกรอง
  • เดิมการแปลง strip ของ VSE ไม่มีตัวเลือก Cubic filtering
  • ตอนนี้ใน VSE สามารถเลือก Cubic filtering ได้สองแบบ (#117100, #117517)
  • เพิ่มตัวเลือกตัวกรอง "Auto" และตั้งให้เป็นค่าเริ่มต้น (#117853)

ปรับแต่งประสิทธิภาพของเอฟเฟกต์ VSE

  • ในชุดข้อมูลภาพยนตร์จริงไม่ได้ใช้เอฟเฟกต์มากนัก แต่ก็พบจุดที่น่าปรับปรุงในโค้ดและทำการ optimize
  • การปรับปรุงส่วนใหญ่ทำผ่าน multithreading

ทั้งหมดนี้มีความหมายอย่างไรกับเวลาเรนเดอร์?

  • บนชุดข้อมูลสามชุดจาก Blender Studio เวลาเรนเดอร์สุดท้ายของภาพยนตร์ VSE เร็วขึ้นราว 2 เท่าบนพีซี

ความคิดเกี่ยวกับกระบวนการทำงานจริง

  • ไม่แน่ใจว่างานทั้งหมดข้างต้นนับเป็น "ปริมาณงานที่ดี" สำหรับความพยายามแบบพาร์ตไทม์สองเดือนหรือไม่
  • แต่สำหรับนักพัฒนา (ฉัน) ที่ไม่รู้อะไรเลยทั้งเรื่องโดเมนนี้และโค้ดเบส ก็ถือว่าออกมาดีทีเดียว
  • มี pull request ทั้งหมด 37 รายการที่ทำเสร็จ ผ่านการรีวิว และถูกรวมเข้าระบบแล้ว

อะไรต่อจากนี้?

  • Blender 4.1 เข้าสู่สถานะเบต้าแล้ว และในเชิงฟีเจอร์ถือว่า "เสร็จสมบูรณ์"
  • งานของ Blender 4.2 เริ่มต้นขึ้นแล้ว และตั้งใจจะทำงานกับ VSE ต่อไป

GN⁺ ความเห็น:

  1. บทความนี้แบ่งปันการปรับปรุงและกระบวนการพัฒนา VSE ของ Blender พร้อมแสดงให้เห็นว่าการมีส่วนร่วมในโครงการโอเพนซอร์สมีความสำคัญเพียงใด
  2. เน้นย้ำว่านักพัฒนาสามารถสร้างผลงานที่มีความหมายได้แม้ในพื้นที่ที่ไม่ใช่ความเชี่ยวชาญของตน จึงเป็นข้อความเชิงบวกที่ชวนให้กล้ารับความท้าทายใหม่ ๆ
  3. บทความนี้ตอกย้ำความสำคัญของการ optimize และการเพิ่มประสิทธิภาพในการพัฒนาซอฟต์แวร์ พร้อมยกตัวอย่างอย่างเป็นรูปธรรมว่าการปรับปรุงเหล่านี้ส่งผลต่อประสบการณ์ผู้ใช้และเวลาเรนเดอร์จริงอย่างไร

1 ความคิดเห็น

 
GN⁺ 2024-02-09
ความคิดเห็นจาก Hacker News
  • ผู้ใช้คนหนึ่งกล่าวว่าส่วนที่ผิดพลาดที่สุดในเส้นทางอาชีพของตนคือไม่สามารถหาสมดุลระหว่างการค้นหาวิธีแก้ปัญหาทางคณิตศาสตร์สำหรับโปรเจกต์ที่มีลักษณะเฉพาะ กับโปรเจกต์ที่ได้รับค่าจ้างแต่ให้ผลลัพธ์ระดับปานกลางได้ และยังเล่าประสบการณ์ว่าตนเคยมีโอกาสได้รับเงินสำหรับงานที่เดิมทำแบบไม่รับค่าจ้าง แต่สุดท้ายกลับไม่ได้ทำเลย
  • ผู้ใช้อีกคนกล่าวถึงกรณีของคนที่เดิมมีประสบการณ์มากใน Unity ก่อนจะเข้ามามีส่วนร่วมกับ Blender และชื่นชมการเปลี่ยนแปลงที่ปรับแต่งขั้นตอนการประมวลผลภาพจนทำให้ความเร็วในการประมวลผลดีขึ้น 4 เท่า
  • ผู้ใช้คนหนึ่งบอกว่าในช่วงหลายปีที่ผ่านมา สิ่งที่ตนชอบมากที่สุดคือแนวโน้มที่ Aras เข้าไปมีส่วนร่วมในโปรเจกต์กราฟิกโอเพนซอร์สหลากหลายตัว สร้างการเร่งความเร็วและการปรับปรุงครั้งใหญ่ แล้วจึงย้ายไปโปรเจกต์อื่นต่อ
  • ผู้ใช้อีกคนแสดงความเสียดายที่ Musicbee ซึ่งเป็นโปรแกรมเล่นเพลงที่ตนชอบ ไม่ได้เป็นโอเพนซอร์ส และบอกว่าถ้าซอร์สโค้ดถูกเปิดเผย ตนก็อยากช่วยแก้ปัญหาเล็ก ๆ น้อย ๆ ในเวลาว่าง
  • ผู้ใช้คนหนึ่งระบุว่าตนใช้ Blender VSE ตัดต่อวิดีโอมาตั้งแต่ปี 2020 และมองว่ามันเป็นโปรแกรมตัดต่อวิดีโอบน Linux ที่เสถียรและมีฟีเจอร์ครบครันที่สุด
  • ผู้ใช้อีกคนเล่าว่าตนอยากใช้เครื่องมือโอเพนซอร์สทั้งหมดสำหรับพอดแคสต์ของตัวเอง แต่การเรนเดอร์ลำดับไฟล์ mp4 ที่มี chroma key ใน Blender ใช้เวลาถึง 10 ชั่วโมง จึงเปลี่ยนไปใช้ DaVinci Resolve
  • ผู้ใช้คนหนึ่งขอความช่วยเหลือในการทำความเข้าใจความหมายของชื่อโพสต์ และถามว่านี่เป็นสำนวนเชิงมีมหรือไม่
  • ผู้ใช้อีกคนกล่าวว่าการทำให้ส่วนใดก็ตามของโปรแกรม 3D อย่าง Blender เร็วขึ้นน่าจะเป็นเรื่องยากมาก เพราะมันเป็นแอปพลิเคชัน 3D ที่บูตเร็วที่สุดและตอบสนองไวที่สุดอยู่แล้ว
  • ผู้ใช้คนหนึ่งขอให้เปลี่ยนชื่อเรื่องให้ชัดเจนกว่านี้
  • สุดท้าย ผู้ใช้คนหนึ่งบอกว่าประสบการณ์ครั้งแรกของตนกับ VSE ไม่ค่อยดีนัก และได้แชร์ลิงก์เกี่ยวกับประสบการณ์นั้น