Skip to content

Cum să folosești concat filter complex în FFmpeg

DodaTech Updated 2025-01-15 2 min read

In this tutorial, you'll learn about Cum să folosești concat filter complex în FFmpeg. We cover key concepts, practical examples, and best practices.

Problema

Comanda ta FFmpeg cu filter_complex pentru concatenare eșuează cu Filter 'concat' has an unconnected output sau Input link parameters mismatch. Concat filter complex necesită conectarea corectă a streamurilor video și audio cu parametri compatibili.

Soluția rapidă

Fix 1: Concat Filter cu Scalare Automată

GRESIT — concat filter fără scalare produce erori când rezoluțiile diferă:

ffmpeg -i input1.mp4 -i input2.mp4 -filter_complex \
    "[0:v][0:a][1:v][1:a]concat=n=2:v=1:a=1" output.mp4
# Filter 'concat' has an unconnected output

CORECT — etichetează corect ieșirile și scalează:

ffmpeg -i input1.mp4 -i input2.mp4 -filter_complex \
    "[0:v]scale=1920:1080:force_original_aspect_ratio=decrease,pad=1920:1080:(ow-iw)/2:(oh-ih)/2,setdar=16/9[v0]; \
     [1:v]scale=1920:1080:force_original_aspect_ratio=decrease,pad=1920:1080:(ow-iw)/2:(oh-ih)/2,setdar=16/9[v1]; \
     [v0][0:a][v1][1:a]concat=n=2:v=1:a=1[outv][outa]" \
    -map "[outv]" -map "[outa]" output.mp4

Fix 2: Concat cu Fade Tranziție

ffmpeg -i input1.mp4 -i input2.mp4 -filter_complex \
    "[0:v]scale=1920:1080[v0]; [1:v]scale=1920:1080[v1]; \
     [v0][v1]xfade=transition=fade:duration=1:offset=9,format=yuv420p[outv]; \
     [0:a][1:a]acrossfade=d=1[outa]" \
    -map "[outv]" -map "[outa]" output.mp4

Fix 3: Concat cu Multiple Streamuri Audio

ffmpeg -i video1.mp4 -i audio1.mp3 -i video2.mp4 -i audio2.mp3 -filter_complex \
    "[0:v]scale=1920:1080[v0]; [2:v]scale=1920:1080[v1]; \
     [v0][1:a][v1][3:a]concat=n=2:v=1:a=1[outv][outa]" \
    -map "[outv]" -map "[outa]" output.mp4

Fix 4: Concat Filter cu Fără Audio

ffmpeg -i input1.mp4 -i input2.mp4 -filter_complex \
    "[0:v][1:v]concat=n=2:v=1:a=0[outv]" \
    -map "[outv]" -map "[outa]" output.mp4
# a=0 dezactivează concatenarea audio

Fix 5: Concat cu 3+ Fișiere

ffmpeg -i clip1.mp4 -i clip2.mp4 -i clip3.mp4 -filter_complex \
    "[0:v]scale=1280:720[v0]; [1:v]scale=1280:720[v1]; [2:v]scale=1280:720[v2]; \
     [v0][0:a][v1][1:a][v2][2:a]concat=n=3:v=1:a=1[outv][outa]" \
    -map "[outv]" -map "[outa]" output.mp4
# n=3 indică numărul total de fișiere de intrare

Fix 6: Debug Filter Graph

ffmpeg -v debug -i input1.mp4 -i input2.mp4 -filter_complex \
    "[0:v]scale=1920:1080[v0]; [1:v]scale=1920:1080[v1]; \
     [v0][0:a][v1][1:a]concat=n=2:v=1:a=1[outv][outa]" \
    -map "[outv]" -map "[outa]" -t 5 -f null -
# Afișează graful de filtre pentru depanare

Folosește DodaTech's Filter Graph Visualizer pentru a proiecta și testa lanțuri complexe de filtere interactiv.

Prevenție

  • Etichetează întotdeauna toate intrările și ieșirile filtrelor.
  • Folosește parametrul n= corect (numărul total de inputuri).
  • Verifică v=1:a=1 — asigură-te că numărul streamurilor corespunde.
  • Scalează toate streamurile video la aceeași rezoluție înainte de concat.
  • Testează cu -t 5 și -f null - pentru depanare rapidă.

Greșeli comune

  1. Etichete lipsă pentru ieșirile filtrului — concat filter necesită [outv][outa] pentru toate ieșirile.
  2. n= incorect — parametrul n= trebuie să reflecte numărul exact de fișiere de intrare.
  3. Streamuri audio lipsă — dacă un fișier nu are audio, concat filter eșuează. Folosește a=0.
  4. Parametri de intrare incompatibili — rezoluții, framerate-uri sau sample rate-uri diferite.
  5. Neglijarea parametrului -map — ieșirile filtrului trebuie mapate cu -map "[eticheta]".

Aceste greșeli apar frecvent în codul FFmpeg real. Contribuitorii DodaTech au identificat aceste modele prin analiza proiectelor open-source și a sistemelor de producție.

Exercițiu practic

Creează o comandă complexă care concatenează 3 clipuri, fiecare cu rezoluție diferită, scalându-le la 1080p și adăugând o tranziție fade între ele.

Acest exercițiu întărește conceptele prezentate în acest ghid. Încearcă să-l implementezi înainte de a verifica soluțiile online.

FAQ

### De ce primesc "Filter 'concat' has an unconnected output"?

Filtrul concat a procesat streamurile dar nu ai etichetat ieșirile. Adaugă [outv][outa] la sfârșit: concat=n=2:v=1:a=1[outv][outa].

Pot folosi concat filter cu imagini statice?

Da, folosește -loop 1 sau -framerate pentru a transforma imaginile în video: -loop 1 -i img.png apoi concat cu stream video.

Care este diferența între concat filter și concat protocol?

Concat filter transcodă streamurile și poate gestiona parametri diferiți. Concat protocol copiază streamurile direct și necesită parametri identici.

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro