Biên tập video Reels/Shorts trong 2 phút — không cần CapCut

Hướng dẫn 6 bước biên tập video ngắn tự động cho người mới: khử ồn, chuẩn hoá âm lượng YouTube, bóc lời tiếng Việt bằng Whisper, chèn subtitle chuẩn 9:16 mobile. Tải bộ công cụ miễn phí.

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ì.

📦 Tải bộ công cụ trước để làm theo

Bao gồm: hướng dẫn chi tiết, script Python fix typo tiếng Việt, font Playfair Display

Quy trình 6 bước

Áp dụng cho mọi video ngắn 9:16 hoặc 16:9. Chỉ cần copy-paste lệnh từng bước.

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.

Copy file video sang thư mục làm việc riêng có 3 folder con:

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
  • 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.

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.

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.

Bước 4 — Bóc lời tiếng Việt bằng Whisper

Chạy trên GPU Metal của MacBook M-series — 26 giây audio ra transcript trong ~2 giây.

# Tách audio sang 16kHz mono (định dạng Whisper cần)
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

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ự.

python3 chia-subtitle.py work/transcript.srt work/transcript-burn.srt

Script chia-subtitle.py có sẵn trong bộ tải về. Nó tự:

  • 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.

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

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 thì clip 26 giây ra file MP4 hoàn chỉnh trong 35 giây.

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ý~35 giây trên M-series Mac

Tải bộ công cụ miễn phí

Bao gồm hướng dẫn chi tiết 6 bước, script Python fix typo tiếng Việt tự động, font Playfair Display hỗ trợ đầy đủ dấu tiếng Việt, và danh sách 5 nguồn nhạc nền miễn phí không dính bản quyền YouTube.

Không cần đăng ký · Không email · Dùng thoải mái cá nhân + thương mại


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 *