tooly

Nén GIF online

GIF động rất nặng vì mỗi khung hình lưu ảnh riêng của nó. Giảm tốc độ khung hình, kích thước và bảng màu sẽ làm tệp nhỏ lại đáng kể — thường 60–80%, mà hoạt ảnh vẫn nguyên vẹn.

Tệp của bạn không bao giờ rời khỏi trình duyệt

Cách sử dụng

  1. 1

    Chọn mức nén — Vừa phù hợp với hầu hết GIF.

  2. 2

    Thả tệp GIF vào ô hoặc nhấp để chọn.

  3. 3

    Tải GIF đã nén, hoặc xử lý nhiều tệp và tải về dưới dạng ZIP.

Vì sao GIF lại nặng đến vậy

GIF ra đời từ năm 1987 và được thiết kế cho đồ họa nhỏ trên đường truyền chậm, không phải cho video. Nó lưu mỗi khung hình thành một ảnh riêng được nén bằng LZW, một phương pháp nén không mất dữ liệu hoạt động tốt với những vùng màu phẳng nhưng kém với mọi thứ có nhiều nhiễu như cảnh quay từ camera, dải chuyển màu hay hạt phim. Không có cơ chế bù chuyển động như các codec video hiện đại, nên một đoạn ba giây ở 25 khung hình/giây là 75 bức ảnh gần như hoàn chỉnh xếp nối tiếp nhau.

Mỗi khung hình còn bị giới hạn ở 256 màu. Khi GIF được tạo từ video, bộ mã hóa thường rải nhiễu dithering khắp mọi khung hình để giả lập những sắc độ còn thiếu, và chính loại nhiễu đó là thứ LZW nén kém nhất. Vì thế mới có những chiếc GIF "reaction" quen thuộc nặng 15 MB, trong khi ở dạng MP4 chỉ khoảng 600 KB.

Dung lượng phụ thuộc vào số khung hình, số điểm ảnh mỗi khung và độ chi tiết màu sắc. Công cụ này giảm cả ba yếu tố.

Ba mức nén thực sự làm gì

Công cụ chạy FFmpeg được biên dịch sang WebAssembly ngay trong trình duyệt và dựng lại GIF qua hai lượt. Lượt đầu phân tích toàn bộ ảnh động và tạo ra một bảng màu tối ưu duy nhất cho nó; lượt thứ hai kết xuất lại từng khung hình bằng bảng màu đó. Khung hình được thu nhỏ bằng bộ lọc Lanczos, giữ cạnh sắc nét hơn so với lấy mẫu lại đơn giản, và màu sắc được ánh xạ bằng dithering có trật tự (Bayer), tạo ra một hoa văn đều đặn nén tốt hơn nhiều so với nhiễu ngẫu nhiên.

  • Nhẹ — 15 khung hình/giây, giữ nguyên kích thước gốc, tối đa 256 màu. Phù hợp nhất khi GIF phải giữ kích thước hiện tại, ví dụ bản demo giao diện cần đọc rõ đến từng điểm ảnh.
  • Vừa — 12 khung hình/giây, chiều rộng và chiều cao giảm còn 75%, tối đa 128 màu. Đây là mức mặc định và là sự cân bằng tốt cho hầu hết GIF trên website, trong tài liệu và trong các cuộc trò chuyện.
  • Mạnh — 10 khung hình/giây, chiều rộng và chiều cao giảm một nửa, tối đa 64 màu. Dùng khi bạn buộc phải vừa một giới hạn nghiêm ngặt, như tệp đính kèm email hay mức tải lên tối đa trên diễn đàn.

Chỉ riêng việc giảm một nửa kích thước đã loại bỏ ba phần tư số điểm ảnh, đó là lý do Mạnh có thể biến một tệp 12 MB thành dưới 2 MB. Nhịp thời gian của ảnh động được giữ nguyên: một vòng lặp ba giây vẫn kéo dài ba giây, chỉ là được vẽ bằng ít khung hình hơn.

Chọn mức nén phù hợp với nội dung

Loại ảnh động quan trọng hơn dung lượng tệp ban đầu.

  • Bản ghi màn hình và hướng dẫn giao diện có nhiều vùng phẳng và chữ sắc nét. Chúng chịu được việc giảm màu nhưng bị ảnh hưởng khi thu nhỏ, vì chữ nhỏ sẽ không đọc được nữa. Hãy thử Nhẹ trước; nếu vẫn quá lớn, hãy cắt bản ghi về đúng vùng cần thiết trước khi nén.
  • Hình minh họa, logo và sticker với ít màu phẳng trông gần như y hệt ở 64 màu. Mạnh thường dùng được, trừ khi hình vốn đã nhỏ.
  • Đoạn trích từ video hoặc cảnh quay camera có dải chuyển màu, màu da và bầu trời. Chúng sẽ bị phân dải màu ở 64 màu, nên Vừa là lựa chọn an toàn hơn. Nếu cả Vừa vẫn quá lớn, có lẽ đoạn clip quá dài cho định dạng GIF.
  • Pixel art hoàn toàn không nên thu nhỏ. Hãy dùng Nhẹ, mức giữ nguyên kích thước gốc.

Nếu bạn đang tạo GIF từ video, thường tốt hơn là kiểm soát dung lượng ngay từ lúc tạo bằng Chuyển video sang GIF và giữ đoạn clip ngắn, sau đó nén kết quả nếu cần.

Khi kết quả không như mong đợi

  • Tệp gần như không nhỏ đi. Có lẽ tệp nguồn đã được tối ưu sẵn, ví dụ kích thước nhỏ, tốc độ khung hình thấp hoặc đã bị giới hạn ở ít màu. Một GIF chạy ở 8–10 fps hầu như không được lợi gì từ bước giảm tốc độ khung hình. Hãy chuyển lên mức cao hơn một bậc.
  • Dải chuyển màu bị phân dải rõ. Đó là do bảng màu 128 hoặc 64 màu. Hãy lùi về mức nhẹ hơn.
  • Xuất hiện vân dạng lưới. Đây là hoa văn dithering có trật tự. Nó lộ rõ nhất trên các dải chuyển màu mượt ở mức Mạnh; Nhẹ hoặc Vừa sẽ giảm hiện tượng này.
  • Màu lạ ở một cảnh. Vì toàn bộ ảnh động dùng chung một bảng màu, một cảnh ngắn có màu khác thường (một chớp đỏ trong đoạn clip toàn màu xanh) sẽ nhận được ít ô màu hơn.

Giới hạn và quyền riêng tư

Công cụ chấp nhận tệp đến 100 MB và bạn có thể thả nhiều GIF cùng lúc. Chúng được xử lý lần lượt với mức nén đang chọn tại thời điểm đó, và mỗi kết quả hiển thị dung lượng trước và sau. Bạn có thể tải từng tệp riêng hoặc gộp thành một tệp ZIP.

Không có gì được tải lên. Bộ máy FFmpeg chỉ được tải về một lần rồi chạy cục bộ, nên tốc độ xử lý phụ thuộc vào thiết bị của bạn. Một GIF 20 MB thường mất từ vài giây đến một phút; điện thoại chậm hơn laptop, và những ảnh động rất dài có thể làm thiết bị cũ hết bộ nhớ.

Câu hỏi thường gặp

Dung lượng sẽ giảm bao nhiêu?

Thường 60–80%. Nhẹ giữ nguyên kích thước và bảng màu, chỉ giảm tốc độ khung hình; Vừa thu khung hình về 75% với 128 màu; Mạnh dành cho giới hạn của chat và email.

Hoạt ảnh có còn lặp lại không?

Có. Thời gian khung hình và chế độ lặp được giữ nguyên; chỉ tốc độ khung hình, kích thước và số lượng màu thay đổi.

Tệp GIF có bị tải lên không?

Không. FFmpeg chạy dưới dạng WebAssembly ngay trong trình duyệt.

Vì sao chất lượng giảm mạnh với Mạnh?

Mức này cắt bảng màu xuống còn 64 màu, giảm xuống 10 fps và giảm một nửa kích thước. Gradient bị sọc; đồ họa phẳng và bản ghi màn hình vẫn ổn.

Có nên dùng video thay vì GIF không?

Với nội dung dài hơn vài giây thì nên — MP4 nhẹ hơn nhiều. Chỉ dùng Chuyển video sang GIF theo chiều ngược lại khi bắt buộc phải là GIF.

Đọc thêm

Công cụ liên quan