Không tải lên, 100% cục bộ, không cần tài khoản

Bài viết

Tại sao GIF nặng đến vậy

Một GIF động ba giây thường nặng hơn cả một phút MP4 đầy đủ bao phủ cùng đoạn clip đó, điều này gây ngạc nhiên cho bất kỳ ai quen nghĩ video là định dạng nặng hơn. GIF chưa bao giờ được thiết kế để là một cách hiệu quả lưu chuyển động; đó là một định dạng ảnh từ năm 1987 tình cờ hỗ trợ một chuỗi khung hình, và mọi lựa chọn thiết kế đứng sau nó có trước nén video hiện đại hàng chục năm.

Một GIF là một chuỗi ảnh, không phải một luồng video

Định dạng Trao đổi Đồ họa (GIF), được CompuServe giới thiệu năm 1987 và sửa đổi thành GIF89a năm 1989, lưu một hoạt hình như một chuỗi các khung ảnh riêng lẻ phát theo thứ tự, mỗi khung là một ảnh tĩnh được nén riêng. Một codec video thật như H.264 thay vào đó mã hóa hầu hết khung hình như phần chênh lệch so với khung trước, vì các khung video liên tiếp thường rất giống nhau, chỉ lưu những gì đã thay đổi. GIF không có cơ chế tương đương: ngay cả một cảnh phần lớn tĩnh cũng lưu lại phần lớn mỗi khung hình riêng lẻ.

Sơ đồ đối chiếu GIF, lưu một ảnh đầy đủ độc lập cho mỗi khung, với một codec video, lưu hầu hết khung hình như phần chênh lệch so với khung trước

256 màu, dù nguồn có cần hay không

GIF giới hạn mỗi khung ở một bảng tối đa 256 màu, chọn từ phạm vi lớn hơn nhiều mà một bức ảnh hay video thực sự chứa. Một bản ghi màn hình hay một đoạn video với gradient mượt và ánh sáng bị làm phẳng xuống bảng màu hạn chế đó, tạo ra dải màu và rung màu (dithering) rõ rệt, và tệp vẫn phải lưu đầy đủ một khung hình dữ liệu màu đã giảm đó trên từng khung, không có nén liên-khung nào để dựa vào.

So sánh mẫu màu: một bảng màu GIF 256 màu bên cạnh dải màu đầy đủ của ảnh hay video nguồn gốc

Tại sao định dạng này chưa bao giờ có bản thay thế hiện đại

Vòng lặp hoạt hình và sự hỗ trợ phổ quát của GIF, mọi trình duyệt và ứng dụng nhắn tin đều phát được một cái mà không cần plugin, giữ nó luôn được dùng lâu sau khi có lựa chọn tốt hơn, giống cách MP3 vẫn tồn tại sau khi các codec âm thanh hiệu quả hơn ra đời. WebP và APNG đều hỗ trợ hoạt hình với nén thực sự theo từng khung và nhiều màu hơn hẳn, và tạo ra tệp nhỏ hơn rõ rệt cho cùng nội dung, nhưng không cái nào đạt tới mức hỗ trợ phổ quát của GIF trên mọi nền tảng và bối cảnh chia sẻ, nên GIF vẫn là mặc định cho một hoạt hình lặp ngắn dù nó là cách kém hiệu quả nhất để lưu một cái.

Một MP4 của cùng clip thường nhỏ hơn nhiều

Chuyển cùng đoạn clip ngắn sang MP4 với H.264 giữ được nén chênh-lệch-khung của codec video và dải màu đầy đủ, đó là lý do tệp thường ra chỉ một phần nhỏ dung lượng của GIF tương đương cho cùng nội dung và độ dài. Sự đánh đổi là một MP4 cần một trình phát video thay vì hiển thị nội tuyến như một ảnh ở mọi nơi một GIF làm được, dù hầu hết ứng dụng nhắn tin và nền tảng mạng xã hội hiện đại đã tự động phát một MP4 ngắn theo cùng cách chúng làm với một GIF.

Chuyển đổi giữa GIF và video mà không tải lên gì cả

Công cụ GIF sang video của chúng tôi mã hóa lại một GIF động thành một MP4 gọn nhẹ, và Video sang GIF làm điều ngược lại khi một GIF thật, cho một bối cảnh cụ thể cần nó, là điều bạn thực sự cần, cả hai đều hoàn toàn trong trình duyệt của bạn dùng ffmpeg biên dịch sang WebAssembly. Chuyển một GIF nặng có sẵn sang MP4 trước, rồi chỉ quay lại GIF cho vài bối cảnh thực sự đòi hỏi định dạng đó, thường là cách nhanh nhất để cắt giảm dung lượng tệp của một hoạt hình chia sẻ mà không mất vòng lặp.

Công cụ trong bài viết này

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

Tại sao một GIF ngắn nặng hơn một video MP4 dài hơn nhiều?

Một GIF lưu lại phần lớn mỗi khung hình một cách độc lập không có nén liên-khung, giới hạn ở 256 màu, trong khi một MP4 mã hóa hầu hết khung hình chỉ như phần chênh lệch so với khung trước và giữ được nhiều chi tiết màu hơn hẳn. Chi phí trên-mỗi-khung của định dạng GIF cộng dồn nhanh chóng ngay cả với một clip chỉ bằng một phần nhỏ độ dài của video.

Tôi có thể làm một GIF nhỏ hơn mà không chuyển nó sang video không?

Có, ở một mức độ nào đó: hạ tốc độ khung hình, thu nhỏ kích thước pixel, hay cắt ngắn đoạn clip đều giảm trực tiếp dung lượng một GIF, vì ít hay nhỏ khung hình hơn nghĩa là ít dữ liệu cần lưu hơn. Không điều nào trong đó thay đổi việc định dạng về căn bản thiếu nén liên-khung, đó là lý do chuyển sang MP4 thường tiết kiệm nhiều hơn hẳn so với cắt ngắn một GIF.

Một MP4 có tự động lặp lại theo cách một GIF làm không?

Hầu hết ứng dụng nhắn tin và nền tảng mạng xã hội tự động phát và lặp một MP4 ngắn nội tuyến, giống cách chúng xử lý một GIF, nên kết quả thị giác thường giống hệt đối với người xem. Một bối cảnh hiển thị thẻ ảnh thô không hỗ trợ trình phát video, một số email và phần mềm diễn đàn cũ, vẫn cần một tệp GIF thật.

Nguồn