od PandaWild » 19. únor 2019 18:25
Má to vliv na velikost. Video se komprimuje tak, že se do datového toku vloží buď I-frame, tj. klíčový snímek, který obsahuje kompletní obrazovou informaci. Nebo se vloží P-frame nebo B-frame, což jsou rozdílové snímky které udávají jenom změny v obraze. Klíčový snímek je v podstatě plný JPG obrázek. Rozdílové snímky mohou být na data značně menší než klíčové. Pro minimalizaci velikosti videa (minimalizace datového toku) je výhodné používat co nejvíce rozdílové snímky. Ale špatně se s nimi pracuje, protože pro zobrazení snímku se musí dekódovat všechny snímky od posledního klíčového snímku. U souvislého přehrávání videa to nemusí vadit, protože se snímky dekódují průběžně, teoreticky může stačit aby byl pouze první snímek videa klíčový a všechny následující už jen rozdílové. Problém může nastat při chybě v datovém toku, např. chyba ve videosouboru nebo výpadek streamu - obraz se rozpadne a spraví se až od dalšího klíčového snímku. Ale hlavně to dělá problém při vystavování, např. při editaci videa. Program aby zobrazil snímek (nebo ustříhl v tom místě video), tak musí projet všechny snímky od posledního klíčového snímku až po požadovanou pozici, aby získal celý obraz snímku. Program si uchovává jen seznam snímků, který mu říká, kde v souboru jsou klíčové snímky a kde ostatní snímky, ale při zobrazení musí ta data projet a obraz dekódovat přes několik snímků. Běžně video konvertory počítají se streamovým přehráváním (např. filmy), kde není potřeba moc vystavovat pozici a stream je souvislý, proto tam stačí menší frekvence klíčových snímků, zpravidla tak po 10 sekundách (tj. např. při fps=25 to bude po 250 snímcích). Ale když se chce takové video editovat, program musí projet a dekódovat celý ten úsek 10 sekund, což už může být časově hodně náročné, a proto u editovaného videa je lepší volit kratší úsek, např. 1 sekunda. Extrémním případem je MJPEG kodek, u kterého je každý snímek klíčový, což jsou v podstatě všechno JPG obrázky, nepoužívá rozdílové snímky, soubor je velký, ale jeho editace může být rychlá (není nutné dekódovat mezisnímky).