Skip to content

Cum să extragi metadate din fișiere media cu FFmpeg

DodaTech Updated 2025-01-15 3 min read

In this tutorial, you'll learn about Cum să extragi metadate din fișiere media cu FFmpeg. We cover key concepts, practical examples, and best practices.

Problema

Ai nevoie de informații detaliate despre un fișier media — codec, rezoluție, framerate, bitrate, metadate — dar nu știi cum să le extragi eficient cu FFmpeg.

Soluția rapidă

Fix 1: Informații Generale (ffprobe)

GRESIT — folosind ffmpeg în loc de ffprobe:

ffmpeg -i input.mp4
# (afișează informații dar nu poate fi parsat ușor)

CORECT — folosește ffprobe pentru informații structurate:

ffprobe -v error -show_format input.mp4
# Afișează: durată, bitrate, dimensiune, format

Fix 2: Informații Streamuri

# Toate streamurile:
ffprobe -v error -show_streams input.mp4

# Doar video:
ffprobe -v error -select_streams v -show_entries stream=index,codec_name,width,height,fps,r_frame_rate input.mp4

# Doar audio:
ffprobe -v error -select_streams a -show_entries stream=index,codec_name,sample_rate,channels input.mp4

# Doar subtitrări:
ffprobe -v error -select_streams s -show_entries stream=index,codec_name,codec_type input.mp4

Fix 3: Ieșire JSON pentru Parsare

# JSON (util pentru scripturi):
ffprobe -v error -print_format json -show_format -show_streams input.mp4

# Exemplu output:
# {
#   "streams": [
#     {
#       "index": 0, "#       "codec_name": "h264"", "#       "width": 1920", "#       "height": 1080",
#       "r_frame_rate": "30/1]
#     }
#   ],
#   "format": {
#     "duration": "120.5",
#     "bit_rate": "5000000"
#   }
# }

Fix 4: Metadate Specifice

# Doar durata:
ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 input.mp4
# Output: 120.5

# Doar dimensiunile video:
ffprobe -v error -select_streams v:0 -show_entries stream=width,height -of csv=p=0 input.mp4
# Output: 1920,1080

# Doar codec-ul:
ffprobe -v error -select_streams v:0 -show_entries stream=codec_name -of default=noprint_wrappers=1:nokey=1 input.mp4
# Output: h264

# Framerate:
ffprobe -v error -select_streams v:0 -show_entries stream=r_frame_rate -of default=noprint_wrappers=1:nokey=1 input.mp4
# Output: 30000/1001 (adică 29.97fps)

Fix 5: Metadate în Fișier (FLAC, MP3, etc.)

# Metadate audio (artist, album, titlu):
ffprobe -v error -show_entries format_tags=title,artist,album input.mp3

# Toate tag-urile:
ffprobe -v error -show_entries format_tags input.mp4

Fix 6: Export Metadate în Fișier

# Salvează metadatele în fișier JSON:
ffprobe -v error -print_format json -show_format -show_streams input.mp4 > metadata.json

# Salvează doar informațiile esențiale:
ffprobe -v error -show_entries format=duration,bit_rate:stream=index,codec_name,width,height,r_frame_rate -of json input.mp4 > summary.json

Folosește DodaTech's Media Analyzer pentru a inspecta și exporta metadate media în formate structurate.

Prevenție

  • Folosește -v error pentru a afișa doar erorile (nu warning-uri).
  • Folosește -of json pentru output parsabil.
  • Folosește -select_streams pentru a filtra streamurile.
  • Salvează metadatele în JSON pentru procesare ulterioară.
  • Verifică tipul streamului înainte de a accesa proprietăți specifice.

Greșeli comune

  1. Output text neparsabilffmpeg -i produce text destinat citirii umane.
  2. Informații incomplete — fără -show_streams, ratezi streamurile individuale.
  3. Kivy în loc de valoare-of default=noprint_wrappers=1:nokey=1 pentru valori pure.
  4. Stream greșitv:0 vs a:0 — accesezi tipul greșit de stream.
  5. Fără -v error — output-ul conține warning-uri care poluează parsarea.

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

Scrie o comandă care extrage durata, codecul video, codecul audio și rezoluția dintr-un fișier video și le salvează în format JSON.

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

FAQ

### Care este diferența dintre ffprobe și ffmpeg pentru extragerea metadatelor?

ffprobe este instrumentul specializat pentru extragerea metadatelor, oferind output structurat (JSON, XML, CSV). ffmpeg cu -i oferă text destinat citirii umane.

Pot extrage metadate din fișiere audio?

Da, ffprobe funcționează cu orice fișier media. Pentru MP3, FLAC, etc., folosește -show_entries format_tags=title,artist,album.

Cum citesc metadatele într-un script bash?

Folosește -of default=noprint_wrappers=1:nokey=1 pentru valori pure: duration=$(ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 input.mp4).

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro