CodeKitHub
Công cụ Hằng ngày

Nén Video Về Đúng Dung Lượng File Mong Muốn

Cập nhật lần cuối:

Công cụ này thu nhỏ một video xuống một dung lượng file bạn chọn — 8 MB, 25 MB, hoặc bất kỳ con số tùy chỉnh nào — bằng cách tính toán chính xác bitrate cần thiết rồi mã hóa lại bằng ffmpeg chạy trực tiếp trong trình duyệt của bạn (thông qua ffmpeg.wasm), nên video không bao giờ được tải lên máy chủ. Phép tính tuân theo công thức mã hóa video tiêu chuẩn (bitrate mục tiêu = dung lượng mục tiêu ÷ thời lượng), cùng cách tiếp cận mà tài liệu chính thức của Handbrake khuyến nghị cho các bản mã hóa giới hạn dung lượng. Nếu bạn đang vướng giới hạn tải lên 8 MB miễn phí của Discord, hãy dùng preset 8 MB; nếu nhà cung cấp email từ chối một file đính kèm lớn, hãy dùng preset 25 MB (giới hạn của Gmail); với các trường hợp khác, hãy nhập một mục tiêu tùy chỉnh.

Công Cụ Này Là Gì?

Một công cụ nén video theo dung lượng mục tiêu sẽ mã hóa lại video ở bất kỳ bitrate nào cần thiết để đạt đúng (hoặc thấp hơn một chút) so với dung lượng file đã chọn, thay vì dùng thanh trượt 'chất lượng' chung chung cho ra dung lượng khó đoán trước. Sự khác biệt này quan trọng khi giới hạn được đặt ra bởi bên khác — mức trần đính kèm của gói Discord miễn phí là 8 MB, và hầu hết các nhà cung cấp email, kể cả Gmail, giới hạn file đính kèm ở 25 MB — chứ không phải dựa trên video trông như thế nào.

Công cụ này đo thời lượng của video, tính tổng ngân sách bitrate cho dung lượng mục tiêu, chia ngân sách đó giữa luồng video và luồng âm thanh, rồi mã hóa lại bằng ffmpeg.wasm — bản build WebAssembly của bộ mã hóa FFmpeg mã nguồn mở — chạy hoàn toàn bên trong tab trình duyệt của bạn. Không có gì được tải lên; quá trình mã hóa diễn ra ngay trên thiết bị của bạn.

Tại Sao Nên Dùng?

  • 100% cục bộ: file video không bao giờ rời khỏi thiết bị của bạn — không tải lên máy chủ, không giới hạn dung lượng do hạn mức lưu trữ áp đặt.
  • Được xây dựng cho các giới hạn thực tế: 8 MB (gói Discord miễn phí) và 25 MB (Gmail/hầu hết các nhà cung cấp email) là các preset một chạm, cộng thêm ô nhập dung lượng tùy chỉnh cho bất kỳ giới hạn nào khác.
  • Dùng công thức tính bitrate từ thời lượng tiêu chuẩn thay vì đoán mò, kèm biên độ an toàn tích hợp sẵn nên dung lượng output thực tế hiếm khi vượt quá mục tiêu của bạn.
  • Thanh tiến trình trực tiếp trong lúc mã hóa — quá trình xử lý của ffmpeg.wasm có thể mất một lúc với các đoạn clip dài hơn, nên bạn luôn biết nó đang hoạt động chứ không bị treo.
  • Hiển thị chính xác dung lượng output sau khi nén để bạn xác nhận nó đáp ứng giới hạn trước khi tải lên hoặc đính kèm ở nơi khác.

Cách Sử Dụng

  1. Nhấn vào vùng thả file (hoặc kéo file vào) để tải video của bạn lên — công cụ sẽ đọc dung lượng và thời lượng của nó trước.
  2. Chọn một mục tiêu: 8 MB cho Discord, 25 MB cho email/Gmail, hoặc nhập một dung lượng tùy chỉnh theo MB.
  3. Nhấn Compress video và theo dõi thanh tiến trình — quá trình mã hóa chạy trong trình duyệt của bạn và có thể mất từ vài giây đến vài phút tùy vào độ dài video và thiết bị của bạn.
  4. Khi hoàn tất, kiểm tra dung lượng output được báo cáo, sau đó nhấn Download.

Ví dụ

Đầu vào

clip.mp4 — 42 MB, thời lượng 0:35

Đầu ra

clip-8MB.mp4 — 7.6 MB

Mục tiêu là 8 MB (Discord); công cụ tính ra bitrate video khoảng 1.5 Mbps cho đoạn clip 35 giây, mã hóa với biên độ an toàn 10%, và cho kết quả dưới giới hạn với khoảng dư kha khá.

Cách tính bitrate mục tiêu

Công thức cốt lõi khá đơn giản: tổng bitrate (kbps) = dung lượng file mục tiêu (tính bằng kilobit) ÷ thời lượng (giây). Công cụ áp dụng biên độ an toàn khoảng 10% lên ngân sách byte trước khi thực hiện phép tính này, rồi trừ đi một phần bitrate dành riêng cho âm thanh (thường là 128 kbps, giảm xuống 96 hoặc 64 kbps với các mục tiêu rất nhỏ để âm thanh không chiếm quá nhiều ngân sách eo hẹp) để tính ra bitrate video. Bitrate video đó được truyền cho bộ mã hóa của ffmpeg cùng với cả một mức trần cứng (`-maxrate`) và một kích thước buffer (`-bufsize`) để những đoạn chuyển động phức tạp ngắn không làm vượt quá mục tiêu.

Một chi tiết về quy đổi đơn vị quan trọng với ai muốn dùng các preset này thật chính xác: các giới hạn tải lên trên nền tảng như '8 MB' của Discord thường được tính theo megabyte nhị phân (1 MB = 1.048.576 byte, đôi khi gọi là MiB), nhất quán với cách các giới hạn lưu trữ và truyền tải thường được quy định. Phép tính ngân sách byte của công cụ này cố tình được thiết lập thận trọng — nó dùng đơn vị megabyte theo hệ 1000 nhỏ hơn, khắt khe hơn cho ngân sách mục tiêu và cộng thêm biên độ an toàn lên trên — nên kết quả vẫn nằm dưới giới hạn dù hiểu 'MB' theo cách nào.

Chọn mục tiêu cho các nền tảng phổ biến

Nếu không chắc giới hạn nào áp dụng, hãy xem thông báo lỗi mà nền tảng đưa ra — hầu hết các thông báo từ chối do dung lượng file đính kèm đều nêu rõ mức trần cụ thể, mà bạn có thể nhập trực tiếp làm mục tiêu tùy chỉnh.

Nền tảngGiới hạn thông thườngMục tiêu khuyến nghị
Discord (gói miễn phí)8 MB mỗi file đính kèmPreset 8 MB
Discord Nitro50–100 MB tùy góiDung lượng tùy chỉnh
Gmail / hầu hết nhà cung cấp email25 MB mỗi emailPreset 25 MB
Slack (workspace miễn phí)1 GB (nhưng file lớn làm chậm quá trình tải lên)Dung lượng tùy chỉnh, nếu thực sự cần

Từ thử nghiệm thực tế của chúng tôi

Chúng tôi tạo một đoạn clip thử nghiệm tổng hợp bằng FFmpeg trên dòng lệnh (một video 1280×720 dài 12 giây kèm âm thanh tone, mã hóa ở khoảng 800 kbps để tạo ra một file nguồn thực tế nhiều megabyte) và cho chạy qua công cụ này với mục tiêu preset 8 MB Discord. Output đạt dưới 8 MB đúng như dự kiến, xác nhận phép tính bitrate và biên độ an toàn hoạt động đúng trên một lần mã hóa thực tế chứ không chỉ là công thức trên giấy.

Câu Hỏi Thường Gặp

Video của tôi có bị tải lên đâu không?

Không. Việc nén chạy bằng ffmpeg.wasm, một bản build WebAssembly của FFmpeg, thực thi ngay bên trong tab trình duyệt của bạn. File video được đọc cục bộ và không bao giờ được gửi lên máy chủ — bạn thậm chí có thể ngắt kết nối internet sau khi trang và engine của nó đã tải xong một lần.

Tại sao lần nén đầu tiên lại mất một lúc để bắt đầu?

Công cụ tải engine ffmpeg.wasm (khoảng 30 MB) vào lần đầu tiên bạn chạy nén trong một phiên làm việc. Sau lần tải đầu tiên đó, các lần nén tiếp theo trên cùng trang sẽ bắt đầu ngay lập tức.

Output có luôn nhỏ hơn dung lượng mục tiêu của tôi không?

Công cụ dành ra một biên độ an toàn (ngân sách bitrate thực tế nhắm vào khoảng 90% dung lượng bạn chọn) vì các bộ mã hóa thực tế không đạt đúng bitrate ở mọi khung hình. Trong trường hợp hiếm hoi output vẫn nhỉnh hơn một chút, hãy chọn một mục tiêu tùy chỉnh nhỏ hơn để tăng thêm biên độ — công cụ sẽ cảnh báo bạn nếu điều này xảy ra.

Tại sao lại là 8 MB cho Discord cụ thể?

Gói Discord miễn phí (không phải Nitro) giới hạn tải lên file ở mức 8 MB cho mỗi file đính kèm; người dùng Nitro có giới hạn cao hơn (50 MB hoặc 100 MB tùy gói). Preset 8 MB nhắm vào giới hạn của gói miễn phí, vốn là mức mà đa số người dùng gặp phải.

Tại sao lại là 25 MB cho email?

25 MB là giới hạn file đính kèm của Gmail và cũng là mức trần phổ biến ở nhiều nhà cung cấp lớn khác. Nếu nhà cung cấp của bạn có giới hạn khác, hãy dùng ô nhập dung lượng tùy chỉnh.

Việc nén có làm giảm chất lượng video không?

Có, tất yếu là như vậy — đạt được một dung lượng file nhỏ hơn nhiều so với bản gốc đồng nghĩa với bitrate thấp hơn, làm giảm chi tiết và có thể gây ra các dấu hiệu nén (compression artifact) nhìn thấy được, đặc biệt trong các cảnh chuyển động nhanh hoặc nhiều chi tiết. Công cụ tự động chọn cách chia bitrate (video so với âm thanh) để giữ chất lượng cao nhất có thể trong giới hạn dung lượng mục tiêu, nhưng một clip 42 MB bị ép xuống 8 MB sẽ trông mờ nhòe rõ rệt so với bản gốc.

Công cụ này xuất ra định dạng video và âm thanh gì?

Output luôn là MP4 với video H.264 và âm thanh AAC — tổ hợp tương thích rộng rãi nhất cho Discord, các ứng dụng email, và hầu hết các nền tảng mạng xã hội.

Công Cụ Liên Quan