Nhiều bạn hỏi mình dùng gì để biên tập video ngắn nhanh vậy. Câu trả lời hơi khác thường: không dùng CapCut, không dùng Premiere. Mình dùng một câu lệnh Terminal chạy trong ~30 giây trên MacBook, ra file MP4 đã đủ đăng.
Lý do đơn giản — 80% việc biên tập video ngắn là LẶP LẠI: khử ồn, chuẩn hoá âm lượng, thêm subtitle, chèn nhạc nền. Những cái đó code chạy được. Mình chỉ giữ CapCut cho phần cần sáng tạo (chỉnh màu, hiệu ứng đặc biệt).
Xem video demo 27 giây
Bài này chia sẻ nguyên bộ công cụ — tải miễn phí ở cuối bài. Ai đang muốn tự làm video Reels/Shorts hàng loạt cho kênh riêng đều dùng được, kể cả người chưa biết Terminal là gì. Bài viết hỗ trợ cả macOS và Windows.
🎬 Ngại gõ lệnh Terminal? Tải phần mềm CAS Edit Video — bấm 1 nút, làm tự động
Nhập email, tôi gửi link tải V2.0 — có cả Windows và macOS — vào hộp thư (kèm hướng dẫn cài + lời mời nhóm hỗ trợ). Miễn phí.
Bước 0 — Cài công cụ 1 lần duy nhất
Cả pipeline chỉ cần 3 thứ: FFmpeg (xử lý video/audio), Whisper.cpp (bóc lời tiếng Việt), Python 3. Cài 1 lần, dùng mãi.
🍎 macOS (dùng Homebrew)
# Nếu chưa có Homebrew: cài tại brew.sh
brew install ffmpeg whisper-cpp python@3.11
mkdir -p ~/whisper-models
curl -L -o ~/whisper-models/ggml-small.bin \
"https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-small.bin"
🪟 Windows (dùng winget hoặc Scoop)
Mở PowerShell as Administrator rồi copy:
# Cài Chocolatey nếu chưa có (chạy 1 lần)
Set-ExecutionPolicy Bypass -Scope Process -Force
iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
# Cài FFmpeg + Python
choco install ffmpeg python -y
# Tạo folder cho Whisper model
New-Item -ItemType Directory -Force -Path "$env:USERPROFILE\whisper-models"
# Tải Whisper.cpp binary (Windows release)
Invoke-WebRequest -Uri "https://github.com/ggerganov/whisper.cpp/releases/latest/download/whisper-bin-x64.zip" -OutFile "$env:TEMP\whisper.zip"
Expand-Archive -Path "$env:TEMP\whisper.zip" -DestinationPath "$env:USERPROFILE\whisper-cpp" -Force
# Tải Vietnamese model
Invoke-WebRequest -Uri "https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-small.bin" -OutFile "$env:USERPROFILE\whisper-models\ggml-small.bin"
Thêm $env:USERPROFILE\whisper-cpp vào Path để gọi whisper-cli.exe từ mọi nơi.
Quy trình 6 bước
Áp dụng cho mọi video ngắn 9:16 hoặc 16:9. Copy-paste từng bước, thay đúng đường dẫn file gốc của bạn.
Bước 1 — Chuẩn bị thư mục làm việc
Nguyên tắc bất di bất dịch: KHÔNG bao giờ động vào file gốc.
🍎 macOS:
mkdir -p ~/video-lam-viec/ten-video/{raw,work,output}
cp "/duong/dan/file-goc.MOV" ~/video-lam-viec/ten-video/raw/
cd ~/video-lam-viec/ten-video
🪟 Windows (PowerShell):
$dir = "$env:USERPROFILE\video-lam-viec\ten-video"
New-Item -ItemType Directory -Force -Path "$dir\raw","$dir\work","$dir\output"
Copy-Item "C:\Duong\Dan\file-goc.MOV" "$dir\raw\"
cd $dir
raw/— file gốc, KHÔNG SỬAwork/— file trung gian (audio tách, transcript, font)output/— kết quả cuối cùng để upload
Bước 2 — Đo file gốc bằng ffprobe
Không dò trước là chọn param sai — render Reels 9:16 thành 16:9 là mất công đôi. Lệnh này giống nhau trên cả 2 hệ:
ffprobe -v error -show_entries "format=duration,size,bit_rate:stream=codec_type,codec_name,width,height" -of default=noprint_wrappers=1 raw/file-goc.MOV
Kết quả cần biết:
width < height→ video DỌC (9:16 · Reels/Shorts/TikTok)width > height→ video NGANG (16:9 · YouTube full)duration < 60s→ phù hợp Shorts/Reels
Bước 3 — Đo âm lượng + tìm khoảng lặng
Biết audio đang to hay nhỏ để chuẩn hoá đúng — chuẩn YouTube là -14 LUFS. Lệnh giống nhau cả macOS và Windows:
ffmpeg -i raw/file-goc.MOV -af "loudnorm=print_format=json" -f null - 2>&1 | tail -12
ffmpeg -i raw/file-goc.MOV -af "silencedetect=noise=-30dB:d=0.8" -f null - 2>&1 | grep silence
Nếu input_i = -22 LUFS thì bước cuối sẽ tự nâng lên -14. Silence 0.8-2s giữa câu KHÔNG nên cắt — đó là pause tự nhiên khán giả cần để suy ngẫm.
🪟 Lưu ý Windows: PowerShell không có tail và grep. Dùng thay thế:
ffmpeg -i raw\file-goc.MOV -af "loudnorm=print_format=json" -f null - 2>&1 | Select-Object -Last 12
ffmpeg -i raw\file-goc.MOV -af "silencedetect=noise=-30dB:d=0.8" -f null - 2>&1 | Select-String "silence"
Bước 4 — Bóc lời tiếng Việt bằng Whisper
Chạy trên GPU (Metal trên Mac, hoặc CPU trên Windows) — 26 giây audio ra transcript trong ~2-15 giây tuỳ máy.
🍎 macOS:
# Tách audio sang 16kHz mono
ffmpeg -y -i raw/file-goc.MOV -ar 16000 -ac 1 -c:a pcm_s16le work/audio-16k.wav
# Transcribe tiếng Việt
whisper-cli -m ~/whisper-models/ggml-small.bin -l vi -otxt -osrt -f work/audio-16k.wav -of work/transcript
🪟 Windows (PowerShell):
ffmpeg -y -i raw\file-goc.MOV -ar 16000 -ac 1 -c:a pcm_s16le work\audio-16k.wav
whisper-cli.exe -m "$env:USERPROFILE\whisper-models\ggml-small.bin" -l vi -otxt -osrt -f work\audio-16k.wav -of work\transcript
Whisper VN đôi khi sai typo (VD: “màng hình” → “màn hình”, “gép xim” → “ghép sim”). Bước 5 có script Python tự fix.
Bước 5 — Fix typo + chia subtitle ngắn
Whisper hay gộp câu dài 60+ ký tự — mobile 9:16 đọc không kịp, phải chia mỗi chunk ~50 ký tự. Script chia-subtitle.py có sẵn trong bộ tải về.
🍎 macOS:
python3 chia-subtitle.py work/transcript.srt work/transcript-burn.srt
🪟 Windows:
python chia-subtitle.py work\transcript.srt work\transcript-burn.srt
Script tự động:
- Fix 15+ typo phổ biến tiếng Việt của Whisper
- Chia câu dài thành chunk ≤50 ký tự, break tại dấu câu
- Merge chunk cuối < 1.5s vào chunk trước — tránh subtitle “flash” nhanh gây khó chịu
Bước 6 — Render video hoàn thiện · 1 câu lệnh
Chuẩn hoá âm lượng, khử ồn, thêm nhạc nền, burn subtitle — tất cả trong 1 pass FFmpeg. Khác biệt chính giữa 2 hệ ở codec video (GPU khác nhau):
🍎 macOS (Apple Silicon — dùng h264_videotoolbox GPU):
ffmpeg -y \
-i raw/file-goc.MOV \
-stream_loop -1 -i work/bgm-piano.mp3 \
-filter_complex "
[0:a]highpass=f=90,afftdn=nr=15:nf=-30,loudnorm=I=-14:TP=-1.5[voice];
[1:a]volume=0.10,afade=t=in:st=0:d=2[bgm];
[voice][bgm]amix=inputs=2:duration=first;
[0:v]scale=1080:1920,setsar=1[bg];
[bg]subtitles=work/transcript-burn.srt:fontsdir=work/fonts:force_style='PlayResX=1080,PlayResY=1920,Fontname=Playfair Display,Fontsize=58,Bold=1,PrimaryColour=&HFFFFFF&,OutlineColour=&H000000&,BorderStyle=1,Outline=6,Alignment=2,MarginV=180'[v]
" \
-map "[v]" -map "" \
-c:v h264_videotoolbox -b:v 4M -pix_fmt yuv420p \
-c:a aac -b:a 192k \
-shortest -movflags +faststart \
output/video-final.mp4
🪟 Windows (dùng libx264 CPU — chạy trên mọi máy Windows):
ffmpeg -y `
-i raw\file-goc.MOV `
-stream_loop -1 -i work\bgm-piano.mp3 `
-filter_complex "[0:a]highpass=f=90,afftdn=nr=15:nf=-30,loudnorm=I=-14:TP=-1.5[voice];[1:a]volume=0.10,afade=t=in:st=0:d=2[bgm];[voice][bgm]amix=inputs=2:duration=first;[0:v]scale=1080:1920,setsar=1[bg];[bg]subtitles=work/transcript-burn.srt:fontsdir=work/fonts:force_style='PlayResX=1080,PlayResY=1920,Fontname=Playfair Display,Fontsize=58,Bold=1,PrimaryColour=&HFFFFFF&,OutlineColour=&H000000&,BorderStyle=1,Outline=6,Alignment=2,MarginV=180'[v]" `
-map "[v]" -map "" `
-c:v libx264 -preset fast -crf 22 -pix_fmt yuv420p `
-c:a aac -b:a 192k `
-shortest -movflags +faststart `
output\video-final.mp4
🎮 Nếu máy Windows có card đồ hoạ NVIDIA, thay -c:v libx264 -preset fast -crf 22 bằng -c:v h264_nvenc -preset fast -cq 22 để nhanh gấp 5-10 lần.
3 số quan trọng để điều chỉnh:
volume=0.10— nhạc nền 10%. Muốn nhỏ hơn thì 0.05, muốn to hơn 0.15Fontsize=58— cỡ chữ subtitle. Video 9:16 mobile để 55-70, video 16:9 desktop để 30-45MarginV=180— khoảng cách subtitle với đáy. 9:16 để cao 150-250 tránh UI TikTok/IG che
Tại sao 1 câu lệnh nhanh hơn CapCut?
Không phải mình chê CapCut — mình vẫn dùng CapCut cho các phần cần sáng tạo. Nhưng 80% việc là chuẩn hoá âm lượng, khử ồn, thêm subtitle — đó là các thao tác giống hệt nhau cho mọi video.
Với CapCut mình phải click qua 8-10 menu × 15 giây mỗi video. Với 1 câu lệnh Terminal (Mac) hoặc PowerShell (Windows) thì clip 26 giây ra file MP4 hoàn chỉnh trong 35 giây trên Mac M-series hoặc ~1-2 phút trên Windows CPU.
Ai làm 5-10 video/ngày sẽ hiểu tại sao mình xây pipeline này.
Số liệu thực từ video demo
| Chỉ số | Raw gốc | Sau biên tập |
|---|---|---|
| Kích thước file | 42.5 MB (HEVC 12.7 Mbps) | 14 MB (H.264 4 Mbps) |
| Loudness | -22.99 LUFS (nhỏ) | -14 LUFS (chuẩn YouTube) |
| Codec | HEVC (phone cũ không phát) | H.264 (mọi thiết bị) |
| Subtitle tiếng Việt | Không có | 8 chunk burn-in Playfair Bold |
| Nhạc nền | Không có | Piano 10% royalty-free |
| Thời gian xử lý (Mac M-series) | — | ~35 giây |
| Thời gian xử lý (Windows CPU) | — | ~90 giây |
| Thời gian xử lý (Windows + NVIDIA GPU) | — | ~25 giây |
Nhận phần mềm CAS Edit Video miễn phí
CAS Edit Video là phần mềm dựng video hàng loạt: bạn đưa kịch bản và giọng đọc, phần mềm tự ghép video nền, chạy phụ đề, thêm nhạc nền rồi xuất chuẩn đăng mạng xã hội. Bản V2.0 có cho cả Windows và macOS, cài một nút. Nhập email, tôi gửi link tải vào hộp thư của bạn.
Miễn phí · Nhập email nhận link tải · Có nhóm cộng đồng hỗ trợ
Có câu hỏi hoặc chia sẻ quy trình biên tập video của bạn? Bình luận bên dưới hoặc gửi mình qua Facebook. Đăng ký YouTube @letandao.official để xem thêm các mẹo hệ thống hoá công việc.