luk036/compress-video

Comprime arquivos MP4 para tamanhos menores mantendo qualidade visualmente sem perdas, reduzindo inteligentemente a taxa de quadros e recodificando com codec/CRF ideais.

O que é compress-video?

Esta skill reduz o tamanho de vídeos MP4 por meio de recodificação com configurações inteligentes, aproveitando que a maioria das gravações de screencast e vídeos com pessoas falando são supercodificados a 60fps. Ao reduzir para 30fps e ajustar o codificador, é possível obter uma redução de **20-50%** no tamanho do arquivo sem perda perceptível de qualidade. A skill é ideal para desenvolvedores que precisam compartilhar gravações de treinamentos, demos ou reuniões, ou qualquer pessoa que queira otimizar arquivos MP4 para uploads mais rápidos. Ela inclui um script CLI e uma API Python que utilizam `ffmpeg`/`ffprobe` para análise e compressão, oferecendo perfis predefinidos como `lossless`, `high`, `balanced` e `aggressive`, além de técnicas específicas como redução de taxa de quadros, ajuste `stillimage` e downscale de resolução. Compatível com Windows (PowerShell), Linux e macOS, a skill é projetada para ser usada com Python 3.8+ e `ffmpeg` instalado, sendo útil em fluxos de automação e batch processing.

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

Installed? Explore more Programação e Desenvolvimento skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

O que faço

Reduzo o tamanho de arquivos MP4 recodificando com configurações inteligentes. A ideia principal: a maioria dos screencasts e vídeos de pessoas falando são supercodificados a 60fps. Reduzir para 30fps e ajustar o codificador resulta em redução de 20-50% no tamanho do arquivo sem diferença perceptível de qualidade.

Scripts incluídos: @compress_video.py

Quando me usar

  • Você tem um MP4 muito grande para compartilhar/enviar
  • Você gravou um screencast a 60fps e deseja reduzir pela metade
  • Você precisa de qualidade "suficientemente boa" com uma fração do tamanho
  • Você deseja comprimir em lote vídeos de treinamento, demonstrações ou gravações

Como usar

CLI (rápido)

# Apenas analisar
python compress_video.py input.mp4 --probe-only

# Compressão padrão (alta qualidade)
python compress_video.py input.mp4 output.mp4

# Compressão agressiva para arquivos pequenos
python compress_video.py input.mp4 -p aggressive

# Screencast (código/ferramentas EDA): reduzir 60→30fps, ajuste stillimage
python compress_video.py input.mp4 -p balanced --tune stillimage --fps 30

# Redimensionar para 1080p
python compress_video.py input.mp4 -p balanced --resolution 1920x1080

API Python

from compress_video import compress, probe

# Primeiro, analisar
info = probe("input.mp4")
print(f"{info['width']}x{info['height']} @ {info['fps']:.0f}fps")

# Comprimir com configurações padrão
compress("input.mp4", "output.mp4")

# Comprimir com configurações agressivas
compress("input.mp4", "output.mp4", profile="aggressive",
         fps=24, tune="stillimage")

Requisitos

  • Python 3.8+
  • ffmpeg instalado e no PATH (com ffprobe)

Perfis de compressão

Perfilx264 CRFx265 CRFCaso de uso
lossless1820Arquivamento, qualidade máxima
high (padrão)2325Visualmente sem perdas, padrão seguro
balanced2628Boa qualidade, arquivos menores
aggressive2830Arquivos pequenos, pequena perda de gradiente

Estratégias principais

TécnicaEconomia típicaImpacto na qualidade
60fps → 30fps~25%Imperceptível em screencasts
H.264 CRF 23 (de CRF 18)~20%Nenhum para a maioria dos espectadores
H.264 → H.265 (libx265)~30-40%Nenhum (mesmo CRF)
--tune stillimage~5-10%Melhor para código/slides
Redimensionar 3200→1920~50%Perda de nitidez ao ampliar

Exemplos

Reduzir um screencast de 125 MB em 30-50%

# Execução rápida padrão (usa libx264, reduz 60→30fps)
python compress_video.py recording.mp4 recording_compressed.mp4
# 125 MB → 97 MB (-22%)

# Com ajuste stillimage (melhor para código/screencasts)
python compress_video.py recording.mp4 -p balanced --tune stillimage --fps 30
# 125 MB → ~80 MB (-35%)

# HEVC completo com preset mais lento
python compress_video.py recording.mp4 --codec h265 --preset slow --fps 30
# 125 MB → ~60 MB (-50%, mas codifica ~mais lento)

Processar uma pasta em lote

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.

Habilidades Relacionadas