>> Tecnologia elettronica >  >> Telecamere >> Action cam

Ritaglio Video con FFmpeg: Guida Completa ai Comandi con Esempi

Il filtro crop di FFmpeg è il coltellino svizzero per il ritaglio video programmato. È veloce, senza perdita (con il codec giusto), e scriptabile. Padroneggia la sintassi ed evita le insidie comuni.

Sintassi di Base

ffmpeg -i input.mp4 -vf "crop=w:h:x:y" output.mp4 

Tutti i valori in pixel. La valutazione delle espressioni consente calcoli (vedi sotto).

Metodo 1: Coordinate Pixel Esplicite

Ritaglia una finestra 1280x720 partendo da (100, 50) da una sorgente 1920x1080:

ffmpeg -i input.mp4 -vf "crop=1280:720:100:50" -c:a copy output.mp4 

Metodo 2: Ritaglio Relativo/Centrato (Espressioni)

Usa iw (larghezza input) e ih (altezza input) per comandi indipendenti dalla risoluzione.

Ritaglio Centrato (Il Più Comune)

# Ritaglia centro 75% larghezza x 75% altezza ffmpeg -i input.mp4 -vf "crop=iw*0.75:ih*0.75:(iw-ow)/2:(ih-oh)/2" -c:a copy output.mp4 

Conversione Proporzioni (16:9 → 9:16 Verticale)

# Ritaglia centro verticale 9:16 da 16:9 (es. 1920x1080 -> 607x1080) ffmpeg -i input.mp4 -vf "crop=ih*9/16:ih:(iw-ow)/2:0" -c:a copy vertical.mp4 

Rimuovi Barre Nere (Auto-Rilevamento)

# Rileva bordi neri per 1 sec, poi ritaglia ffmpeg -i input.mp4 -vf "cropdetect=24:16:0" -f null - 2>&1 | grep crop | tail -1 # Esempio output: [Parsed_cropdetect_0 @ 0x...] crop=1920:800:0:140 # Usa i valori rilevati: ffmpeg -i input.mp4 -vf "crop=1920:800:0:140" -c:a copy output.mp4 

Metodo 3: Basato su Percentuale (Social Media Veloce)

# Ritaglia centro 80% larghezza, 90% altezza ffmpeg -i input.mp4 -vf "crop=iw*0.8:ih*0.9:(iw-ow)/2:(ih-oh)/2" output.mp4 

Avanzato: Ritaglio Variabile nel Tempo (Keyframed / Animato)

Usa il filtro sendcmd o crop con espressioni t (timestamp).

# Zoom da fotogramma completo a centro 50% in 5 secondi ffmpeg -i input.mp4 -vf " crop= w='iw*max(0.5,1-0.1*t)': h='ih*max(0.5,1-0.1*t)': x='(iw-ow)/2': y='(ih-oh)/2' " -c:a copy zoom_crop.mp4 

t = secondi. A t=0: 100%. A t=5: 50%. Easing lineare.

Insidie Critiche

ProblemaCausaSoluzione
Dimensioni output non divisibili per 2H.264/HEVC richiedono larghezza/altezza pariUsa crop='if(gt(iw,ih),-2,ih*9/16)':... o assicurati matematica pari. FFmpeg auto-aggiusta con +0 ma avvisa.
Ritaglio supera inputx+w > iw o y+h > ihValida con ffprobe -v error -select_streams v:0 -show_entries stream=width,height input.mp4
Proporzioni sembrano stiratePlayer ignora SAR / DARAggiungi -vf "crop=...,setsar=1" o -aspect 16:9 in output.
Perdita di qualitàRicodifica default (CRF 23)Esplicito -c:v libx264 -crf 18 -preset slow (o -c:v copy se SOLO ritaglio I-frame? No, il crop ricodifica sempre).
Deriva audioRicodifica video cambia durata leggermente-c:a copy sempre. Se sincronia critica, usa -async 1.

Flusso di Lavoro Pro: Ritaglio Batch Cartella

# Bash / Zsh / PowerShell for f in *.mp4; do ffmpeg -i "$f" -vf "crop=ih*9/16:ih:(iw-ow)/2:0" -c:v libx264 -crf 20 -preset medium -c:a copy "cropped_${f}" done 

Esegui sempre ffprobe prima. Scripta la matematica. Usa -c:a copy. Archivia gli originali.

  1. Come fare clip video di ATV nel fango
  2. Come Ottenere Più Visualizzazioni su YouTube: 8 Strategie Provate
  3. Come Installare una Logitech QuickCam Deluxe
  4. Usare una Handycam DCR-DVD301 come Webcam?
  5. Come Unire Più Video in Uno: Flusso di Lavoro Completo
  6. Come Installare una Videocamera Digitale JVC Mini DV