Jak komprimovat videoarchiv

jouda2

Jak komprimovat videoarchiv
« kdy: 20. 09. 2020, 01:36:44 »
Zdar všem,

rád bych se zeptal na radu - během let se mi různě rozlezlo několik TB videí po různých discích, NAS, .... a zkrátka už mě to přerůstá přes hlavu, tak jsem se rozhodl, že pořídím disk (a následně druhý na offsite zálohu) a zkusím si v tom udělat trochu pořádek.
Ale ouha, moje poslední znalosti sahají do doby kdy jsem řešil jak přes DLNA když televize umí mpeg2, zatímco video je h.264, a teď vím že prakticky nic nevím. Resp jsou mraky nových codeců, ale co vím tam většina z nich ani pro něco míň než UHD nedává smysl.
Takže můj dotaz: Do jakého formátu, případně s jakým nastavením kodeků dnes překódovat videa, aby to při <=DVD kvalitě zabralo co nejméně místa? Doba převodu je mi víceméně ukradená (pokud to nebude 0.1FPS), když to půjde přehrát na (aktuálním) vlc a mplayeru tak to úplně stačí.

Dík za jakékoli nasměrování.


_Jenda

  • *****
  • 1 550
    • Zobrazit profil
    • https://jenda.hrach.eu/
    • E-mail
Re:Jak komprimovat videoarchiv
« Odpověď #1 kdy: 20. 09. 2020, 08:21:46 »
x265, crf si nastav aby to vypadalo snesitelně, a můžeš zkusit preset slow. Použitelné rozlišení nechápu, přijde mi, že to dává báječné výsledky i pro 640x480.

Mimochodem audio už možná bude zabírat nezanedbatelnou část dat. Zvážil bych zredukování na 1 kanál, downsamplování na 22050/24000 Hz, a převod do Opusu.

alex6bbc

  • *****
  • 1 432
    • Zobrazit profil
    • E-mail
Re:Jak komprimovat videoarchiv
« Odpověď #2 kdy: 20. 09. 2020, 09:15:41 »
jsou to doufam soukrome videa, ze neskladujes filmy?!
protoze doba pokrocila a vsechno uz se da najit on-line :-)

"H.264 codec is also known as AVC. Though it’s a bit dated is widely used, and H.264 compression technology is available for almost every platform and device out there today. The standard is being upgraded with the High-Efficiency Video Coding (HEVC), or the H.265 is overtaking the previous version with the explosion of 4K video content. The H.265 has much higher efficiency in compressing the videos and makes streaming the ultra-high-definition 4K or 8K videos easier."

Re:Jak komprimovat videoarchiv
« Odpověď #3 kdy: 20. 09. 2020, 09:58:25 »
Je naprostý nesmysl ztrácet čas převodem mezi formáty a ještě prznit kvalitu, za tu dobu může jít člověk někam pracovat a vydělat si na další disky :-)

RDa

  • *****
  • 2 467
    • Zobrazit profil
    • E-mail
Re:Jak komprimovat videoarchiv
« Odpověď #4 kdy: 20. 09. 2020, 10:29:02 »
Je naprostý nesmysl ztrácet čas převodem mezi formáty a ještě prznit kvalitu, za tu dobu může jít člověk někam pracovat a vydělat si na další disky :-)

Uplny souhlas. Kolik TB toho ten clovek ma? Dnes neni problem postavit jakkoliv velke uloziste.. a problem s offsite zalohou/sync je uplne stejny, kdyz mate 5TB vs 25TB.


Re:Jak komprimovat videoarchiv
« Odpověď #5 kdy: 20. 09. 2020, 10:48:28 »
... protoze doba pokrocila a vsechno uz se da najit on-line :-)
Tak mi najdi online Silvestr u Boba s českým dabingem.

Hamparle

  • ****
  • 360
  • junior developer ucho
    • Zobrazit profil
    • E-mail
Re:Jak komprimovat videoarchiv
« Odpověď #6 kdy: 20. 09. 2020, 11:22:40 »
Takže v h264 to nemáš ještě? o xvid a divx jsi slyšel(to je historie už)?
Také je směrodatné pro to, jestli má vůbec kompresi dělat cenu, to v jakém bitrate,kvalitě a kodeku jsou ty filmy. Abys věděl, jak moc jsou filmy nafouklé(například 40Mbps jen tak zbytečně ), pak se to vyplatí, pokud tomáš v 4Mbps, pak se nemá tím cenu zabývat.

Re:Jak komprimovat videoarchiv
« Odpověď #7 kdy: 20. 09. 2020, 11:32:00 »
U malých rozlišení (dejme tomu až do 1080p) je zanedbatelný rozdíl mezi H.264 a H.265. Výhodou 264 je širší podpora (přehraje to kdejaký android, starší masox, ios) a o řád rychlejší encoding, tak to osobně preferuji pro ne-4K videa.

Na začátku jsem udělal pár srovnávacích testů na různých reprezentativních vzorcích (různé klenoty z 90. let, které dnes už prostě neexistují ani na Usenetu, natož v komerční distribuci) a došel k výše uvedenému závěru. Používám

Kód: [Vybrat]
ffmpeg -i file:input.mp4 -threads 8 -codec:v libx264 -preset slow -crf 22.0 -profile:v high -level 4.2 -codec:a libopus -sn output.mkv
Experimentoval jsem se svobodnějšími formáty (VP9, AV1) ale jejich čas ještě nenastal. Jednak je encoding i na slušnějším hardwaru velmi pomalý (desetiny FPS), a jednak málo nesvobodných systémů (androidy, televize) to dnes přehraje. S celou kolekcí v H.26{4,5} mám jistotu, že nebude problém :)

Hamparle

  • ****
  • 360
  • junior developer ucho
    • Zobrazit profil
    • E-mail
Re:Jak komprimovat videoarchiv - k parametrům enkodování
« Odpověď #8 kdy: 20. 09. 2020, 11:54:15 »

Kód: [Vybrat]
ffmpeg -i file:input.mp4 -threads 8 -codec:v libx264 -preset slow -crf 22.0 -profile:v high -level 4.2 -codec:a libopus -sn output.mkv

A nekazí tam "kompatibilitu" ten opus? Na kolikjádrovém CPU to konverzuješ -- ten počet threads k něčemu dobrý nebo to má jiné vysvětlení (4jádrový CPU se zapnutým HT nebo 8jádrový CPU se zapnutým HT). Ten level také je klíčový? Já myslím, že to jen mění nějaké ty featury kodeku (mbtree, počty ref/b frames,GOP) a limituje nějaké bitraty a počty ref/b-frames.

Re:Jak komprimovat videoarchiv
« Odpověď #9 kdy: 20. 09. 2020, 12:52:12 »
Opus je problém jen snad u starších televizí, jinak všude bez problému. Převádím to na osmijádrovém ARMu (Odroid HC2) pár skripty, co berou z "input" fochu a postupně zpracovávají novinky (včetně třeba co se nasynchronizuje z mobilu... videa z kamery mají velmi slabou kompresi kvůli realtime encodingu).

Level nastavuje pár čísel, je to popravdě cargo cult, někde jsem to viděl a opsal :-) tabulka je ve standardu, příloha A, těch 4.2 by mělo být optimum pro 1080p.

P_V

  • ***
  • 227
    • Zobrazit profil
    • E-mail
Re:Jak komprimovat videoarchiv
« Odpověď #10 kdy: 20. 09. 2020, 13:25:12 »
Level není cargo kult. Levely jsou stanovené jako výkonnostní mezníky, kterých musí nějaký dekodér dosáhnout. Na straně enkodéru znamená level tvrdý limit na některé parametry streamu. Když se level dodrží při enkódování, tak je pak zaručeno, že to přehraje všechno, co ten level splňuje. Konkrétně level 4.2 je požadavek pro zařízení, co mají zvládnout fullhd s 60fps.

jouda2

Re:Jak komprimovat videoarchiv
« Odpověď #11 kdy: 20. 09. 2020, 15:23:00 »
jsou to doufam soukrome videa, ze neskladujes filmy?!
protoze doba pokrocila a vsechno uz se da najit on-line :-)
Jistě že jde o soukromé a/nebo zveřejněné filmy.
S tím "všechno jde najít online" - nechci sem tahat politiku, tak si jen dovolím neutrálně odkázat na to, že se bavíme o archívu, a málokdo je schopen říct co bude "politicky přijatelné" byť za pár měsíců. V mládí jsem musel čumět jen na filmy které odpovídaly politické objednávce, jedním z důvodů archivu je, aby mě něco podobného nečekalo i jednou v důchodu.

Citace
Je naprostý nesmysl ztrácet čas převodem mezi formáty a ještě prznit kvalitu, za tu dobu může jít člověk někam pracovat a vydělat si na další disky :-)
Tak to se může konverovat samo když je člověk v práci a vydělává na jiné věci než nové disky. ;-)
Ne vážně, pokud je něco v xvidu, tak to ještě jde. Ale když se tam najdou věci jako quicktime, .fid a pár dalších pecek, tak už si to nějakej transcoding fakt zaslouží.

@Křišťan: díky, zkusím


Re:Jak komprimovat videoarchiv
« Odpověď #12 kdy: 20. 09. 2020, 17:06:13 »
Dle mého pokud reencode tak jedině s deep learningem a A.I. jinak ponechat tak jak je.
Levely u H.264-5 nejsou cargo cult, ale říkají výstupnímu zařízení maximální limity.
Pokud ho upravíte na nižší, tak zařízení video přehraje a v nekontrolovatelných okamžicích se obraz začne rozpadat.
Pokud je vyšší, zobrazí rovnou hlášku "video není podporováno".

U encoderu je to jasné, výsledek bude odpovídat levelu ideálně sladěném s výstupním zařízením.

Jinak x265 ve veryslow a crf je ideální volba.
„Řemeslo se naučí každý. Umění nikdo.“
„Jednoduchost je nejvyšší úroveň sofistikovanosti.“
- Leonardo Da Vinci

Re:Jak komprimovat videoarchiv
« Odpověď #13 kdy: 20. 09. 2020, 18:41:37 »
@ J ouda V úvodním dotazu píšete něco o velikosti a udělání pořádku, pak zase něco o formátech - tak jak tedy? Jestli vám jde o místo, tak to prostě neřešte, HDD dneska stojí pár korun, soubory vám zůstanou v původní kvalitě a nebudete na tom ztrácet čas. Pokud by šlo o nějaký paskvil v noname formátu, který lze sotva přehrát v PC, natož jinde, pak se o tom dá uvažovat.
Každopádně si ale nedělejte žádné iluze o tom, že ušetříte kdoví kolik místa při zachování zhruba stejné kvality se zdrojovým videem. O tom by šlo mluvit snad jedině v případě, že máte záznamy z DV kamery ve formátu AVI, kde 1 hodina = 13 GB dat, pak převod na DVD-Video ve velikosti cca 4 GB úsporou bez debat je. Ale jestli už teď máte nějaké MPEG soubory, tak převodem nezískáte prakticky nic, někdy to dokonce může být paradoxně naopak a překódovaný soubor bude ještě větší, než byl soubor původní.

cziss

Re:Jak komprimovat videoarchiv
« Odpověď #14 kdy: 20. 09. 2020, 20:55:48 »
Hmmm, já bych řekl, že tohle je mnohem hlubší otázka než se může na první pohled zdát a měl byste se podívat na nějaké forum zaměřené přímo na tuto problematiku. Ono totiž kodek sám o sobě ještě nemusí znamenat nic, pořádnou parádu můžete udělat profilem a výstupním nastavením kodeku.

Příklad - já pomocí Kdenlive předělám .mp4 videa z foťáku a dalších 3 mobilů v AVC kodeku na vstupu do zdánlivě toho stejného na výstupu při stejném počtu snímků/s, jen je ta jiný profil. Výsledná videa při naprosto stejné kvalitě jsou o 1/2 až 1/3 menší.

A jak tu psal kolega, tak v 5 % případu se stane, že video je větší než to zdrojové? Proč? Nevím...

Co se týče samotné komprese, tuším, že to má co dělat se scénou jako takovou. Podobná scéna se dá "smrsknout", zatímco když je video hodně "střídavé" (jestli mi rozumíte...), tak tam už ty možnosti nejsou. A taky si myslím, že když tomu budete fakt rozumět, tak dokážete vybrat pro každé video profil, který následně dokáže udělat největší kompresi. Ale beru, že když to chcete dělat na velkém počtu videí (aby to šlo samo), tak to není Váš případ.

+ PS.: upozorňuji, že tyhle srandičky jsou dost náročné na výkon a čas, tak byste se nedivil  ;)