Community程式設計與開發github.com

luk036/compress-video

壓縮 MP4 檔案至更小容量,同時透過智慧降低幀率並以最佳編碼器/CRF 設定重新編碼,保持視覺無損品質。

compress-video 是什麼?

此技能可用於將 MP4 影片檔案容量縮小 20-50%,同時保持幾乎無感的品質差異。它主要針對螢幕錄影、頭像談話影片等內容進行最佳化,因為這些影片常以 60fps 過度編碼。將幀率降至 30fps 並調整編碼器參數(如 CRF 值、編碼器類型)即可顯著減小檔案大小。支援 CLI 命令列與 Python API,相容於所有主流作業系統(Windows、macOS、Linux),需依賴 ffmpeg 與 ffprobe。提供四種壓縮設定檔:lossless(最高品質)、high(預設,視覺無損)、balanced(平衡)、aggressive(最小檔案)。另外支援降低解析度、採用 stillimage tune(對於程式碼與簡報效果更佳),以及 H.265 編碼以進一步節省空間。

相容平台~Claude Code~Codex CLI~Cursor✓OpenCode
npx skills add https://github.com/luk036/agent-skills/tree/HEAD/skills/compress-video

Installed? Explore more 程式設計與開發 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

我的功能

我透過智慧預設值重新編碼來減少 MP4 檔案大小。關鍵洞見:大多數螢幕錄影和頭像談話影片在 60fps 下過度編碼。降低至 30fps 並調整編碼器參數,可在檔案大小縮小 20-50% 的同時,品質無感差異。

附帶腳本:@compress_video.py

何時使用我

  • 你的 MP4 檔案太大,難以分享或上傳
  • 你用 60fps 錄製了螢幕錄影,想讓大小減半
  • 你希望以極小的容量換取「夠好」的品質
  • 你需要批次壓縮訓練影片、示範或錄影

使用方法

CLI(快速)

# 僅分析
python compress_video.py input.mp4 --probe-only

# 預設壓縮(高品質)
python compress_video.py input.mp4 output.mp4

# 積極壓縮,追求更小檔案
python compress_video.py input.mp4 -p aggressive

# 螢幕錄影(程式碼/EDA 工具):將 60→30fps,仍影像調諧
python compress_video.py input.mp4 -p balanced --tune stillimage --fps 30

# 縮小至 1080p
python compress_video.py input.mp4 -p balanced --resolution 1920x1080

Python API

from compress_video import compress, probe

# 先進行探查
info = probe("input.mp4")
print(f"{info['width']}x{info['height']} @ {info['fps']:.0f}fps")

# 以預設設定壓縮
compress("input.mp4", "output.mp4")

# 以積極設定壓縮
compress("input.mp4", "output.mp4", profile="aggressive",
         fps=24, tune="stillimage")

需求

  • Python 3.8+
  • ffmpeg 已安裝且位於 PATH 中(需包含 ffprobe)

壓縮設定檔

設定檔x264 CRFx265 CRF使用情境
lossless1820歸檔、最高品質
high(預設)2325視覺無損、安全預設值
balanced2628品質良好、檔案較小
aggressive2830檔案最小、些微漸層損失

關鍵策略

技術典型節省空間品質影響
60fps → 30fps~25%螢幕錄影無感
H.264 CRF 23(從 CRF 18)~20%對大多數觀看者無感
H.264 → H.265 (libx265)~30-40%無(相同 CRF)
--tune stillimage~5-10%對程式碼/簡報更佳
縮小解析度 3200→1920~50%放大時銳利度下降

範例

將 125 MB 的螢幕錄影縮小 30-50%

# 快速預設執行(使用 libx264,將 60→30fps)
python compress_video.py recording.mp4 recording_compressed.mp4
# 125 MB → 97 MB (-22%)

# 使用 stillimage 調諧(對程式碼/螢幕錄影更佳)
python compress_video.py recording.mp4 -p balanced --tune stillimage --fps 30
# 125 MB → ~80 MB (-35%)

# 使用 HEVC 完整壓縮,較慢預設
python compress_video.py recording.mp4 --codec h265 --preset slow --fps 30
# 125 MB → ~60 MB (-50%,但編碼較慢)

批次處理整個資料夾

Get-ChildItem *.mp4 | ForEach-Object {
    python compress_video.py $_.Name "$($_.BaseName)_compressed.mp4"
}

Individual skills in this repo

This repo contains 3 individual skills — each has its own dedicated page.

相關技能