Biên tập video Reels/Shorts trong 2 phút — không cần CapCut (cho cả macOS + Windows)

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ỬA
  • work/ — 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ó tailgrep. 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.15
  • Fontsize=58 — cỡ chữ subtitle. Video 9:16 mobile để 55-70, video 16:9 desktop để 30-45
  • MarginV=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ốcSau biên tập
Kích thước file42.5 MB (HEVC 12.7 Mbps)14 MB (H.264 4 Mbps)
Loudness-22.99 LUFS (nhỏ)-14 LUFS (chuẩn YouTube)
CodecHEVC (phone cũ không phát)H.264 (mọi thiết bị)
Subtitle tiếng ViệtKhông có8 chunk burn-in Playfair Bold
Nhạc nềnKhô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.


Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Website dùng cookie để đo lường và cải thiện trải nghiệm của bạn. Xem Chính sách Bảo mật để biết chi tiết và cách kiểm soát cookie.