Blender VSE được dùng nhầm
(aras-p.info)Tình cờ đóng góp cho Blender VSE
- Hai tháng trước, tôi bắt đầu đóng góp một chút mã cho Video Sequence Editor (VSE) của Blender.
- Bạn có biết Blender có công cụ chỉnh sửa video không? Tôi cũng không biết.
- Dù hoàn toàn không biết gì về chỉnh sửa video, timeline, sequencer, chỉnh màu, ffmpeg, trộn âm thanh, v.v., tôi vẫn bắt đầu làm việc với VSE.
Tôi đã bắt đầu làm việc với VSE một cách "tình cờ" như thế nào?
- Tôi quyết định ghé hội nghị Unite 2023 của Unity ở Amsterdam và thăm bạn bè.
- Sau hội nghị, tôi ghé trụ sở Blender trong nửa ngày, và Francesco cùng Sergey hỏi liệu tôi có muốn đóng góp cho VSE hay không.
- Và thế là tôi bắt đầu làm việc với VSE.
Cải thiện việc vẽ timeline
- Timeline của VSE nằm ở phía dưới hình ảnh, và có thể thấy khoảng 3000 "strip" cùng lúc.
- Việc cuộn và di chuyển timeline khiến giao diện người dùng chỉ cập nhật ở khoảng 15 khung hình.
- Giờ đây nó cập nhật ở hơn 60 khung hình (#115311).
Scope
- VSE có thể hiển thị các "scope" điển hình như histogram hình ảnh, waveform và vectorscope.
- Đã có các cải tiến cho histogram, waveform và vectorscope.
Phần ffmpeg
- Blender chủ yếu dùng thư viện ffmpeg để đọc và ghi audio/video.
libswscaleđược dùng để thực hiện chuyển đổi RGB↔YUV cho các khung hình phim.- Giờ đây bước chuyển đổi RGB→YUV được xử lý nhanh hơn nhờ tận dụng đa luồng (#116008).
Resampling âm thanh
- Trong thư viện âm thanh (Audaspace), việc resampling dữ liệu clip âm thanh tốn khá nhiều thời gian.
- Một thiết lập chất lượng resampling "trung bình" mới đã được thêm vào Audaspace để dùng khi render (#116059).
Biến đổi và lọc hình ảnh
- Trong VSE có thể biến đổi hình ảnh, phim, văn bản, cảnh, v.v.: định vị, xoay, thay đổi kích thước, áp dụng crop bổ sung.
- Các phép biến đổi này đều được thực hiện trên CPU và đã được xử lý bằng đa luồng.
Sửa "lỗi nửa pixel"
- Có nhiều "lỗi nửa pixel" trong mã, và trong nhiều trường hợp chúng tự triệt tiêu lẫn nhau hoặc không nhìn thấy được.
- Các lỗi này đã được sửa (#116628).
Viền trong suốt xung quanh bilinear filtering
- Chỉ bilinear filtering mới thêm độ trong suốt quanh hình ảnh kết quả.
- Giờ đây phần "blend với độ trong suốt" đã được loại bỏ khỏi mã bilinear filtering (#117717).
Thêm và thay đổi bộ lọc
- Trước đây phép biến đổi strip của VSE không có tùy chọn cubic filtering.
- Giờ đây trong VSE có thể chọn hai loại cubic filtering (#117100, #117517).
- Tùy chọn bộ lọc "Auto" đã được thêm vào và đặt làm mặc định (#117853).
Tối ưu hóa hiệu ứng VSE
- Trong các bộ dữ liệu phim thực tế, nhiều hiệu ứng không được dùng, nhưng tôi vẫn tìm thấy vài điểm trong mã để tối ưu hóa.
- Phần lớn được tối ưu hóa thông qua đa luồng.
Tất cả những điều này có ý nghĩa gì với thời gian render?
- Trên ba bộ dữ liệu do Blender Studio cung cấp, thời gian render cuối cùng của phim VSE trên PC đã nhanh hơn khoảng 2 lần.
Suy nghĩ về quá trình làm việc thực tế
- Tôi không chắc toàn bộ số việc trên có phải là một "khối lượng công việc tốt" cho hai tháng làm bán thời gian hay không.
- Nhưng có vẻ cũng khá ổn, dù nhà phát triển (tôi) hoàn toàn không biết gì về lĩnh vực này hay codebase này.
- Tổng cộng 37 pull request đã được hoàn thành, review và merge.
Tiếp theo là gì?
- Blender 4.1 đã vào giai đoạn beta và về mặt tính năng thì đã "hoàn chỉnh".
- Công việc cho Blender 4.2 bắt đầu, và tôi dự định sẽ tiếp tục làm việc với VSE.
GN⁺ Ý kiến:
- Bài viết này chia sẻ các cải tiến và quá trình phát triển của VSE trong Blender, cho thấy việc đóng góp cho các dự án mã nguồn mở quan trọng như thế nào.
- Bằng cách nhấn mạnh rằng một nhà phát triển vẫn có thể đóng góp có ý nghĩa ngay cả trong lĩnh vực không phải chuyên môn của mình, bài viết truyền tải một thông điệp tích cực khuyến khích những thử thách mới.
- Bài viết cũng nhấn mạnh tầm quan trọng của tối ưu hóa và cải thiện hiệu năng trong phát triển phần mềm, đồng thời đưa ra các ví dụ cụ thể về việc những cải tiến này ảnh hưởng thế nào đến trải nghiệm người dùng thực tế và thời gian render.
1 bình luận
Ý kiến trên Hacker News