Nén GIF Online - Giảm Dung Lượng File GIF
Thu nhỏ ảnh GIF động vừa đủ để lọt qua giới hạn tải lên, mà không gửi file đi đâu cả. Việc nén chạy cục bộ bằng gifsicle biên dịch sang WebAssembly.
- Không tải lên, không cần đăng ký
- Ảnh xuất ra không có watermark
- Giữ nguyên chuyển động và nền trong suốt
Vì sao file GIF lại nặng đến vậy
GIF lưu mỗi khung hình như một ảnh riêng với bảng màu riêng. Một đoạn quay màn hình 3 giây ở 15 khung hình mỗi giây là 45 ảnh được lưu, nên dung lượng tăng theo cả thời lượng, tốc độ khung hình lẫn diện tích điểm ảnh. Đó là lý do một đoạn ngắn chỉ nặng 400 KB dưới dạng MP4 lại thành file GIF 6 MB.
GIF cũng không có nén liên khung thực sự, ngoài việc chỉ lưu phần hình chữ nhật thay đổi của mỗi khung. Khi đoạn quay có dải chuyển màu, nhiễu tán sắc hoặc cả khung hình dịch chuyển, gần như mọi điểm ảnh đều đổi giữa các khung và phép tối ưu đó hết tác dụng.
Đó chính là những gì một công cụ nén GIF làm được: nó không thể đổi file sang một chuẩn mã hoá tốt hơn, nên chỉ có thể thu gọn bảng màu, làm mượt phần nhiễu cản trở việc nén, thu nhỏ khung hình, hoặc bỏ bớt khung. Mỗi lựa chọn đều là một đánh đổi nhìn thấy được, vì vậy chúng được tách riêng thay vì gộp hết vào một thanh trượt.
Mỗi thiết lập thực sự làm gì
Có bốn cần gạt làm giảm dung lượng, và chúng làm hỏng ảnh theo những cách khác nhau. Biết nên chỉnh cái nào sẽ đỡ mất rất nhiều lần thử.
Mức tổn hao
Cho phép gộp các điểm ảnh gần nhau về cùng một ô trong bảng màu, nhờ đó các đoạn lặp nén tốt hơn. Đây là phần lợi lớn nhất với GIF chuyển từ video: trong thử nghiệm, một đoạn 228 KB giảm thêm 7% ở mức 30, 15% ở mức 80 và 25% ở mức 200. Với đoạn quay giao diện toàn màu phẳng thì gần như không tác dụng, vì vốn không có nhiễu tán sắc để làm mượt.
Số màu
Giảm bảng màu từ 256 xuống ít nhất 2 màu. Ảnh chụp và ảnh nhiều dải chuyển màu sẽ lộ vệt rất nhanh; còn ảnh chụp giao diện phẳng và hình nét thường vẫn ổn ở 64 hay thậm chí 32 màu mà mắt thường không nhận ra.
Thu nhỏ
Thu nhỏ từng khung hình. Dung lượng giảm xấp xỉ theo diện tích điểm ảnh, nên còn 75% chiều rộng tức là chỉ còn khoảng một nửa số điểm ảnh. Đây thường là cách giảm đáng tin cậy nhất khi file GIF buộc phải lọt qua một giới hạn cứng.
Bỏ bớt khung hình
Xoá 1 trong mỗi 2 hoặc mỗi 3 khung hình. Dung lượng giảm gần như theo tỉ lệ, đổi lại chuyển động sẽ giật hơn. Hợp với các đoạn quay màn hình dài, không hợp với ảnh phản ứng ngắn vốn sống nhờ nhịp điệu.
Cách nén một file GIF
Toàn bộ quá trình chạy ngay trong tab trình duyệt này. Không có gì được tải lên và cũng không phải xếp hàng chờ.
- Kéo một file GIF vào công cụ hoặc chọn từ thiết bị của bạn.
- Chọn một mức nén, hoặc mở phần cài đặt nâng cao để tự chỉnh số màu, mức tổn hao, thu nhỏ và bỏ bớt khung hình.
- Bấm Nén GIF rồi so sánh dung lượng trước và sau.
- Tải kết quả về. File xuất ra là một ảnh GIF bình thường, không có watermark.
Khi nào GIF không thể nhỏ thêm nhiều nữa
Nếu file GIF đã qua một lần nén, phần dễ ăn đã hết. Tăng mức tổn hao vẫn làm nó nhỏ đi, nhưng đến một lúc nào đó vệt nhiễu sẽ hiện rõ trước khi dung lượng giảm đáng kể. Cách kiểm tra tốt hơn là so ảnh trước và sau ở kích thước thật, thay vì chỉ nhìn con số phần trăm.
Ảnh động ngắn và rất ít màu là trường hợp khác gần như không nén thêm được. Một vòng xoay tải trang hai màu vốn đã sát mức nhỏ nhất mà GIF có thể đạt tới, bảng màu và mức tổn hao chẳng còn gì để bỏ đi.
Các đoạn quay quá dài hoặc quá lớn thì vướng một giới hạn cứng hơn. Một đoạn quay màn hình toàn chiều rộng dài 20 giây sẽ không thể xuống dưới 5 MB mà vẫn giữ chất lượng chấp nhận được, dù bạn chỉnh thế nào. Với trường hợp đó thì video mới là định dạng đúng: cùng đoạn quay ấy ở dạng MP4 sẽ nhẹ hơn nhiều mà chất lượng lại tốt hơn.
Một thứ tự hữu ích khi bạn nén GIF để lọt qua một giới hạn cứng: thu nhỏ trước, vì đây là cách giảm dễ đoán nhất và mất ít chất lượng nhìn thấy được nhất trên mỗi kilobyte tiết kiệm. Sau đó tăng mức tổn hao đến khi vùng màu phẳng bắt đầu lộ nhiễu. Tiếp theo mới giảm số màu, vừa giảm vừa để ý các dải chuyển màu. Cuối cùng mới bỏ bớt khung hình, vì chuyển động giật thường là thứ người xem nhận ra đầu tiên.
Giới hạn dung lượng GIF trên các nền tảng phổ biến
Phần lớn mọi người nén GIF vì có chỗ nào đó không nhận file. Đây là các ngưỡng nên nhắm tới, và cách thường dùng để đưa một đoạn quay màn hình xuống dưới ngưỡng đó.
| Slack | Tải lên vẫn được, nhưng file trên khoảng 2 MB sẽ tải chậm trong kênh đông người | Đoạn ngắn dùng Cân bằng là đủ; đoạn quay toàn chiều rộng thì thu nhỏ còn 75%. |
| Discord | 10 MB với tài khoản miễn phí | Đoạn quay dài cần mức Mạnh kèm thu nhỏ. Discord cũng nhận MP4, vốn nhẹ hơn nhiều. |
| WhatsApp | Chuyển GIF thành video, nhưng file quá lớn thì không gửi được | Dùng Nhỏ nhất, hoặc bỏ 1 trong mỗi 2 khung hình nếu chuyển động vẫn đủ rõ. |
| Email | Thường 20-25 MB cho cả thư | Nén file GIF trước; nếu nó là tệp đính kèm chính thì cân nhắc gửi liên kết thay vì đính kèm. |
| Issue và pull request trên GitHub | 10 MB mỗi file | Cân bằng với 128 màu vừa giữ ảnh quay giao diện dễ đọc, vừa lọt giới hạn thoải mái. |
| Trang web | Không có giới hạn cứng, nhưng GIF làm hỏng Core Web Vitals rất nhanh | Nén để dùng tạm, rồi chuyển tài nguyên đó sang MP4 hoặc WebP khi có thể. |
Nếu dùng Nhỏ nhất mà file GIF vẫn không lọt, tức là đoạn đó quá dài so với khả năng của định dạng GIF. Câu trả lời trung thực là chuyển sang video: cùng đoạn quay ấy ở dạng MP4 thường nhẹ hơn GIF đã nén từ năm đến mười lần, mà chất lượng còn tốt hơn.
Câu hỏi thường gặp
Chuyển động có được giữ nguyên không? ▾
Có. Mọi khung hình, thời lượng từng khung và thiết lập lặp đều được giữ. Khung hình chỉ bị xoá khi bạn chủ động bật tuỳ chọn bỏ bớt khung hình.
Nền trong suốt có được giữ không? ▾
Có. Vùng trong suốt vẫn trong suốt, nên sticker GIF hay logo động vẫn nằm gọn trên mọi nền màu.
Có giới hạn dung lượng file không? ▾
Không có giới hạn cố định. Việc nén diễn ra trong trình duyệt nên trần thực tế là bộ nhớ máy bạn. File GIF rất lớn chỉ đơn giản là xử lý lâu hơn.
File GIF của tôi có bị tải lên máy chủ không? ▾
Không. Bộ nén là gifsicle biên dịch sang WebAssembly và nó chạy ngay trong trang này. File không rời khỏi thiết bị của bạn — điều này quan trọng với các bản quay sản phẩm chưa phát hành và mọi thứ có chứa dữ liệu khách hàng.
Có bị đóng watermark không? ▾
Không. Thứ bạn tải về đúng là file GIF đã nén, không thêm gì khác, và cũng không cần tài khoản.
Nén hai lần thì file có nhỏ hơn không? ▾
Hiếm khi nhỏ hơn đáng kể. Việc giảm bảng màu và làm mượt có tổn hao không cộng dồn một cách hữu ích, nên chạy lại cùng thiết lập sẽ cho ra gần như cùng một file. Hãy đổi thiết lập — thu nhỏ khung hình hoặc giảm số màu — thay vì lặp lại đúng lần nén cũ.
Vì sao file gần như không nhỏ đi? ▾
Nhiều khả năng file GIF đó đã được tối ưu từ trước. Hãy thử mức nén mạnh hơn, giảm số màu, thu nhỏ khung hình, hoặc bỏ 1 trong mỗi 2 khung. Nếu vẫn không lọt, đoạn đó có lẽ quá dài so với định dạng GIF ở kích thước ấy.