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

1. diel - Framework FFmpeg - Predstavenie a nastavenie

Cieľom tohto kurzu je objasniť a predviesť ako za pomoci programu (frameworku) FFmpeg vykonávať úpravu vašich video a audio súborov. FFmpeg je zadarmo a podporuje širokú škálu operačných systémov aj formátov. Nutné znalosti k úspešnému pracovanie so súbormi médií je len vedieť FFmpeg stiahnuť a spustiť a používať príkazový riadok. V článku si tiež zjednodušene objasníme ako fungujú súbory multimédií, aby ste boli schopní si úpravy sami vykonávať podľa svojich požiadaviek a potrieb.

Framework FFmpeg

Projekt FFmpeg je skupina programov a knižníc (framework), ktorý vám umožní spracovávať / upravovať / prehrávať vaše multimediálne súbory. FFmpeg je vyvíjaný pre najrozšírenejšie OS na planéte (napr. Windows, Linux, Mac OS). Je zadarmo pri dodržaní podmienok LGPL verzie 2.1. Prakticky ho možno použiť pre domáce i podnikateľské účely bezplatne. Nevýhodou je, že nemá český manuál, čo sa budem v tomto kurze snažiť napraviť. Framework FFmpeg nemá grafickú nadstavbu, takže sa ovláda cez príkazový riadok, však na internete možno nájsť rôzne projekty, ktoré sa o grafickú nadstavbu úspešne aj neúspešne pokúšali.

Podpora dekódovanie

Čo sa týka dekódovanie videa, je rozsah frameworku skutočné obrovský. Tu je zoznam podporovaných video kodekov (viď ďalej). Takéto množstvo podporovaných kodekov je skutočne výnimočné v porovnaní aj s platenými alternatívami.

Podpora kódovania

Podpora kódovania je znateľne menšie, ale čo je hlavné je, že sú podporované najznámejšie kodeky, ktoré pravdepodobne podporujú vaše domáce zariadenia ako napr .:

  • H.263,
  • H.264,
  • H.265 (HVEC),
  • MPEG1,
  • MPEG2,
  • MPEG4,
  • FLV,
  • VP8,
  • VP9,
  • ...

Tu je zoznam podporovaných audio kodekov, ale o úprave audia sa budem zmieňovať v kurze len okrajovo.

Úvod do multimédií

Kedysi dávno v 90. rokoch za éry 286, 386, 486 a Pentia I sa video / audio súbory na počítačoch typu PC moc nepoužívali. Pravdepodobne to bolo spôsobené chýbajúce inštrukčnou sadou (MMX), ktorá sa objavila koncom éry Pentia I (rok + - 1997). Dovtedy sa síce video / audio súbory na počítačoch objavovali, ale zaberali veľkú kapacitu na disku a mali veľké požiadavky na výkon procesora. Príchodom inštrukčnej sady MMX v procesoroch Pentium MMX, Pentium II sa teda umožnil pokles náročnosti na procesor na dostatočnú úroveň pri spracovaní komprimačných / dekompresor algoritmov, ktoré sú známe ako kodeky.

Kodeky

Kodeky nie sú prakticky nič iné ako komprimačný / dekompresor algoritmy pre dáta (streamy, stopy), v ktorých je uložené video (obraz) alebo audio (zvuk). Samozrejme svoj vplyv tu zohrali aj veľkosti pevných diskov a rozšírenie CD, ktoré v čase blížiaceho sa konca tisícročia už mali dostatočnú kapacitu pre uloženie filmov.

Súbory multimédií

Tzv. súbory multimédií sú prakticky obyčajné (binárne) súbory, v ktorých sú uložené video alebo audio stopy (streamy). Vo väčšine prípadov to funguje tak, že napr. V súbore videa je jedna stopa pre video (obraz) a jedna alebo viac audio stôp (napr. CZ, SK, ENG, ...) + niekedy stopa titulkov. V multimediálnych súboroch môžu byť aj iné stopy, napr. Ikony, obrázky a pod.

Formáty súborov

Týmto typom multimediálnych súborov sa hovorí súborový kontajner alebo tiež súborový formát (v angličtine file format). Tie sa delia na video a audio súborové kontajnery.

Kontajnerové súbory videí majú väčšinou video + audio stopy a súbory audio majú väčšinou len audio (zvuk) stopu. Súborové kontajnery sa identifikujú podľa prípony súboru.

Videoformáty

Existuje veľa typov video súborových kontajnerov, napr. * .Avi, * .mkv, * .mpeg, * .ogg, * .mp4 pod.

Audioformáty

Rovnako tak existujú aj audio súborové kontajnery, napr .: * .mp3, * .flac, * .wma, * .wav pod.

Každý tento súborový kontajner (formát), či už ide o video alebo audio, disponuje svojou špecifikáciou (štandardom), ako napr. Tento typ * .mkv (Matroska). Problémom je, že niektoré tieto súborové kontajnery sú vyvinuté rôznymi spoločnosťami a tie za ich používanie chcú licenčné poplatky. To je dôvod, prečo nemusí byť vždy podporované.

Schéma multimediálneho súboru - Úprava audio a video súborov pomocou frameworku FFmpeg

Typy kodekov

Ako som uviedol, každý multimediálny súbor je kontajnerom, ktorý obsahuje video (obrazové) / audio (zvukovej) stopy. Tieto stopy bývajú väčšinou zakódované kodekom. Zopakujem to ešte raz, kodeky sú iba komprimačný algoritmy, ktorý majú jediný účel a to zmenšiť veľkosť súboru.

Opäť existujú rôzne video alebo audio kodeky (niekedy pomenované ako video / audio kompresné formáty). U video kodekov to sú napr. Xvid, DivX, h264, H265, mpeg2, mpeg4 pod. Au audio kodekov napr. Aac, Vorbis, mp3, Opus, či audio kodeky známe z VoIP typu G.711, G.722 pod.

Funkcie FFmpeg

FFmpeg zastrešuje tieto činnosti:

  • Encode (kódovanie) - Dáta predstavujúce multimediálny obsah zakóduje do definovaného kodeku (kompresného algoritmu)
  • Decode (dekódovanie) - Dáta predstavujúce multimediálny obsah zakódovaného kompresným algoritmom dekóduje tak, aby sa dala používať
  • Transcode (prekódovanie) - prevádzanie multimediálnych súborov do iného súborového kontajnera, do iného kodeku, iné snímkovacie frekvencie (framerate), apod.
  • Mux (spájanie stôp) - kombinovanie dvoch a viac stôp do jedného súborového kontajnera. Napr. video stopa + audio stopa 1 + audio stopa 2 + stopa titulkov
  • Demux (odstraňovanie stôp) - opak Muxu, odstraňovanie alebo rozdelenie multimediálneho kontajnera (súboru) na viac stôp (súborov)
  • Streaming (vysielanie na sieť) - umožňuje multimediálny obsah (súbor) vysielať vo forme prúdu (streamu) po sieti (LAN / MAN / WAN). Viac info prípadne na https://trac.ffmpeg.org/...reamingGuide
  • Filtering (úprava cez filtre) - umožňuje vykonať vami nadefinované filtre na multimediálne súbory
  • Play (prehrávanie) - áno, FFmpeg umožňuje aj danej multimediálne súbory prehrávať

Stiahnutia a inštalácie

Takže to je pre úvod všetko. FFmpeg si stiahneme tu. Zídeme na ikonu Windows (prípadne inú, ak máte iný OS), a pod ňou sa nám objaví text Windows Builds, na ktorý klikneme:

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

Presmeruje nás to na stránku s buildy. My si vyberieme poslednú stabilnú verziu (je označená číslom verzie), potom typ architektúry (win64 či Win32) au linkingu si vyberieme shared (zdieľanú). Potom zvolíme priamo Download Build. Daná variant bude mať menej ako 30 MB a bude skomprimované v * .zip.

Daný súbor si rozbaľte kam chcete (napr. Do C:\Program Files\FFmpeg\) a nakopírujte (program sa neinštaluje). V prípade, že sa ho budete chcieť zbaviť, stačí ho len zmazať, nie je nutná odinštalácie. V adresári doc/ nájdete dokumentáciu a v bin/ nájdete naše programy, ktoré budeme využívať.

Nastavenie PATH

Teraz je nutné nastaviť systémovú premennú PATH tak, aby sme pri práci s FFmpeg nemuseli stále znovu a znovu vypisovať cestu k daným programom. Vo Windows (v mojom prípade vo Windows 10) si nájdeme Ovládací panel a budeme postupovať takto (je nutné mať práva administrátora vo Windows): Ovládací panel -> Systém -> Rozšírené nastavenia systému -> Rozšírené -> Prostredie premenných -> vyberieme PATH a zvolíme upraviť -> a tu vyberieme Nový a vy len nastavte cestu tak, aby viedla k programom umiestneným v adresári bin/, napr. C:\Program Files\FFmpeg\bin\. A reštartujte PC.

Nastavenie PATH pre FFmpeg - Úprava audio a video súborov pomocou frameworku FFmpeg

Programy FFmpeg umiestnené v bin/

Na koniec úvodnej lekcie sa pozrime aké programy máme vo frameworku vlastne k dispozícii:

  • FFprobe.exe - program, ktorý vypisuje metainformácie (rozlíšenie, framerate, typ kodeku atď.) U multimediálnych súborov
  • FFmpeg.exe - program, ktorý vykonáva úpravy multimediálnych súborov
  • FFplay.exe - program, ktorý umožňuje prehrávanie multimediálnych súborov

Hardvérové požiadavky

Čo sa týka hardvérových požiadaviek, program je plne viacvláknové (multithreaded). Pri kódovanie / dekódovanie plne využíva všetky logická jadra. V skratke sa dá povedať, čím viac logických jadier, tým rýchlejšie kódovanie / dekódovanie prebieha a približne s priamou úmerou (4 jadrá sú približne 2x rýchlejšie ako 2 jadrá, 16 jadier je 4x rýchlejší než 4 jadrá). Pod FFmpeg existuje aj podpora hardvérovej akcelerácie cez grafické karty. Avšak to som ešte neskúšal. Čo sa týka pevných diskov, pri kódovaní / dekódovaní sa neprenáša moc rýchlo dáta, takže nie je podstatné, či máte SSD alebo štandardný grilovacie disk (zn. HDD). To isté platí aj o operačných pamätiach. Rýchlosť a veľkosť nie je moc podstatná. Ale min 4GB RAM by ste mali mať. Takže záverom u FFmpeg zásadným spôsobom ovplyvňuje rýchlosť kódovanie / dekódovanie iba počet jadier vr. hyper-threading.

V budúcej lekcii, FFprobe - Analýza multimediálnych súborov , sa budeme venovať prvému zo spomínaných nástrojov, teda analýze multimediálnych súborov.


 

Všetky články v sekcii
Úprava audio a video súborov pomocou frameworku FFmpeg
Preskočiť článok
(neodporúčame)
FFprobe - Analýza multimediálnych súborov
Článok pre vás napísal Robert Michalovič
Avatar
Užívateľské hodnotenie:
2 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