Bộ chuyển đổi Video sang GIF miễn phí

Chuyển đổi clip video sang GIF động chất lượng cao với phương pháp bảng màu hai lượt.

100% phía máy khách · tệp của bạn không bao giờ rời khỏi thiết bị

Kéo và thả tệp video vào đây

hoặc nhấp để duyệt · MP4, WebM, MOV, AVI, MKV (tối đa 2 GB)

Việc chuyển đổi video sang GIF thực sự làm gì

Chuyển đổi video sang GIF liên quan đến ba phép biến đổi đồng thời: trích xuất khung hình (dòng thời gian liên tục của video được lấy mẫu ở một tốc độ cố định, thường là 10 đến 24 fps), lượng tử hóa bảng màu (mỗi khung hình được giảm từ 16 triệu màu xuống tối đa 256 màu từ một bảng màu được chọn, vì GIF chỉ có thể lưu trữ 256 màu mỗi khung hình) và nén LZW (các khung hình bảng màu được lập chỉ mục được nén bằng cùng thuật toán không mất dữ liệu mà GIF đã sử dụng kể từ năm 1987). Kết quả là một tệp duy nhất chứa tất cả các khung hình, bảng màu và thông tin thời gian, có thể phát trên bất kỳ thiết bị nào hỗ trợ GIF (về cơ bản là mọi thiết bị được tạo ra trong 30 năm qua).

Bước bảng màu là nơi chất lượng được lấy hoặc mất. Một cách tiếp cận bảng màu đơn ngây thơ chọn 256 màu xấp xỉ toàn bộ clip, hoạt động cho nội dung thang xám nhưng thất bại trên cảnh quay giàu màu sắc (tông da bị phân dải, gradient bị posterized). Cách tiếp cận bảng màu hai lượt mà công cụ này sử dụng chạy bộ lọc palettegen của FFmpeg trước để phân tích mọi khung hình và xây dựng một bảng màu 256 màu được tối ưu hóa, sau đó chạy paletteuse với dithering để ánh xạ mỗi pixel của mỗi khung hình sang màu bảng màu gần nhất. Kết quả là chất lượng tốt hơn đáng kể ở cùng kích thước tệp, đặc biệt trên khuôn mặt, hoàng hôn và nội dung nhiều màu sắc.

Hiệu quả nén GIF kém so với video hiện đại. Một clip 480p 5 giây có thể là 500 KB dưới dạng MP4 (H.264) nhưng 8 đến 15 MB dưới dạng GIF ở cùng kích thước. Đây là điều cơ bản đối với định dạng, không phải bộ mã hóa: LZW từ năm 1987 không thể cạnh tranh với H.264 hoặc VP9. Để giữ GIF nhỏ, bạn có ba đòn bẩy: tốc độ khung hình thấp hơn (10 fps so với 24 fps gần như giảm một nửa kích thước), kích thước nhỏ hơn (480px chiều rộng so với 800px chiều rộng nhỏ hơn 2 lần), và thời lượng ngắn hơn (5 giây so với 10 giây chính xác là một nửa). Cả ba đều được hiển thị làm điều khiển trong công cụ này.

Cách công cụ này hoạt động bên trong

Cùng động cơ ffmpeg.wasm như các công cụ video khác: FFmpeg được biên dịch sang WebAssembly qua Emscripten, nhị phân phía trình duyệt ~30 MB, chạy hoàn toàn trong tab thông qua đa luồng SharedArrayBuffer. Khi bạn thả một video, tệp được đọc vào hệ thống tệp ảo WebAssembly thông qua trình đọc luồng.

Việc chuyển đổi hai lượt chạy như hai lệnh gọi FFmpeg riêng biệt. Lượt đầu tiên: -i input.mp4 -ss 0 -t 5 -vf "fps=10,scale=480:-1:flags=lanczos,palettegen" palette.png. Điều này cắt đến phạm vi được chọn, lấy mẫu ở tốc độ khung hình mục tiêu, mở rộng đến chiều rộng mục tiêu với bộ lọc Lanczos và tạo ra một bảng màu được tối ưu hóa. Lượt thứ hai: -i input.mp4 -i palette.png -ss 0 -t 5 -filter_complex "fps=10,scale=480:-1:flags=lanczos[x];[x][1:v]paletteuse=dither=bayer:bayer_scale=5" output.gif. Điều này áp dụng cùng cắt/fps/quy mô và sau đó ánh xạ các pixel của mỗi khung hình đến bảng màu bằng cách sử dụng dithering Bayer cho các gradient mượt mà hơn.

Mẫu dithering Bayer là một ma trận dither có trật tự 8x8 xác định phân phối lỗi lượng tử hóa trên các pixel lân cận, làm cho banding ít hiển thị hơn với chi phí là một kết cấu chéo-hatched mờ. Các chế độ dither khác (Floyd-Steinberg, Sierra) tạo ra kết quả mượt mà hơn nhưng với chi phí kích thước tệp lớn hơn một chút. Các thông điệp tiến trình phát từ stderr của FFmpeg và cập nhật thanh tiến trình trên màn hình theo thời gian thực. GIF kết quả được xây dựng trong bộ nhớ và được cung cấp dưới dạng tải xuống thông qua API blob của trình duyệt.

Lịch sử ngắn gọn về định dạng GIF

Cách hoạt động

  1. Tải video lên: Chọn tệp MP4, WebM hoặc MOV. Đối với video lớn, bạn có thể cắt ngắn đến phần muốn chuyển đổi.
  2. Đặt tùy chọn GIF: Chọn tốc độ khung hình, kích thước và tùy chọn đặt thời gian bắt đầu và kết thúc để trích xuất một clip.
  3. Tải xuống GIF: Nhấp Chuyển đổi và tải xuống tệp GIF động.

Tại sao sử dụng Bộ chuyển đổi Video sang GIF?

GIF động là định dạng phổ quát cho các clip ngắn lặp lại, tương thích ở mọi nơi bao gồm ứng dụng trò chuyện, mạng xã hội, email, trình theo dõi vấn đề và tài liệu. Nhưng video MP4 và WebM không lặp lại hoặc nhúng theo cách giống như GIF. Chuyển đổi các clip video ngắn sang GIF là kỹ thuật hàng đầu cho clip phản ứng, vòng lặp demo, điểm nổi bật hướng dẫn và khoảnh khắc có thể chia sẻ. Công cụ dựa trên trình duyệt này xử lý chuyển đổi mà không cần phần mềm hoặc xử lý đám mây.

Tính năng

Quy trình chuyển đổi GIF trong thế giới thực

Các cạm bẫy phổ biến và ý nghĩa của chúng

Quyền riêng tư: video của bạn không bao giờ rời khỏi thiết bị của bạn

Các dịch vụ video sang GIF đám mây (bộ chuyển đổi tải lên của Giphy, ezgif.com, Convertio, và hàng tá khác) tất cả đều tải lên video đầy đủ của bạn, chạy FFmpeg trên phần cứng của họ, và gửi lại GIF kết quả. Đối với một video điện thoại 200 MB đó là 200 MB lên cộng với 5 đến 30 MB xuống qua cơ sở hạ tầng của họ. Nội dung video thường bao gồm khuôn mặt, vị trí, âm thanh của các cuộc trò chuyện (mà GIF sẽ loại bỏ nhưng nhà điều hành vẫn có), ghi màn hình của các giao diện riêng tư. Hầu hết các nhà điều hành công bố các chính sách quyền riêng tư cam kết xóa các tải lên trong vòng 1 đến 24 giờ và mã hóa trong quá trình truyền, và những người lớn có chứng nhận ISO/IEC 27001. Họ có lý do kinh doanh mạnh mẽ để tôn trọng các chính sách đó. Nhưng "xóa trong vòng một giờ" không phải là "không bao giờ được nhìn thấy". Trong cửa sổ đó, tệp nằm trên cơ sở hạ tầng của nhà điều hành, có thể truy cập bằng bất kỳ quy trình hoặc người nào có quyền phù hợp, hiển thị trong nhật ký và sao lưu theo chính sách lưu giữ của nhà điều hành.

Công cụ này không bao giờ tải lên bất cứ điều gì. Toàn bộ đường ống (chọn tệp, giải mã thông qua trình đọc gốc của trình duyệt, tạo bảng màu và mã hóa GIF thông qua WebAssembly ffmpeg.wasm, tải xuống thông qua API blob của trình duyệt) chạy bên trong tab trình duyệt của bạn. Không có tải lên, không có yêu cầu mạng nào mang dữ liệu video, không có mục nhật ký. Bạn có thể xác minh bằng cách mở các công cụ dành cho nhà phát triển trình duyệt trên tab Mạng trước khi chuyển đổi: không có yêu cầu nào ra với nội dung video. Chỉ tải trang đầu tiên và tải xuống ffmpeg.wasm khoảng 30 MB một lần (được lưu vào bộ đệm cho các lần truy cập tiếp theo) chạm vào mạng. Đặt trình duyệt ở chế độ máy bay sau khi tải trang và bộ chuyển đổi vẫn hoạt động trên các tệp cục bộ.

Khi một công cụ khác là lựa chọn đúng

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

Tại sao tệp GIF của tôi lại lớn như vậy?

GIF sử dụng thuật toán nén cũ hơn (LZW) kém hiệu quả hơn nhiều so với các codec video hiện đại. Một clip 5 giây có thể dễ dàng lên đến 5–20 MB dưới dạng GIF nhưng chỉ 500 KB dưới dạng MP4. Giảm kích thước GIF bằng cách giảm tốc độ khung hình, kích thước và độ dài clip.

Độ dài video tối đa tôi có thể chuyển đổi là bao nhiêu?

Không có giới hạn bắt buộc, nhưng GIF từ các clip dài sẽ trở nên cực kỳ lớn. Để có kết quả tốt nhất, hãy giữ clip GIF dưới 10 giây. Đối với hoạt ảnh dài hơn, hãy cân nhắc sử dụng một clip lặp ngắn từ phần hay nhất trong video của bạn.

Tôi có thể chuyển GIF trở lại video không?

Về mặt kỹ thuật thì có, GIF chỉ là một chuỗi khung hình. Nhưng vì GIF sử dụng bảng màu hạn chế và tốc độ khung hình thấp, chất lượng video kết quả thường thấp hơn bản gốc. Sử dụng nguồn video gốc để có đầu ra chất lượng tốt nhất.

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

Tôi nên sử dụng tốc độ khung hình nào?

10 đến 15 fps là điểm ngọt ngào cho hầu hết các GIF: đủ mượt để đọc như chuyển động, đủ nhỏ để giữ kích thước tệp có thể quản lý. 24 fps cho chuyển động mượt mà hơn nhưng tăng gấp đôi kích thước tệp so với 12 fps. 5 fps tốt cho nội dung chậm (đầu nói chuyện, bản demo chậm) và giảm thiểu kích thước. Mắt người cảm nhận chuyển động ở 10 fps trở lên; dưới đó nó trông giống như một bài thuyết trình slide.

Tại sao GIF của tôi trông có dải màu so với video?

GIF chỉ lưu trữ 256 màu mỗi khung hình so với 16 triệu trong video. Các gradient mượt mà (bầu trời, tông da, hoàng hôn) bị phân dải thành các bước có thể nhìn thấy. Phương pháp bảng màu hai lượt mà công cụ này sử dụng giảm điều này đáng kể so với chuyển đổi một lượt ngây thơ, nhưng không thể loại bỏ hoàn toàn banding. Để có kết quả tốt nhất, nội dung nguồn với độ tương phản mạnh và ít gradient mượt mà chuyển đổi sạch; nội dung nhiều gradient mượt mà vẫn không hoàn hảo ngay cả với bảng màu tối ưu.

Tôi có nên sử dụng MP4 thay vì GIF không?

Thường thì có. MP4 với autoplay+loop+muted cho cùng trải nghiệm lặp lại ở kích thước tệp nhỏ hơn 5 đến 10 lần với độ trung thực 16 triệu màu đầy đủ. Vấn đề: không phải mọi nền tảng đều hỗ trợ các vòng lặp MP4 nội tuyến theo cách họ hỗ trợ GIF. Twitter, Reddit, Discord, GitHub Issues, và hầu hết các trang hiện đại làm; một số ứng dụng email cũ, ứng dụng trò chuyện, và diễn đàn chỉ hỗ trợ GIF. Chọn MP4 nếu đối tượng mục tiêu của bạn sử dụng các nền tảng hiện đại; chọn GIF cho khả năng tương thích tối đa.

Tại sao lượt thứ hai chậm hơn lượt đầu tiên?

Lượt đầu tiên (palettegen) chỉ phân tích thống kê màu; nó không viết một đầu ra cuối cùng, chỉ xây dựng một bảng màu 256 màu. Lượt thứ hai (paletteuse) thực sự ánh xạ mọi pixel của mọi khung hình đến màu bảng màu gần nhất, áp dụng dithering, và mã hóa luồng GIF. Bước ánh xạ pixel là điều tốn nhiều thời gian CPU nhất, đặc biệt khi dithering được bật. Đối với một GIF 5 giây 480p 10fps, hãy mong đợi 5 đến 30 giây tổng thời gian xử lý tùy thuộc vào CPU của bạn.

Có một thiết bị tương đương trên máy tính để bàn hoặc dòng lệnh không?

Có. FFmpeg CLI là công cụ điển hình, sử dụng cùng cách tiếp cận hai lượt: ffmpeg -i input.mp4 -vf "fps=10,scale=480:-1:flags=lanczos,palettegen" palette.png sau đó ffmpeg -i input.mp4 -i palette.png -filter_complex "fps=10,scale=480:-1:flags=lanczos[x];[x][1:v]paletteuse" output.gif. Gifski là một công cụ dựa trên Rust tạo ra các GIF chất lượng cao hơn FFmpeg bằng cách sử dụng các bảng màu theo từng khung hình (tệp lớn hơn, chất lượng tốt hơn). Save for Web (Legacy) của Photoshop cho GIF là quy trình GUI cổ điển cho các nhà thiết kế đồ họa.

GIF có hỗ trợ độ trong suốt không?

Có, nhưng chỉ độ trong suốt nhị phân (1-bit): mỗi pixel là hoàn toàn mờ đục hoặc hoàn toàn trong suốt, không có alpha một phần. Đây là lý do tại sao các logo và biểu tượng GIF với các cạnh mượt mà trông "lởm chởm" so với các nền khác nhau. Đối với hoạt hình pha trộn alpha mượt mà, hãy sử dụng APNG (PNG hoạt hình) hoặc WebP hoạt hình, cả hai đều hỗ trợ alpha 8-bit mỗi pixel. Đầu ra của công cụ này không bảo tồn độ trong suốt nguồn theo mặc định; nếu video của bạn có các vùng trong suốt, chúng được lấp đầy bằng màu nền đã chọn.

Công cụ liên quan

Bộ cắt Video

Bộ nén Video

Bộ chuyển đổi Video

Bộ chuyển đổi Hình ảnh