25 điểm bởi GN⁺ 2025-04-13 | 3 bình luận | Chia sẻ qua WhatsApp
  • VERTcông cụ chuyển đổi tệp cục bộ dựa trên WebAssembly, cho phép chuyển đổi tệp trực tiếp trong trình duyệt mà không cần đám mây
  • Để tăng cường bảo vệ quyền riêng tư, tệp được xử lý ngay trên thiết bị của người dùng; với tệp video, cũng có thể chọn chuyển đổi qua máy chủ
  • Được phát triển bằng Svelte và TypeScript, mang lại giao diện nhanh và trực quan
  • Không giới hạn kích thước tệp và hỗ trợ nhiều định dạng
  • Cung cấp môi trường triển khai dễ dàng với Docker và Bun

VERT: Công cụ chuyển đổi tệp dựa trên WebAssembly

VERT là công cụ sử dụng công nghệ WebAssembly để chuyển đổi tệp ngay trong trình duyệt của người dùng. Việc chuyển đổi diễn ra mà không cần tải lên đám mây, nên có ưu điểm về bảo vệ quyền riêng tư và tốc độ xử lý nhanh. Có thể xem bản demo chính thức tại vert.sh.

Tính năng chính

  • Chuyển đổi tệp cục bộ bằng WebAssembly
  • Không giới hạn kích thước tệp
  • Hỗ trợ nhiều định dạng tệp
  • Giao diện người dùng trực quan dựa trên Svelte
  • Mặc định hoạt động cục bộ, nhưng tệp video cũng có thể chuyển đổi qua máy chủ; ngoài ra có thể tự host để xử lý hoàn toàn cục bộ

Bắt đầu với dự án

Yêu cầu chuẩn bị

  • Cần cài runtime Bun

Quy trình cài đặt

  • Clone kho Git và cài dependency bằng lệnh bun i

Chạy máy chủ cục bộ

Build production

  • Tạo tệp .env, sau đó build static site bằng lệnh bun run build
  • Kết quả build được tạo trong thư mục build và có thể phục vụ qua web server như nginx
  • Có kèm tệp ví dụ nginx.conf
  • Cần duy trì cấu hình cross-origin isolation

Khi dùng Docker

  • Sau khi clone kho, build Docker image:
    • docker build -t VERT-sh/vert ...
  • Chạy Docker container:
    • docker run --restart unless-stopped -p 3000:3000 -d --name "vert" VERT-sh/vert
  • Hoặc dùng tệp docker-compose.yml:
    • Quản lý bằng docker compose up, docker compose down
    • Có thể rebuild image với tùy chọn --build
    • Có thể chạy nền với tùy chọn -d

Giấy phép

  • Được phát hành dưới dạng mã nguồn mở theo giấy phép AGPL-3.0

3 bình luận

 
laeyoung 2025-05-12

Trông có vẻ ổn đấy

 
lifelectronics 2025-04-13

Đây là lần đầu tôi để lại bình luận. Tôi cũng sẽ mong chờ những tin tức được đăng lên trong thời gian tới.
Điểm ấn tượng là nó hoạt động theo kiểu on-device/local, hơn nữa giao diện cũng trực quan nên rất ổn, chắc tôi phải thử dùng thêm một chút.

 
GN⁺ 2025-04-13
Ý kiến trên Hacker News
  • ffmpeg là một phần mềm tuyệt vời, không thể thiếu trên Internet
  • Có một câu quen thuộc: "Nếu bạn không trả tiền cho sản phẩm, thì bạn chính là sản phẩm"
    • Việc lưu trữ phần chuyển đổi video trên máy chủ miễn phí bằng cách dùng GPU, v.v. nghe có vẻ kỳ lạ
    • Nếu ngoài việc thu thập dữ liệu qua Plausible mà không có cách nào khác, thì sẽ khó duy trì hỗ trợ lâu dài
    • Tò mò không biết còn điểm nào khác có thể giải thích tình huống này không
  • Gần đây đã phát hiện các trang web "trình chuyển đổi tệp miễn phí" chèn mã độc
    • Tôi đã muốn tự dựng một máy chủ như thế này cho gia đình
    • Dự án này khớp chính xác với thứ tôi đang tìm
  • Mã nguồn được mở và có thể sử dụng
    • Giấy phép AGPL phù hợp với sản phẩm này
    • AGPL có điều khoản sử dụng qua mạng, nên khi phần mềm được dùng qua mạng thì phải công khai mã nguồn
    • Ngay cả khi dùng sản phẩm SaaS cũng phải chia sẻ mã nguồn
  • Dự án rất hay và hữu ích, nhưng thông tin phân tích tự động thu thập phải nằm ở trang chính
    • Dùng Plausible thì ổn, nhưng giấu nó ở cuối màn hình cài đặt làm giảm sự tin tưởng
    • Có thể kiểm toán mã nguồn, nhưng đó không phải điểm cốt lõi
    • Mong tác giả xem bình luận này như một đề xuất/phản hồi
  • Dự án này sử dụng
    • libvips (wasm): chuyển đổi hình ảnh
    • ffmpeg (wasm): chuyển đổi âm thanh
    • ffmpeg (remote, qua vertd): chuyển đổi video, máy chủ có tùy chọn dùng wasm ffmpeg
    • Xem trên GitHub thì các định dạng còn thiếu thường do khó liên kết thư viện vào wasm libvips/ffmpeg
  • Đây là một UI tuyệt vời cho ffmpeg
    • Tôi ước gì trang đích có nhắc đến điều đó
  • Vert có phải là phiên bản đơn giản hóa của <a href="https://ffmpeg-web.netlify.app/" rel="nofollow">https://ffmpeg-web.netlify.app/</a>; không?
  • Tôi sẽ thêm dự án này vào bookmark
    • Chừng nào việc chuyển đổi video còn yêu cầu tải lên máy chủ xử lý, thì có lẽ gọi trực tiếp ffmpeg sẽ tốt hơn
    • Thời gian tải lên và tải xuống với các tệp lớn có thể là vấn đề
    • Nếu chuyển đổi video có thể chạy hoàn toàn trong WASM thì vấn đề này có thể được giảm thiểu tối đa
  • Một dự án khác: ConvertX