IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

2. diel - FFprobe - Analýza multimediálnych súborov

V minulej lekcii, Framework FFmpeg - Predstavenie a nastavenie , sme si predstavili framework FFmpeg a jeho súčasti. Keďže máme framework už nainštalovaný a pripravený, nič nám nebráni pustiť sa do prvej z jeho súčastí.

Samozrejme najdôležitejšie je najskôr zistiť informácie o multimediálnom súbore. To sa vykonáva cez príkaz FFprobe.exe. Samozrejme to možno aj napriek FFmpeg.exe, ale to riešiť nebudeme. Podrobne je príkaz špecifikovaný tu.

Testovacie video

Aby sme mohli začať experimentovať, budeme potrebovať nejaké testovacie video. Pre začiatok si z uloz.to stiahneme nejakej 4K video (ak by odkaz prestal fungovať, stiahnite ľubovoľné iné). Uloz.to vám umožňuje prezrieť si v parametroch vlastnosti daného multimediálneho súboru. Podľa informácií z Ulož.to je rozlíšenie 3840x2160 pixelov, počet snímkov za sekundu, tzv. Snímkovacie frekvencia alebo framerate, 23.8 a veľkosť súboru je cca 224 MB.

Potom, čo si ho stiahneme, ho premenujeme na video.mp4, aby sme nemuseli stále vypisovať tak dlhý názov súboru.

Daný video súbor nie je mojím upload. Ak už nebude dostupný, stiahnite si nejaké iné 4K video.

FFprobe

Vyskúšame teda čo FFprobe o danom súbore povie. A prevedieme to týmto príkazom:

ffprobe -i video.mp4

Parameter -i určuje zdrojový súbor. výsledok:

Výpis FFprobe z FFmpeg - Úprava audio a video súborov pomocou frameworku FFmpeg

Čo nám to teda hovorí o stopách v danom súbore?

Duration nám hovorí, že doba trvania je 43.47 sekundy. Celkový bitrate audia a videa je 43184 kilobitov / sekundu (43.184 Mb / s).

Stopy

Súbor obsahuje dve stopy (streamy). Video stopa označená ako Stream # 0: 0 a je uložená v kodeku h264. Kódovanie farebného spektra je spracované yuv420p, rozlíšenie je 3840x2160 (takže 4K), bitrate 43002 kb / sa počet snímkov 23.8 za sekundu.

Stopa audia označená ako Stream # 0: 1 je uložená v kodeku aac, vzorkovacej frekvencie (samplerate) je 44.1 kHz, počet kanálov je stereo (2 kanály) a bitrate je 192 kbit / sekundu.

Skrytie banneru

Ak nechceme vypisovať aj nepodstatné informácie o ffprobe, tak stačí pridať parameter (flag) -hide_banner:

ffprobe -i video.mp4 -hide_banner

Všetky parametre

Ak chcete vidieť všetky parametre, ktorými príkaz ffprobe disponuje (tzn. Vypísať nápovedu), stačí pridať parametre -h, -? alebo -help:

ffprobe -help

V prípade názvu súboru s medzerami je možné využiť úvodzovky, napr. "šílené jméno SouboruX564.mkv":

ffprobe -i "šílené jméno SouboruX564.mkv"

Toto samozrejme bude fungovať aj v prípade príkazu ffmpeg.

Kľúčové vlastnosti video stôp

  • Video kodek (Codecs) - Špecifikácie kompresného algoritmu, dá sa povedať, že čím novší, tým lepšie. Ide o dôležitý faktor pre kvalitu obrazu.
  • Rozlíšenie (Resolution) - rozlíšenie predstavuje počet riadkov a počet stĺpcov obrazu. Čím vyššie rozlíšenie, tým lepší obraz. Poznáme typy rozlíšenie 4K (UHD = 3840x2160), FullHD (HD1080 = 1920x1080), HD (HD720 = 1280x720), VGA (NTSC = 640x480), a pod.,
  • Počet snímok za sekundu (Framerate) - inak známe tiež ako snímkovacie frekvencie. Opäť čím vyššie číslo, tým lepší a plynulejší obraz.
  • Dátový tok (bitrate) - inak známe tiež ako hustota dátového toku. Opäť čím vyššie číslo, tým lepšie, ostrejší a detailnejší obraz. Ide o kľúčový parameter ovplyvňujúce v kodeku kvalitu videa.

Kľúčové vlastnosti audio stôp

  • Audio kodek (Codecs) - Špecifikácie kompresného algoritmu, dá sa povedať, že zas čím novšie, tým lepšie. Dôležitý faktor pre kvalitu zvuku.
  • Kanály (Channels) - 1 kanál Mono, 2 kanály Stereo, 6 kanálov kino. Každý kanál je vlastný zvuková stopa zložená z početnosti snímania (sample rate) a bitovej hĺbky (Sample size). Všetky kanály sú uložené v jednom audio streamu (stope). Ak je zvuk uložený cez kodek, potom je zvuk v kanáli vyjadrený typom kodeku a dátovým tokom.
  • Dátový tok (bitrate) - inak známy tiež ako hustota dátového toku. Opäť čím vyššie číslo, tým lepší zvuk. Ide o kľúčový parameter ovplyvňujúce kvalitu audia v kodeku. Dá sa povedať, že dátový tok predstavuje početnosť snímanie x hĺbku snímania.
  • Frekvencia snímania zvukových vzoriek (Sample rate) - Sample (vzorka) je najmenšia jednotka z digitálnej interpretácie zvuku. Ide o počet vzoriek nahraných za sekundu. Čím vyššie číslo, tým plynulejší zvuk)
  • Hĺbka snímania (Sample size) - Každému zvukovému vzorky je priradená bitová hĺbka (8, 16, 24 bitov). Prakticky by mala predstavovať hodnotu akustického tlaku v rôznych zvukových frekvencií. Hĺbka snímania a dátový tok nie je jedno a to isté.

Zobrazenie formátového výpisu súborového kontajnera

Ak použijeme parameter -show_format, potom nám výpis ffprobe zobrazia informácie o formáte súboru (súborovom kontajnera). Formátový výpis je výpis, v ktorom je jednoznačne špecifikovaná vlastnosť a jej hodnota. Nevykonáva sa teda formátový výpis pre jednotlivé streamy uložené v súborovom kontajneri. Skúsme si to:

ffprobe -i video.mp4 -hide_banner -show_format

výsledok:

vlastnosti videá - Úprava audio a video súborov pomocou frameworku FFmpeg

Zobrazenie výpisov streamov uložených v súborovom kontajneri

Ak použijeme parameter -show_streams, potom nám výpis ffprobe zobrazia informácie o jednotlivých streamoch uložených v súborovom kontajneri. Streamy sú radené jeden za druhý. Ako vidíte v priloženom obrázku, stream obsahuje skutočne veľa parametrov a do priloženého screenshotu sa ani všetky nevošli:

ffprobe -i video.mp4 -hide_banner -show_streams

výsledok:

vlastnosti - Úprava audio a video súborov pomocou frameworku FFmpeg

Export do JSON

Samozrejme možno vykonať výpis do JSON formátu:

ffprobe -i video.mp4 -v quiet -print_format json -show_streams

Ak výpis chceme uložiť aj do súboru, použijeme štandardné DOS syntax:

ffprobe -i video.mp4 -v quiet -print_format json -show_streams >> video.json

Export do XML

Samozrejme možno vykonať aj výpis do formátu XML:

ffprobe -i video.mp4 -v quiet -print_format xml -show_streams

Pokiaľ ho chceme uložiť aj do súboru, použijeme opäť štandardné DOS syntax:

ffprobe -i video.mp4 -v quiet -print_format xml -show_streams >> video.xml

Toto by vám malo stačiť na to, aby ste boli schopní úspešne konvertovať súbory multimédií. V budúcej lekcii, Ffmpeg a transcoding - Kontajner, Kodek , nás čaká transcoding čiže prevod multimédiami medzi rôznymi formátmi.


 

Predchádzajúci článok
Framework FFmpeg - Predstavenie a nastavenie
Všetky články v sekcii
Úprava audio a video súborov pomocou frameworku FFmpeg
Preskočiť článok
(neodporúčame)
Ffmpeg a transcoding - Kontajner, Kodek
Článok pre vás napísal Robert Michalovič
Avatar
Užívateľské hodnotenie:
1 hlasov
Programuji převážně v Javě SE,EE a trochu nativním C a CUDA. více viz.https://cz.linkedin.com/in/robert-michalovic
Aktivity