Cắt Video
Cắt MP4, WebM, MOV ngay trên trình duyệt, không cần upload. Copy không mất chất lượng hoặc mã hóa lại chính xác từng khung, xuất faststart cho web.
Về công cụ cắt video
Công cụ cắt video trực tuyến này cho phép bạn cắt và chỉnh sửa file video ngay trên trình duyệt. Chỉ cần chọn video, chọn thời điểm bắt đầu và kết thúc bằng thanh thời gian hoặc nhập thủ công, sau đó cắt video của bạn. Tất cả quá trình xử lý diễn ra cục bộ để đảm bảo riêng tư hoàn toàn.
Cắt video có mã hóa lại và giảm chất lượng không?
Mặc định, các công cụ cắt trên trình duyệt dùng FFmpeg.wasm hay WebCodecs API thường mã hóa lại phần đã cắt để điểm cắt rơi chính xác vào mốc thời gian yêu cầu. Mã hóa lại mất chút chất lượng (ít ở CRF cao, nhiều ở CRF thấp) nhưng cho phép cắt chính xác giữa hai khung bất kỳ. Để giữ chất lượng gốc, dùng chế độ stream copy (FFmpeg -c:v copy -c:a copy), không mất dữ liệu và hoàn tất trong vài giây — nhưng điểm cắt sẽ bám vào khung khóa trước đó gần nhất thay vì thời gian chính xác. Cho clip mạng xã hội nơi chất lượng từng pixel không tối quan trọng, mã hóa lại ở CRF 18-20 là vô hình với người xem. Cho file lưu trữ hay file gốc, stream copy với sai số căn chỉnh nhỏ tốt hơn để tránh mất thế hệ.
Nút 'MP4 tối ưu cho web (faststart)' làm gì và các preset chất lượng dùng CRF nào?
Faststart chuyển moov atom của MP4/MOV (chỉ mục cho trình phát biết mỗi khung hình nằm ở đâu) từ cuối file lên đầu file. Không có nó, một clip đã cắt khi tải lên website hay CDN sẽ không thể bắt đầu phát cho đến khi tải xong toàn bộ file, làm hỏng phát tiến dần, nhúng mạng xã hội và cả xem trước trong công cụ này. Khi bật nút (mặc định), chúng tôi truyền FFmpeg -movflags +faststart cho mọi lần mã hóa lại MP4/MOV để clip phát ngay lập tức. Nó chỉ áp dụng khi mã hóa lại (Cao/Trung bình/Thấp) — chế độ Copy giữ nguyên bố cục atom của nguồn. Các preset mã hóa lại ánh xạ tới giá trị CRF cố định của H.264: Cao = CRF 18 (gần như không mất chất lượng, file lớn hơn, audio AAC 192k), Trung bình = CRF 23 (mặc định của x264, cân bằng, AAC 128k), Thấp = CRF 28 (file nhỏ hơn, nén thấy rõ trên cảnh chi tiết, AAC 96k). CRF thấp hơn nghĩa là chất lượng cao hơn và dung lượng lớn hơn; mỗi +6 giảm bitrate đi khoảng một nửa. Huy hiệu độ chính xác cạnh nút cho bạn biết cài đặt hiện tại tạo ra điểm cắt chính xác từng khung (mọi preset mã hóa lại) hay điểm cắt bám khung khóa (Copy).
Tại sao điểm bắt đầu cắt trễ vài giây dù tôi chọn đúng thời gian?
Đây là vấn đề căn chỉnh khung khóa cổ điển. Với stream copy, công cụ cắt chỉ có thể bắt đầu cắt tại khung I (khung khóa) vì khung P và B phụ thuộc vào khung trước đó để giải mã. Nếu nguồn của bạn có khung khóa mỗi 2-4 giây (điển hình cho video web), điểm cắt sẽ bám lùi về khung khóa gần nhất, khiến clip bắt đầu sớm tới 4 giây trước thời gian yêu cầu, hoặc trễ tới 4 giây nếu bám tới. Để cắt chính xác từng khung, chuyển sang chế độ mã hóa lại, giải mã các khung xung quanh và mã hóa khung khóa mới tại mốc chính xác. Cách khác, mã hóa lại nguồn trước với khoảng cách khung khóa là 1 (toàn khung I), rồi cắt stream-copy — chậm ban đầu, nhanh cho nhiều lần biên tập sau.
Cách tốt nhất để cắt nhiều clip từ một video dài là gì?
Với ít lần cắt (dưới 10), cắt từng đoạn riêng và tải xuống. Với nhiều lần cắt, quy trình hiệu quả nhất: trước tiên transcode nguồn sang định dạng toàn khung I (như ProRes, DNxHR, hoặc H.264 với khoảng cách khung khóa là 1) để mọi khung đều là khung khóa; điều này cho phép cắt stream-copy chính xác từng khung và nhanh cho mọi lần cắt tiếp theo. Sau đó chạy script cắt hàng loạt với FFmpeg, liệt kê các mốc bắt đầu/kết thúc. Phiên bản trình duyệt của công cụ này xử lý một clip mỗi lần, nhưng bạn có thể nối các lần cắt bằng cách tải lại đầu ra làm đầu vào mới. Cho biên tập đa clip không phá hủy, hãy xem xét quy trình EDL hoặc dòng thời gian XML trong NLE — công cụ cắt phù hợp nhất cho cắt đơn nhanh.

Cắt MP4 có thực sự giảm dung lượng tương ứng không?
Đại khái có — clip 10 giây từ video 100 giây 50 MB sẽ khoảng 5 MB. Nhưng không hoàn toàn tỉ lệ vì hai lý do. Thứ nhất, chi phí container (moov atom, cấu hình codec, siêu dữ liệu) thêm chi phí cố định nhỏ bất kể độ dài, nên clip rất ngắn có tỉ lệ chi phí cao hơn. Thứ hai, bitrate video thay đổi theo độ phức tạp cảnh, nên 10 giây cảnh hành động có thể chiếm nhiều dung lượng hơn 10 giây phỏng vấn tĩnh. Nếu giữ cùng codec và stream-copy, bạn bảo toàn độ chính xác byte trên phần giữ lại. Nếu mã hóa lại, có thể chọn CRF thấp hơn để clip nhỏ hơn nữa, hoặc CRF cao hơn để giữ chất lượng thị giác trên đoạn phức tạp cần nhiều bit hơn.
Có thể cắt clip chính xác từng khung, ví dụ cắt đúng tại khung 1247 không?
Có, nhưng kỹ thuật phụ thuộc vào định dạng video cho phép. Phương pháp tin cậy nhất là dùng chế độ mã hóa lại và chỉ định điểm cắt bằng giây phân số (1247 / fps), buộc bộ mã hóa tạo khung I mới tại đích chính xác. Để kết quả tốt nhất, dùng WebCodecs API nơi được hỗ trợ (Chrome 94+, Edge, Opera) — cho truy cập cấp khung thực sự mà không mã hóa lại toàn bộ luồng. Chỉ với stream copy, cắt chính xác từng khung chỉ khả thi nếu mọi khung là khung khóa (nguồn toàn khung I). Biên tập viên chuyên nghiệp thường transcode video sang codec trung gian toàn khung I (ProRes 422 hoặc DNxHR HQ) trước khi chỉnh sửa chính xác để tránh điều này — họ gọi đây là biên tập offline.
Tại sao âm thanh đôi khi lệch tiếng hình sau khi cắt?
Lệch âm thanh/hình sau cắt thường do một trong ba nguyên nhân. Thứ nhất, codec âm thanh (thường AAC) có ranh giới khung riêng (1024 mẫu mỗi khung AAC ở 48 kHz = ~21 ms) có thể không thẳng hàng với điểm cắt video, để lại độ lệch nhỏ tích tụ trong các bản biên tập dài. Thứ hai, nguồn có video tốc độ khung biến thiên (VFR) — nhiều bản ghi điện thoại và chụp màn hình dùng VFR, và công cụ cắt giả định tốc độ khung cố định (CFR) sẽ trôi theo thời gian. Thứ ba, nguồn có siêu dữ liệu trễ âm thanh riêng (danh sách chỉnh sửa trong MP4) mà công cụ cắt có thể loại bỏ hoặc bỏ qua. Khắc phục: chuyển nguồn sang CFR trước (FFmpeg -r 30 hoặc -vf fps=30), dùng công cụ cắt tôn trọng danh sách chỉnh sửa, hoặc mã hóa lại thay vì stream-copy khi cần chính xác.
Làm sao cắt mà không tải video lên máy chủ?
Mọi lần cắt trong công cụ này diễn ra cục bộ trong trình duyệt của bạn bằng FFmpeg.wasm (bản chuyển WebAssembly của FFmpeg) hoặc WebCodecs API gốc. File video được đọc vào bộ đệm bộ nhớ sandbox, xử lý bởi engine WASM chạy trên CPU của bạn, và kết quả được ghi lại trình duyệt để tải xuống. Không byte nào rời thiết bị bạn. Có thể xác minh bằng cách mở DevTools và xem tab Network — không có yêu cầu tải lên nào trong khi xử lý. Điều này khiến công cụ an toàn cho nội dung bí mật (chứng cứ pháp lý, ghi y tế, video nội bộ doanh nghiệp) nơi tải lên máy chủ bên thứ ba vi phạm chính sách bảo mật. Lệnh gọi mạng duy nhất là tải trang và file FFmpeg.wasm (được lưu cache sau lần dùng đầu).
Độ dài video hoặc dung lượng file tối đa có thể cắt là bao nhiêu?
Công cụ này áp giới hạn 100 MB mỗi file ngay trên trình duyệt. Giới hạn đó tồn tại vì FFmpeg.wasm nạp toàn bộ đầu vào vào heap WebAssembly sandbox, và mã hóa lại giữ cả nguồn lẫn đầu ra trong bộ nhớ cùng lúc; giữ dưới 100 MB giúp nhân lõi đơn luồng ổn định trên điện thoại và laptop tầm trung mà không đóng băng hay sập tab. Về lý thuyết WebAssembly cho phép tới 4 GB trên WASM 32-bit (nhiều hơn trên bản 64-bit), và trình duyệt máy bàn 16 GB RAM có thể xử lý clip lớn hơn, nhưng độ tin cậy giảm nhanh khi vượt vài trăm megabyte — nên chúng tôi giới hạn 100 MB thay vì để file lớn sập giữa chừng. Với nguồn lớn hơn, quy trình khuyến nghị là cắt stream-copy (tránh giải mã toàn bộ video) hoặc chia file thành các khối, cắt từng khối rồi nối lại. Với file vượt xa 100 MB, FFmpeg máy bàn là công cụ tốt hơn — nó stream từ ổ đĩa và không bị ràng buộc bởi bộ nhớ trình duyệt.
