Field SOP
Field SOP

Building a Zero-Cost Video Editing SOP with Shotcut: A 5-Step Open-Source Workflow

An open-source video editing SOP: a full Shotcut multi-track + AI-assisted (subtitles, smart transitions, grading) workflow in five steps -- organize footage, rough multi-track cut, AI subtitles/transitions, color grading and keyframes, export and distribute. Includes runnable commands, 5 pitfalls, and 5 FAQs; a zero-cost Premiere replacement.

Published August 12, 20268 min read
<!-- opensource-video-editing-sop | sop | Building a Zero-Cost Video Editing SOP with Shotcut: A 5-Step Open-Source Workflow -->

Short-video creators are trapped by subscription fees and repetitive labor: Premiere Pro costs a premium, CapCut's pro features are increasingly paywalled, and cracked software carries legal risk. Shotcut is a free, open-source, cross-platform video editor (Win/Mac/Linux) built on FFmpeg, supporting multi-track editing, filters, color grading, and keyframes. Version 26.2, no watermark. It replaces about 80% of everyday Premiere/CapCut editing needs. But be clear: Shotcut's built-in AI features are limited -- AI assistance (subtitle generation, smart processing) relies on external open-source tools. This article is honest about that; every command given is real and runnable. The SOP is a five-step pipeline: material organization and proxy -> rough cut multi-track -> AI subtitles and transitions -> color grading and keyframes -> export and distribution. Companion piece to our Shotcut review: that article answers "should you pick Shotcut," this one answers "how to build a pipeline with it."


1. Why Shotcut

Shotcut is not a full-feature Premiere replacement. It is a zero-cost solution covering 80% of everyday editing. Core strengths: multi-track timeline, native drag-and-drop editing (no media bin import needed), FFmpeg core supporting nearly all formats, cross-platform project portability, no watermark or time limits.

DimensionShotcutPremiere ProCapCut ProKdenlive
PriceFree open-sourceSubscriptionFree + paidFree open-source
Cross-platformWin/Mac/LinuxWin/MacWin/MacWin/Mac/Linux
Multi-trackYesYesYesYes
AI subtitlesNone (external)YesYesNone (external)
WatermarkNoneNoneYes (free tier)None

Shotcut's gaps: no built-in AI subtitles, no smart transition recommendations, weaker color grading than DaVinci Resolve. These are covered by external tools: Whisper for subtitles, FFmpeg for preprocessing and post-optimization, Shotcut for multi-track compositing and color.


2. The Five-Step SOP

Step 1: Material Organization and Proxy Generation

Footage from different devices comes in mixed formats (HEVC, AV1, H.264). Direct editing causes lag. First transcode to proxy format (low-res H.264) with FFmpeg for smooth editing, then switch back to source footage for final export.

bash
#!/bin/bash
# Run in the footage directory, creates proxy subfolder
mkdir -p proxy
for file in *.MP4 *.mov *.avi; do
  [ -f "$file" ] || continue
  name="${file%.*}"
  ffmpeg -i "$file" -c:v libx264 -preset fast -crf 23 \
    -vf "scale=960:-2,fps=30" -c:a aac -b:a 128k \
    "proxy/${name}_proxy.mp4"
done

-crf 23 is reasonable for proxy quality (does not need to be high; proxy is just for smooth editing). scale=960:-2 downscales width to 960px. In Shotcut, enable proxy mode via "Settings -> Proxy" and point to the proxy directory.

Step 2: Rough Cut Multi-Track

Open Shotcut and drag proxy clips directly to the timeline (no media bin import needed -- this is Shotcut's native timeline feature). Create three tracks: V1 main footage, V2 overlays (screenshots, B-roll), A1 audio.

Rough cut operations: use I / O keys to set in/out points, X to cut selected segments, remove filler words, pauses, and bad takes. Shotcut's multi-track editing supports track switching, solo/mute -- operation logic is similar to Premiere. This step does not need to be precise; the goal is to arrange clips in script order and remove obvious junk.

Step 3: AI Subtitles and Transitions

Subtitles use Whisper. Shotcut has no built-in AI subtitles. Use the open-source Whisper model to generate SRT, then import into Shotcut. Recommended: whisper.cpp (C++ implementation, runs on CPU):

bash
# Install whisper.cpp
git clone https://github.com/ggerganov/whisper.cpp.git
cd whisper.cpp && make

# Download model (base ~142MB; medium better for Chinese)
./models/download-ggml-model.sh medium

# Extract audio from video, then generate subtitles
ffmpeg -i proxy/talking_proxy.mp4 -vn -ac 1 -ar 16000 -c:a pcm_s16le audio.wav
./main -m models/ggml-medium.bin -l zh -f audio.wav -osrt

Import the generated SRT into Shotcut via "View -> Subtitles", where you can edit text and adjust the timeline. Whisper's Chinese accuracy with the medium model reaches 90%+ in quiet environments; proper nouns still need manual correction.

Transitions use Shotcut's built-in filters. Shotcut has no AI transition recommendations. Manually drag transition filters (fade, dissolve, slide) to the head/tail filter area of clips. Shotcut 26.2 supports track-to-track transitions (upper track clips overlay onto lower), more flexible than earlier versions.

Step 4: Color Grading and Keyframes

Shotcut's color grading is filter-based. Three core filters: Color Grading, Curves, White Balance. Right-click a clip -> Filters -> Add, then adjust parameters.

Keyframe animation: nearly all filter parameters support keyframes. Click the bell icon next to a parameter in the filter panel, set keyframes at different timeline positions, and parameter values auto-interpolate. Typical uses: brightness fade-in, zoom push, position move.

Shotcut's color grading is weaker than DaVinci Resolve, but sufficient for skin tone correction, exposure compensation, and stylization in short videos.

Step 5: Export and Distribution

After editing, disable proxy mode and switch back to source footage for export (to preserve quality). Shotcut's export panel offers presets: YouTube 1080p, H.264, H.265, and more. Recommended presets:

  • YouTube 1080p H.264: 8-12 Mbps, best compatibility
  • H.265 HEVC: 4-6 Mbps, half the file size, similar quality

For further compression or format conversion, use FFmpeg post-export:

bash
# Compress (H.265, good for storage)
ffmpeg -i export.mp4 -c:v libx265 -crf 28 -c:a aac -b:a 128k final.mp4

# Extract cover frame
ffmpeg -i export.mp4 -ss 00:00:01 -vframes 1 cover.jpg

3. Five Pitfalls

Pitfall 1: Non-ASCII paths break FFmpeg FFmpeg and Whisper handle non-ASCII paths poorly, causing No such file or directory errors. Fix: use English and underscores for all working directories and filenames, e.g. project_01/take_a_proxy.mp4.

Pitfall 2: Proxy files disconnect from source Editing with proxy but failing to switch back to source at export ruins quality. Fix: after enabling proxy mode in Shotcut, confirm "Use Proxy" is off before exporting; keep clear naming correspondence (e.g. name_proxy.mp4 maps to name.MP4).

Pitfall 3: Wrong Whisper model exhausts VRAM Using the large model with only integrated graphics causes OOM crashes. Fix: start with base or small models in whisper.cpp; use medium with 6GB+ VRAM; large needs 10GB+. On CPU, the small model processes a 30-minute video in about 15-20 minutes.

Pitfall 4: Unfamiliar keyframe interpolation curves Shotcut defaults to linear interpolation, making zoom/pan movements look stiff. Fix: right-click keyframes to switch interpolation (ease-in, ease-out, ease-in-out, discrete). Use ease-in-out for natural camera pushes.

Pitfall 5: Wrong export preset ruins quality or bloats file size Low bitrate presets cause mosaic artifacts; lossless formats produce 20GB files for 10 minutes of video. Fix: use H.264 at 8-12 Mbps for short videos; H.265 CRF 28 for smaller files; avoid lossless presets unless you need further post-processing.


FAQ

Q1: Shotcut or Kdenlive -- both are free and open-source, which to choose? A1: Both use the MLT framework. Shotcut is smoother cross-platform and has more intuitive native timeline drag-and-drop, ideal for creators switching between systems. Kdenlive has richer multi-track audio and effects, better for heavy users migrating from Premiere. Try both and pick the one that feels right -- project files are not interchangeable.

Q2: Can I run Whisper subtitles without a dedicated GPU? A2: Yes. whisper.cpp supports CPU inference; the small model processes a 30-minute video in about 15-20 minutes on CPU. No GPU does not block the workflow, just slower. With 6GB+ VRAM, use the medium model for better Chinese accuracy.

Q3: Can Shotcut fully replace Premiere? A3: No, but it covers about 80%. Shotcut lacks: built-in AI subtitles, dynamic linking (with AE/PS), advanced audio mixing, team collaboration. If your workflow does not depend on these, Shotcut is sufficient. For heavy effects and color grading, DaVinci Resolve or Premiere is stronger.

Q4: Does proxy editing degrade final export quality? A4: No, as long as you switch back to source footage at export. Proxy only uses low-res stand-ins during editing for smoothness; Shotcut automatically calls original footage for final render. If quality seems off, check that "Use Proxy" is disabled in export settings.

Q5: Are Shotcut project files portable between Windows and Mac? A5: Yes. Shotcut project files (.mlt format) are XML and cross-platform compatible. Note: footage file paths need re-linking across systems (Windows drive letters differ from Mac paths). After opening the project in Shotcut, right-click missing clips to re-link.


References

This article is AI-assisted and human-edited. Last updated: 2026-08-12

FAQ

Shotcut or Kdenlive -- both are free and open-source, which to choose?
Both use the MLT framework. Shotcut is smoother cross-platform and has more intuitive native timeline drag-and-drop, ideal for creators switching between systems. Kdenlive has richer multi-track audio and effects, better for heavy users migrating from Premiere. Try both and pick the one that feels right -- project files are not interchangeable.
Can I run Whisper subtitles without a dedicated GPU?
Yes. whisper.cpp supports CPU inference; the `small` model processes a 30-minute video in about 15-20 minutes on CPU. No GPU does not block the workflow, just slower. With 6GB+ VRAM, use the `medium` model for better Chinese accuracy.
Can Shotcut fully replace Premiere?
No, but it covers about 80%. Shotcut lacks: built-in AI subtitles, dynamic linking (with AE/PS), advanced audio mixing, team collaboration. If your workflow does not depend on these, Shotcut is sufficient. For heavy effects and color grading, DaVinci Resolve or Premiere is stronger.
Does proxy editing degrade final export quality?
No, as long as you switch back to source footage at export. Proxy only uses low-res stand-ins during editing for smoothness; Shotcut automatically calls original footage for final render. If quality seems off, check that "Use Proxy" is disabled in export settings.
Are Shotcut project files portable between Windows and Mac?
Yes. Shotcut project files (.mlt format) are XML and cross-platform compatible. Note: footage file paths need re-linking across systems (Windows drive letters differ from Mac paths). After opening the project in Shotcut, right-click missing clips to re-link.

Related

Field SOP

428B Weights Are Out, Budget 8 H100s: M3.1 Flash Local Deploy

A deployment log for M3.1 Flash (428B, 23B active). Cold water first: there is no consumer or single-GPU recipe anywhere official - the smallest validated tiers are 4x Blackwell (B200/B300/GB200/GB300, TP4), 4x AMD MI355X (TP4), or a full node of 8x H100/H200 (TP8, FP8 path). Weights come from HF or ModelScope (public, not gated); three size calibers coexist: community-count 252.4GB over 48 shards plus a 2.3GB DSpark head, and the vLLM recipe listing NVFP4 at 285GB, MXFP4 at 293GB, FP8 at 533GB; there is no official quantized repo. vLLM needs 0.33.0 or newer (absent from PyPI on release day, so use the vllm/vllm-openai:minimax-m31-flash Docker image or nightly); three official commands transcribed verbatim - H100/H200 TP8, GB200 TP4, MI355X TP4 - all forcing --block-size 128 and --disable-hybrid-kv-cache-manager (omit it and you get No common block size for 16); 1M context opens via --max-model-len (the Hopper sample caps at 262144). SGLang is not merged to main yet (Blackwell needs the MSA kernel at a pinned commit plus nvcc 13.4 minimum - cu130 does not count). The memory ledger: BF16 at roughly 856GB is an inference, not an official figure; 23B active lowers compute, not the VRAM floor - all 428B experts must stay resident, which is exactly why consumer cards are out; total KV cache for 1M context is unpublished. Domestic compute rides FlagOS Day-0 across nine chips (Huawei Ascend included, via SGLang-plugin-FL), numbers flagged as FlagOS official. Thirteen official error notes collected with fixes: HugeTLB 560GiB, B200 OOM, parser spelling, and more. License: MiniMax Community License, commercial attribution plus the 20-million-dollar threshold. One line of reality: 428B weights are out - budget 8 H100s.

Oct 24, 20269 min read
Field SOP

Nemotron 3.5 Bolt Local Deployment: 74B on a 24GB Card

NVIDIA released Nemotron 3.5 Bolt 74B-A9B 24GB on October 15, 2026: a compression of the 120B Super VL via Star Elastic budget-conditioned architecture search (expert top-K down from 22 to 9, distilled recovery training over 120B tokens), on a hybrid Mamba-2 and Transformer architecture. The quantization plan is the story - the expert layers that dominate the weights drop to IQ2_XXS at 2.0625 bits per element (about 19GB), Mamba linear layers use NVFP4, and lm_head, embeddings, and attention stay at Q8_0, landing the full model at 22-24GB with accuracy recovered through quantization-aware distillation from the compression stage onward. Four deployment routes, with commands: Ollama (supported since 0.40.5, ollama run nemotron-3.5-bolt, a 25GB download, verify 100 percent GPU via ollama ps); Unsloth (UD-IQ2_XXS about 22GB, UD-IQ1_M about 20.3GB, ctx from a conservative 4096); llama.cpp official recipes (builds after October 15 to recognize nemotron_h_moe; the 28GB recipe runs 65K context with 8-bit KV and 6 draft tokens, the 32GB recipe reaches 262K; llama-server defaults to port 9931 since b11521); and vLLM (Blackwell SM120 with the LiLiCorr drafter for multi-user serving). Two context starting points coexist: 16K-32K for bare weights, 4K for Unsloth whose default drafter eats another 1-2GB. Eight troubleshooting entries cover OOM context cuts, layers spilling to system RAM, the missing --mmproj flag, and the shared 16384 max_tokens budget. OpenMDW-1.1 grants free unrestricted commercial use, leaves outputs unencumbered, requires notices only on redistribution, and carries a patent-retaliation clause. Vendor-reported: GPQA Diamond 86.4, Terminal-Bench 2.1 at 51.0, PinchBench first in class (83.99 TPS on RTX Spark; no official consumer-card figure). The 4GB Bolt E4B followed on October 23.

Oct 23, 20268 min read
Field SOP

Xing4.0-29B-Intent Local Deploy: 4B Active, Which Command?

Getting Xing4.0-29B-Intent running hinges on a detail that trips most people up: the official deployment instructions do not live in the intent repository but in the base model repository. The intent README only says to replace the model path with the Xing4.0-29B-Intent weights and set --served-model-name to Xing4.0-29B-Intent, so the full vLLM and SGLang launch commands must be taken from the Xing4.0-29B-A4B base repo. Several flags are hard requirements: --trust-remote-code is mandatory because model_type is the in-house xing4_0 architecture, neither llama nor qwen; --tensor-parallel-size 2 implies at least two cards; --max-model-len 262144 matches the 256K context; --reasoning-parser xing4_0 and --tool-call-parser xing4_0 supply the matching parsers; --speculative-config uses the mtp method; and --gpu-memory-utilization 0.90 with --max-num-seqs 4 is the official example ratio. The weights ship as 41 safetensors shards totaling 62.43 GB, and the only official quantizations are FP8 (33.17 GB, e4m3) and GGUF (a single IQ4_NL file at 17.75 GB) - there is no AWQ, GPTQ, or INT8 safetensors. Minimum VRAM is not published at all; the official line is to configure GPU memory, parallelism, and context length for your environment. What the base repo does spell out: bfloat16 is required because the mHC path errors out on FP16 or quantized weights, --pipeline-parallel-size greater than 1 is not yet supported, the CUDA mHC path needs tilelang installed, and the host needs Docker 24.0 or newer with driver 535 or newer. The Ascend route explicitly wants 910B2 NPUs with at least two cards, with three official quay.io images (none of which bundle the weights). Consumer and CPU paths appear only in the base llama.cpp docs: int4 weights quantized with IQ4_NL come to about 19 GB and fit on a single consumer GPU, with an RTX 3090 24 GB as the example. The SDK is just an httpx HTTP client and is not on PyPI, and structured output comes in two layers - the model's native category plus args array, and SDK-guided JSON Schema constraints through vLLM response_format. The license is Apache-2.0, yet the weight side has no standalone LICENSE file, the repository LICENSE is an unfilled placeholder template, and the original terms of the 61 upstream datasets still need checking.

Oct 22, 20269 min read