FFmpeg - jak udělat bezztrátové video?

Pavouk106

  • *****
  • 2 400
    • Zobrazit profil
    • Můj blog
    • E-mail
FFmpeg - jak udělat bezztrátové video?
« kdy: 17. 03. 2014, 19:55:13 »
Ahoj,

snažím se nahrát plochu pomocí příkazu
Kód: [Vybrat]
ffmpeg -f alsa -f x11grab -r 30 -s 1920x1080 -i :0.0 -acodec pcm_s16le -vcodec libx264 -qp 0 -threads 0 output.mkvale nedaří se mi udělat ho lossless, bezztrátový. Chci absolutní zachování barev a ideálně žádnou kompresi.

Netušíte někdo?

(příkaz jsem "opsal" z netu...)


Pavel 'TIGER' Růžička

Re:FFmpeg - jak udělat bezztrátové video?
« Odpověď #1 kdy: 17. 03. 2014, 20:19:21 »
Zvolit jiný -vcodec ???

Pavouk106

  • *****
  • 2 400
    • Zobrazit profil
    • Můj blog
    • E-mail
Re:FFmpeg - jak udělat bezztrátové video?
« Odpověď #2 kdy: 17. 03. 2014, 20:45:15 »
Zvolit jiný -vcodec ???
Hm, to má něco do sebe (mělo mě to napadnout, vždyť je to jako se zvukem). Máš nějaký tip?

Pavel 'TIGER' Růžička

Re:FFmpeg - jak udělat bezztrátové video?
« Odpověď #3 kdy: 17. 03. 2014, 20:53:23 »
Zvolit jiný -vcodec ???
Hm, to má něco do sebe (mělo mě to napadnout, vždyť je to jako se zvukem). Máš nějaký tip?

Hele, nemám, nikdy jsem to nepotřeboval.

JarinBarin



Jimm


Jirka1

Re:FFmpeg - jak udělat bezztrátové video?
« Odpověď #6 kdy: 17. 03. 2014, 22:10:24 »
Kromě volby jiného kodeku je pro to potřeba rychlý disk/pole. Nekomprimované 1920p30 v RGB24 má datový tok 190MB/s.

Pavouk106

  • *****
  • 2 400
    • Zobrazit profil
    • Můj blog
    • E-mail
Re:FFmpeg - jak udělat bezztrátové video?
« Odpověď #7 kdy: 18. 03. 2014, 10:20:04 »
https://trac.ffmpeg.org/wiki/x264EncodingGuide#LosslessH.264
http://lmgtfy.com/?q=ffmpeg+lossless+codec
A zkoušeli jste to? Já totiž jo a to je ten důvod proč se nakonec ptám lidí a nesnažím se to vyčíst...

TIGER: I tak díky za nasměrování.

Kromě volby jiného kodeku je pro to potřeba rychlý disk/pole. Nekomprimované 1920p30 v RGB24 má datový tok 190MB/s.
Heh... dobrý vědět :-) Takže nakonec budu hledat nějakej kompromis.

Úprava původní otázky: Jakej kodek (potažmo nastavení) použít pro celkem slušný zachování barev i kvality? Ideálně bych rád vyzkoušený věci.

Jirka1

Re:FFmpeg - jak udělat bezztrátové video?
« Odpověď #8 kdy: 18. 03. 2014, 11:41:41 »
Problém je v tom, že ty kodeky jsou primárně určené pro TV a tak obvykle pracují se vzorkováním 4:2:0 a navíc v rozsahu hodnot pro složku 16-240, nikoliv 0-255 jako PC. Takže je potřeba se zaměřit na kodeky, které umožňují vzorkování 4:4:4, v nejhorším aspoň 4:2:2, při kterém však už drobný barevný text vypadá rozmazaně a s menší sytostí. 4:2:2 by mělo jít nastavit v mpeg2 i mpeg4, u 4:4:4 netuším. Omezený rozsah hodnot nebývá problém, konverze PC-TV kodek zvládne.

nou

Re:FFmpeg - jak udělat bezztrátové video?
« Odpověď #9 kdy: 18. 03. 2014, 13:00:15 »
pozrel by som sa na huffyuv ffvhuff kodeky ktore ukladaju nekomprimovane YUV video.

Jirka1

Re:FFmpeg - jak udělat bezztrátové video?
« Odpověď #10 kdy: 18. 03. 2014, 15:04:18 »
pozrel by som sa na huffyuv ffvhuff kodeky ktore ukladaju nekomprimovane YUV video.
Používal jsem ho kdysi pod Windows na grabování. Je fajn, ale komprese asi tak 2:1, takže v HD z toho bude pořád pěkná obluda. I když při záznamu plochy by mohl být účinnější.

j

Re:FFmpeg - jak udělat bezztrátové video?
« Odpověď #11 kdy: 18. 03. 2014, 15:06:09 »
Technicky to muzes ukladat jako sekvenci bitmap - proste budes nekam ladovat pozadovanej pocet obrazku/s. Pokud me skleroza slouzi, tak to dokonce v tyhle podobe defakto primo jde narvat do mkv, pricemz jen definujes pocet snimku/s ... aby prehravac vedel, jak rychle to ma prehravat. Samo je holej nesmysl to ukladat nekomprimovane, protoze i bezztratova komprese ti zmensi vysledek pomerne razantne.

Jinak tu mas nakej postup https://stackoverflow.com/questions/6701805/h264-lossless-coding

j

Re:FFmpeg - jak udělat bezztrátové video?
« Odpověď #12 kdy: 18. 03. 2014, 15:12:05 »
pozrel by som sa na huffyuv ffvhuff kodeky ktore ukladaju nekomprimovane YUV video.
Používal jsem ho kdysi pod Windows na grabování. Je fajn, ale komprese asi tak 2:1, takže v HD z toho bude pořád pěkná obluda. I když při záznamu plochy by mohl být účinnější.

1680 ... bmp 5M, png 90kB => komprese (neztratova) 1:50 .., realita je takova, ze jpeg nebude o moc mensi, pri mym hokuspokusu (pouzit widli paint) je naopak jpeg znacne vetsi (350kB). To je dany prave tim, ze nekde o fotku, ale o grafiku kde sou ohromny stejnobarevny plochy (a jpeg to vlastne rozbije).

michal

Re:FFmpeg - jak udělat bezztrátové video?
« Odpověď #13 kdy: 18. 03. 2014, 15:21:04 »
ja pouzivam tenhle prikaz:


## nahravani videa z desktopu +0,0 je posunuti obrazu v ose x a y
ffmpeg -video_size 1920x1080 -framerate 25 -f x11grab -i :0.0+0,0 -vcodec huffyuv test.avi


pred editaci v cinelere to jeste konvertuju do png.

je to bezstratovy jenom se podle mne  zmneni barevna paleta (z puvodni rgb do yuv a pak pokud to budes konvertovat do png tak zase do rgb) zmnena barev ale neni (alespon pro mne) okem postrehnutelna.

Pavouk106

  • *****
  • 2 400
    • Zobrazit profil
    • Můj blog
    • E-mail
Re:FFmpeg - jak udělat bezztrátové video?
« Odpověď #14 kdy: 18. 03. 2014, 16:15:31 »
ffmpeg -video_size 1920x1080 -framerate 25 -f x11grab -i :0.0+0,0 -vcodec huffyuv test.avi
Vyzkouším. Kolik si to vezme (třeba za minutu) místa? :-)

Jinak zachytávat se chystám obecně obraz, ne plochu nebo terminál (takže žádný PNG výhody apod.). Jsem zvedavej, jestli to doplácám do nějakýho použitelnýho stavu (aby obraz za něco stál a přitom nesežral místo za minutu). Na textu to testuju, je tam krásně vidět jak jsou barvy a detaily v hajzlu...

Nadále uvítám nápady, jak zachytávat obraz tak, aby nebyly rozhozený barvy a byl dostatečně detailní. Klidně s kompresí, ale "hezky".