Cắt video

Bộ cắt video - Cắt bớt, cắt, tách & ghép video trực tuyến — Cắt bỏ các phần không mong muốn, tách một clip thành nhiều đoạn, hoặc ghép nhiều tệp video thành một. Mọi xử lý được thực hiện cục bộ trong trình duyệt của bạn, nên tệp không bao giờ được tải lên máy chủ nào và quyền riêng tư của bạn được bảo vệ hoàn toàn.
Đầu vào được hỗ trợ: Video dùng các codec mở, không phí bản quyền như VP8/VP9/AV1/MPEG-4/FFV1 (container WebM, MKV, MP4, MOV, AVI). Định dạng đầu ra và codec được chọn bên dưới; mọi đầu ra đều được mã hóa lại cục bộ trong trình duyệt của bạn.
Lần sử dụng đầu tiên sẽ tải một engine xử lý video khoảng 30MB vào trình duyệt hiện tại. Engine được lưu đệm và tái sử dụng sau đó, vì vậy vui lòng kiên nhẫn.
🎥
Nhấn để chọn hoặc kéo và thả một tệp video
Hỗ trợ WebM, MKV, MP4, MOV, AVI và các định dạng phổ biến khác; nên dưới 500MB
Cắt bớt / Cắt: Chỉ giữ phần video nằm giữa thời điểm bắt đầu và kết thúc (định dạng HH:MM:SS hoặc chỉ số giây, ví dụ 00:00:05 hoặc 5). Đoạn đã chọn được mã hóa lại thành một tệp mới.
Tách: Chia video thành nhiều phần. Hoặc liệt kê các mốc thời gian (phân cách bằng dấu phẩy, ví dụ 00:00:10,00:00:20) hoặc tách thành một số phần bằng nhau. Mỗi phần được tải xuống riêng.
Ghép: Thêm hai hoặc nhiều tệp video, sắp xếp thứ tự, rồi ghép thành một tệp. Mọi đầu vào được mã hóa lại với cùng cài đặt, nên codec khác nhau được xử lý, nhưng để có kết quả tốt nhất hãy giữ độ phân giải và cài đặt âm thanh tương tự.
Khung khóa và GOP là gì? Vì sao cắt video khó hơn vẻ ngoài

Cắt video nghe có vẻ như xóa một lát byte, nhưng video nén không lưu hình ảnh đầy đủ. Luồng nén là một chuỗi bắt đầu bằng một hình ảnh hoàn toàn tự chứa (một khung khóa, khung I) theo sau bởi hàng chục khung chỉ lưu những gì đã thay đổi so với khung trước. Bạn không thể giải mã khung 47 nếu chưa giải mã các khung từ 1 đến 46. Chuỗi phụ thuộc đó — một khung khóa cùng mọi khung dựa vào nó — được gọi là GOP (Nhóm hình ảnh). Vì vậy, cắt là một cuộc thương lượng với cấu trúc GOP: cắt tại khung khóa thì bạn có thể sao chép byte; cắt ở chỗ khác thì phải dựng lại thứ gì đó.

Năm sự thật làm nền cho phần còn lại của trang:
• Khung I (khung khóa) = một hình ảnh đầy đủ, giải mã được độc lập; khung P = thay đổi so với khung trước; khung B = thay đổi nội suy giữa hai khung
• GOP = một khung khóa cùng các khung phụ thuộc vào nó; độ dài thông thường: 1–2 giây (ở 30 fps là 30–60 khung)
• cắt tại khung khóa = sao chép các GOP sẵn có, tức thì và không mất chất lượng, nhưng điểm cắt bị kéo về khung khóa gần nhất (lệch tối đa một độ dài GOP)
• cắt chính xác từng khung = đúng khung bạn đã chọn, nhưng GOP ở biên phải được mã hóa lại
• dung lượng phụ thuộc vào bitrate: một đoạn 60 giây ở 12 Mbps là 12×60/8 = 90 MB bất kể nội dung hình ảnh là gì
Khung I, P và B

Khung I ("intra") là một hình ảnh đầy đủ kiểu JPEG của thời điểm đó; nó lớn nhưng không cần gì khác. Khung P ("predicted") chỉ lưu phần khác biệt so với khung trước — một cảnh camera tĩnh làm khung P gần như miễn phí, đó là lý do video kiểu người nói chuyện nén rất tốt. Khung B ("bidirectional") được dự đoán từ cả khung trước và khung sau, bắt được các vật thể hiện ra rồi lại ẩn đi; nó rẻ nhất để lưu nhưng khó chỉnh sửa nhất, vì thứ tự giải mã không còn khớp với thứ tự hiển thị. Các trình chỉnh sửa ẩn sự phức tạp này đi; định dạng tệp thì không.

Vì sao cắt tại khung khóa thì tức thì và không mất chất lượng

Cắt tại khung khóa chọn các GOP nguyên vẹn và sao chép byte nén của chúng vào một container mới — không giải mã, không mã hóa lại, hoàn tất trong khoảng thời gian bằng việc ghi tệp. Cái giá là độ chính xác: điểm bắt đầu bạn yêu cầu chỉ có thể rơi vào nơi thực sự có khung khóa. Với GOP 2 giây ở 30 fps (60 khung mỗi GOP), khung khóa gần nhất có thể cách tới 59 khung, nên đoạn clip có thể bắt đầu sớm hoặc muộn đáng kể so với điểm bạn đánh dấu. Người phát trực tiếp mã hóa với khoảng khung khóa 1–2 giây chính là để việc tua vẫn nhanh; cảnh quay camera giám sát với GOP 10 giây nổi tiếng vì "nhảy" khi tua.

Vì sao cắt chính xác từng khung phải mã hóa lại

Giả sử khung bắt đầu hoàn hảo là một khung P nằm giữa một GOP. Byte nén của nó nói "giống khung trước, ngoại trừ..." — vô dụng nếu không có các khung trước đó. Để làm cho nó tự chứa, bộ cắt phải giải mã toàn bộ GOP đến khung đó, nâng khung bạn chọn thành khung khóa mới, và mã hóa lại nó (cùng mọi khung sau đó cho đến khung khóa gốc tiếp theo). Chỉ GOP ở biên phải trả chi phí này: phần còn lại của đoạn clip vẫn được sao chép từng byte. Đó là lý do cắt chính xác từng khung chậm hơn nhưng chỉ mất chất lượng một chút — một GOP được nén thêm một lần, phần còn lại không bị đụng đến.

Những hiểu lầm phổ biến
  • "Cắt chỉ là xóa một đoạn của tệp." Hầu như không có khung nào đứng độc lập trong luồng nén; mọi điểm cắt phải được đối chiếu với cấu trúc GOP trước.
  • "Mọi lần cắt đều mã hóa lại và làm giảm chất lượng." Cắt tại khung khóa không bao giờ mã hóa lại. Ngay cả cắt chính xác từng khung cũng chỉ mã hóa lại đúng GOP ở biên; mọi thứ được sao chép sau đó đều giống hệt từng bit.
  • "Điểm cắt nằm đúng chỗ tôi kéo con trỏ." Ở chế độ khung khóa nó bị kéo về khung khóa gần nhất; chỉ chế độ chính xác từng khung mới giữ đúng khung đã chọn — và đó là một lựa chọn chế độ, không phải lỗi.

Công cụ liên quan: Video sang MP4 để hiểu cơ bản về container và codec, Trích xuất khung video để lấy chính xác từng khung thành ảnh, và Thêm/trích xuất phụ đề để phân biệt phụ đề mềm và phụ đề cứng.