Skip to content

Cum să convertești formate video cu FFmpeg

DodaTech Updated 2025-01-15 2 min read

In this tutorial, you'll learn about Cum să convertești formate video cu FFmpeg. We cover key concepts, practical examples, and best practices.

Problema

FFmpeg nu recunoaște formatul de ieșire, containerul nu este compatibil cu codecul, sau fișierul rezultat nu poate fi redat de playere. Conversia formatelor video necesită înțelegerea parametrului -f și a tipurilor de containere suportate.

Soluția Rapidă

Fix 1: Specificarea formatului de ieșire

GREȘIT — FFmpeg ghicește formatul după extensie, ceea ce eșuează pentru extensii necunoscute:

ffmpeg -i input.mp4 output.abc
# Unable to find a suitable output format for 'output.abc'

CORECT — folosește extensie standard sau parametrul -f:

ffmpeg -i input.mp4 -f mp4 output.mp4

# Sau pentru un container specific:
ffmpeg -i input.mp4 -f matroska output.mkv

Fix 2: Conversie între containere populare

# MP4 → MKV (copiere streamuri fără re-encode)
ffmpeg -i input.mp4 -c copy output.mkv

# AVI → MP4
ffmpeg -i input.avi -c:v libx264 -c:a aac output.mp4

# MOV → WebM
ffmpeg -i input.mov -c:v libvpx-vp9 -c:a libopus output.webm

Fix 3: Listarea formatoarelor suportate

# Listează toate formatoarele
ffmpeg -formats | grep mp4

# Listează muxerele disponibile
ffmpeg -muxers | grep matroska

Fix 4: Container și codec incompatibile

GREȘIT — H.264 nu este suportat în container WebM:

ffmpeg -i input.mp4 output.webm
# Codec 'h264' is not supported in container 'webm'

CORECT — re-encodează la codec compatibil:

ffmpeg -i input.mp4 -c:v libvpx-vp9 -c:a libopus output.webm

Fix 5: Forțarea suprascrierii fișierului existent

ffmpeg -y -i input.mp4 output.mp4
# -y suprascrie fără confirmare

Fix 6: Conversie cu analiză extinsă pentru streamuri live

ffmpeg -analyzeduration 100M -probesize 100M -i input.flv -c copy output.mp4

Folosește DodaTech Media Inspector pentru a identifica formatoarele și codecurile înainte de conversie.

Prevenție

  • Verifică formatoarele suportate cu ffmpeg -formats | grep <format>.
  • Confirmă compatibilitatea codec-container înainte de conversie.
  • Folosește extensii standard (mp4, mkv, webm) pentru compatibilitate maximă.
  • Adaugă -y în scripturi pentru suprascriere automată.
  • Folosește -f când extensia este ambiguă.

Greșeli Comune cu Conversia Formatelor

  1. Confundarea containerului cu codecul — MP4 este containerul, nu codecul video.
  2. Folosirea extensiei greșite pentru formatul țintă — de exemplu, .ogv în loc de .ogg.
  3. Nespecificarea parametrului -c copy când se dorește doar schimbarea containerului — fără -c copy, FFmpeg re-encodează implicit.

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

Exercițiu Practic

Scrie o comandă FFmpeg care convertește un fișier AVI în MP4 folosind codecul H.264 pentru video și AAC pentru audio, fără a suprascrie fișierul existent fără confirmare.

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

FAQ

### Care este diferența dintre `-f mp4` și extensia `.mp4`?

FFmpeg detectează formatul de ieșire din extensia fișierului. Parametrul -f forțează un anumit format, util când extensia este ambiguă sau nestandard.

De ce primesc "Unable to find a suitable output format"?

Extensia fișierului de ieșire nu este recunoscută. Folosește o extensie standard sau specifică formatul cu -f. De exemplu, -f mp4 forțează containerul MP4.

Pot schimba doar containerul fără re-encode?

Da, folosește -c copy pentru a copia streamurile fără re-encode: ffmpeg -i input.mp4 -c copy output.mkv. Acest lucru este rapid și nu pierde calitate.

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro