AutoCut Engine — Phân Hệ Xử Lý Video Đa Luồng & Ghép Batch
File nguồn: app.jsx · Trách nhiệm: Multi-track Pipeline, Smart Watermark, Batch Rendering
AutoCut Engine là hạt nhân xử lý video tự động hàng loạt phục vụ cho 12 thương hiệu của tập đoàn RAYMA (TikTok, Reels, Shorts). Ứng dụng chạy hoàn toàn phía trình duyệt (Client-Side), không tiêu tốn tài nguyên GPU máy chủ và bảo mật 100% dữ liệu media.
Kiến Trúc Bộ Nhớ Ảo (Virtual Storage):
Sử dụng IndexedDB (AutoCutIDB / store fs_handles) kết hợp File System Access API để lưu trữ trực tiếp File Handle từ đĩa cứng người dùng, cho phép đọc/ghi hàng chục GB video không lo tràn RAM.
Smart Dynamic Watermarking:
Tự động căn chỉnh vị trí logo (Top-Left, Top-Right, Bottom-Left, Bottom-Right, Center), hỗ trợ hiệu ứng mờ dần (Fade-in/Fade-out), điều chỉnh độ trong suốt Opacity động theo từng frame của video.Luồng Xử Lý (Execution Pipeline):
verifyPermission() & IndexedDB cache.2. Frame Slicing: Trích xuất frame timecodes theo thông số preset cấu hình.
3. Canvas Composition: Vẽ khung hình gốc + lớp watermark + typography động trên Canvas 2D.
4. WebAssembly Piping: Chuyển luồng stream sang FFmpeg WASM MT qua WorkerFS.
5. Output Delivery: Kết xuất file MP4 H.264 / AAC chuẩn nén bitrate tối ưu.
const DB_NAME = 'AutoCutIDB';
const STORE_NAME = 'fs_handles';
const saveHandle = async (key, handle) => {
const db = await getDB();
const tx = db.transaction(STORE_NAME, 'readwrite');
tx.objectStore(STORE_NAME).put(handle, key);
};
// Stream to WebAssembly via WorkerFS
await ffmpeg.FS('mount', 'WORKERFS', {
files: [inputFile]
}, '/work');
verifyPermission(); luôn check trạng thái tx.oncomplete để tránh khoá IndexedDB transaction.