← Blog

Cara Menggabungkan dan Menyambung Video dengan FFmpeg (Panduan 2026)

Panduan lengkap untuk menggabungkan dan menyambung beberapa file video menggunakan FFmpeg. Mencakup metode concat demuxer, filter, protokol, dan alternatif gratis satu klik.

5 min read

Punya beberapa klip video yang perlu digabungkan menjadi satu file? FFmpeg menawarkan beberapa cara untuk menggabungkan video—namun metode yang tepat bergantung pada apakah klip-klip tersebut memiliki format, codec, dan resolusi yang sama.

Panduan ini mencakup ketiga pendekatan dengan perintah yang tepat. Dan bagi yang tidak ingin men-debug ketidakcocokan codec di terminal, ada alternatif drag-and-drop gratis di bagian akhir.


Prasyarat: Instal FFmpeg

FFmpeg

macOS:

brew install ffmpeg

Ubuntu/Debian:

sudo apt update && sudo apt install ffmpeg

Windows: Unduh dari ffmpeg.org, ekstrak, dan tambahkan bin ke PATH.


Metode 1: Concat Demuxer (Format Sama — Tercepat)

Ini adalah metode tercepat dan paling sederhana. Berfungsi ketika semua video memiliki codec, resolusi, dan frame rate yang sama.

Langkah 1: Buat daftar file

Buat file teks bernama files.txt:

file 'clip1.mp4'
file 'clip2.mp4'
file 'clip3.mp4'

Langkah 2: Jalankan perintah concat

ffmpeg -f concat -safe 0 -i files.txt -c copy output.mp4
  • -f concat — gunakan concat demuxer
  • -safe 0 — izinkan path absolut/relatif
  • -c copy — tanpa re-encoding (instan)

Buat daftar file secara otomatis

Linux/macOS:

for f in *.mp4; do echo "file '$f'" >> files.txt; done
ffmpeg -f concat -safe 0 -i files.txt -c copy output.mp4

Windows (PowerShell):

Get-ChildItem *.mp4 | ForEach-Object { "file '$($_.Name)'" } | Out-File -Encoding ascii files.txt
ffmpeg -f concat -safe 0 -i files.txt -c copy output.mp4

Metode 2: Concat Filter (Format Berbeda — Paling Fleksibel)

Ketika klip memiliki codec, resolusi, atau frame rate yang berbeda, Anda perlu menggunakan concat filter. Ini akan me-re-encode semua video agar sesuai.

Dua video:

ffmpeg -i clip1.mp4 -i clip2.mov \
  -filter_complex "[0:v][0:a][1:v][1:a]concat=n=2:v=1:a=1[outv][outa]" \
  -map "[outv]" -map "[outa]" output.mp4

Tiga video:

ffmpeg -i clip1.mp4 -i clip2.mov -i clip3.avi \
  -filter_complex "[0:v][0:a][1:v][1:a][2:v][2:a]concat=n=3:v=1:a=1[outv][outa]" \
  -map "[outv]" -map "[outa]" output.mp4
  • n=3 — jumlah segmen input
  • v=1 — satu output stream video
  • a=1 — satu output stream audio

Normalisasi resolusi sebelum menggabungkan

Jika klip memiliki resolusi berbeda, skala terlebih dahulu:

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

Metode 3: Concat Protocol (Khusus MPEG-TS)

Untuk transport stream MPEG, Anda dapat menggunakan concat protocol secara langsung:

# Pertama konversi ke MPEG-TS
ffmpeg -i clip1.mp4 -c copy -bsf:v h264_mp4toannexb clip1.ts
ffmpeg -i clip2.mp4 -c copy -bsf:v h264_mp4toannexb clip2.ts

# Kemudian gabungkan
ffmpeg -i "concat:clip1.ts|clip2.ts" -c copy -bsf:a aac_adtstoasc output.mp4

Metode ini umumnya tidak direkomendasikan lagi—concat demuxer (Metode 1) lebih sederhana dan lebih andal.


Skenario Khusus

Gabungkan Track Video dan Audio

Gabungkan file video dengan file audio terpisah:

ffmpeg -i video.mp4 -i audio.mp3 -c:v copy -c:a aac -shortest output.mp4
  • -shortest — berhenti ketika stream yang lebih pendek berakhir

Ganti Audio dalam Video

ffmpeg -i video.mp4 -i new_audio.mp3 -c:v copy -c:a aac -map 0:v -map 1:a output.mp4

Gabungkan Video dengan Frame Rate Berbeda

Paksa semua input ke 30fps sebelum menggabungkan:

ffmpeg -i clip1.mp4 -i clip2.mp4 \
  -filter_complex \
    "[0:v]fps=30[v0];[1:v]fps=30[v1]; \
     [v0][0:a][v1][1:a]concat=n=2:v=1:a=1[outv][outa]" \
  -map "[outv]" -map "[outa]" output.mp4

Video Tanpa Audio

Jika beberapa klip tidak memiliki track audio, tambahkan audio senyap:

ffmpeg -i clip_no_audio.mp4 -f lavfi -i anullsrc=r=44100:cl=stereo \
  -c:v copy -c:a aac -shortest clip_with_silence.mp4

Kemudian gabungkan seperti biasa.


Kesalahan Umum dan Solusinya

“Discarding non-monotonous DTS”

Timestamp tidak selaras antar klip. Re-encode:

ffmpeg -f concat -safe 0 -i files.txt -c:v libx264 -c:a aac output.mp4

“Stream 0 codec does not match”

Klip Anda memiliki codec yang berbeda. Gunakan concat filter (Metode 2) alih-alih concat demuxer.

“Discarding 1 additional packets” / masalah sinkronisasi

Tambahkan -fflags +genpts untuk meregenerasi timestamp:

ffmpeg -fflags +genpts -f concat -safe 0 -i files.txt -c copy output.mp4

Output memiliki frame hitam antar klip

Ini terjadi ketika klip memiliki format piksel yang berbeda. Paksa format yang sama:

ffmpeg -i clip1.mp4 -i clip2.mp4 \
  -filter_complex "[0:v]format=yuv420p[v0];[1:v]format=yuv420p[v1];[v0][0:a][v1][1:a]concat=n=2:v=1:a=1[outv][outa]" \
  -map "[outv]" -map "[outa]" output.mp4

Lewati Terminal: Gunakan WaveSpeed Desktop

Menggabungkan video dengan FFmpeg berarti memilih di antara tiga metode berbeda, membuat daftar file, menangani ketidakcocokan codec, men-debug masalah timestamp, dan menulis string filter_complex yang terlihat seperti mimpi buruk regex.

WaveSpeed Desktop menyertakan Media Merger bawaan yang menyederhanakan segalanya:

  • Seret dan lepas klip video Anda
  • Susun ulang sesuai kebutuhan
  • Klik merge — satu file, selesai

Format berbeda? Resolusi berbeda? Aplikasi menanganinya secara otomatis.

WaveSpeed Desktop Media Merger

Unduh WaveSpeed Desktop secara gratis: https://github.com/WaveSpeedAI/wavespeed-desktop/releases


FAQ

Metode concat mana yang harus digunakan? Jika semua klip memiliki codec dan resolusi yang sama, gunakan Metode 1 (demuxer) — prosesnya instan. Jika klip berbeda dalam hal apapun, gunakan Metode 2 (filter).

Bisakah menambahkan transisi antar klip? FFmpeg mendukung transisi crossfade dasar dengan filter xfade, tetapi cukup kompleks. Untuk transisi, editor visual biasanya lebih mudah digunakan.

Apakah menggabungkan video mengurangi kualitas? Tidak dengan -c copy (Metode 1). Dengan concat filter (Metode 2), re-encoding terjadi dan sedikit penurunan kualitas mungkin terjadi. Gunakan CRF rendah (18–20) untuk meminimalkannya.

Apakah ada batas jumlah video yang bisa digabungkan? Tidak ada batas keras di FFmpeg. Secara praktis, memori dan waktu pemrosesan akan meningkat seiring jumlah input.