Recenze  |  Aktuality  |  Články
Doporučení  |  Diskuze
Filmy a seriály, streamovací služby
Televize  |  Projektory
Audio a domácí kina
Multimediální centra  |  Ostatní
Svět hardware  |  Digimanie
Svět mobilně

script 50p

maxima (134)|21.1.2019 10:10
Ahoj. Mam kratke video z mobilu 1080p 23,97 fps. Jak by vypadal script na prevod do 1080p 50 fps ?

Predem diky.
Maxima
Saxel (2279)|21.1.2019 12:13
Dříve jsem používal filtr MFlowFps z pluginu MVTools, ale teď používám skript InterFrame2, protože mi subjektivně dává lepší výsledek. Tady je skript, kterým převádím videa z mobilu 29,97 fps na 50 fps:

[CODE]Global pd = "c:\Program Files (x86)\AviSynth\plugins\"
Setmemorymax(1024)
SetMTMode(5)


LoadPlugin(pd + "LSMASHSource.dll") # http://avisynth.nl/index.php/LSMASHSource
Import(pd + "interframe2.avsi") # https://www.spirton.com/category/interframe/
LoadPlugin(pd + "svpflow1.dll")
LoadPlugin(pd + "svpflow2.dll")


LSMASHVideoSource("d:\Projects\Mobil\20180528_165210.mp4")
#AssumeFPS(30)
InterFrame(NewNum=50,NewDen=1,cores=4)
[/CODE]
maxima (134)|21.1.2019 14:10
Saxel diky. MVTools mam, ale ty nove neznam, musim doma postahovat knihovny a vyzkousim.
Maxima
maxima (134)|21.1.2019 15:48
Saxel. Slape to,diky. Vysledek jsem neporovnaval, ale vypada na první pohled slusne. Nechodi mi radek SetMTode (), tak jsem ho vyhodil. Mozna nekorektni knihovna ztazeno z jiného zdroje, z avisynth webu neslo, nevim proc. Predpokladam, ze to potřebuje tu knihovnu mt.dll
Maxima
Saxel (2279)|22.1.2019 07:02
Používám neoficiální build Avisynthu 2.6.0 MT, který má vylepšenou podporu Multithreadingu, viz odkaz: https://forum.doom9.org/showthread.php?t=148782.
Je sice méně stabilní, ale umožňuje lepší využití výkonu CPU.
maxima (134)|22.1.2019 10:08
Saxel, tak ted mam asi v kompu zmatek. Urcite jsem nainstaloval verzi 2.6. Protože to doporucoval Ai pro ty BAT soubory. Ale včera jsem se dival do adresare a mam tam v C:\Program Files (x86) slozku Avisytnh 2.58. Je mozne, ze když jsem zapomnel odinstalovat verzi 2.58, ze tam nekde je i ta 2.6 a systém ted nevi co a jak? Nebo ze tu starou verzi to preinstalovalo a tvari se jako 2.58 ? Nechci do toho vrtat protože ty BAT funguji a trochu trvalo nez jsem to odladil. Co jsem mohl zblbnout, ze by se ta 2.6 verze nainstalovala do stavajici slozky s nazvem 2.58 i po jeji idinstalaci, uz si nepamatuji?
Maxima
Saxel (2279)|22.1.2019 15:03
Instalovanou verzi zjistíš tímto skriptem:

[CODE]
Version(BlankClip(width=640, height=480, pixel_type="YV24"))

function Version(clip bg, bool "showbg")
{
showbg = Default(showbg, false)
bg = (showbg) ? bg : BlankClip(bg, color=$404040)
v=Version
m=v.ConvertToRGB32.ColorKeyMask($404040, 0).ShowAlpha
Overlay(bg, v, mask=m.Blur(0.2),
\ x=(bg.Width/2-v.Width/2),
\ y=(bg.Height/2-v.Height/2))
return Last
}
[/CODE]
maxima (134)|23.1.2019 12:28
Saxel Diky moc, mam verzi 2.6 asi jsem jen nechal stary nazev slozky . Kde mam chybu, když mi 64b Virtual Dub2 nebere zadne skripty (32b v pohode) ? Pretazeni samotného videa mysi do VD2 64b nacte normalne.
Saxel (2279)|23.1.2019 15:25
Pro 64bit VirtualDub bys musel použít 64bit Avisynth a k němu 64-bitové pluginy. S Avisynthem prostě používej VirtualDub 32bit.
maxima (134)|24.1.2019 09:16
Jasne, diky. Vim, ze je to nekenecne téma, ale muzes prozradit jake používáš kodeky (filtry), pripadne nastaveni? Je jich mraky ruzne Litle, Shark, Megapack atd. Dle tvých zkusenosti uz to mas asi vychytane. Ja jedu pokus omyl, když se nekde něco zadrhne.
Maxima
Saxel (2279)|24.1.2019 13:03
Žádné "balíky" kodeků neinstaluju, je to kontraproduktivní. Co si pamatuju, tak jsem do systému přidal jen SolveigMM splitter, LAV filtr/splitter, Quicktime, nějaký DV kodek a losless UtVideo kodek. Další de/en-kodéry mají v sobě aplikace, které používám.
maxima (134)|25.1.2019 09:53
Jasne, to jsem pocitil, když tam instalujes ruzne kodeky a pak jsou kolize. Jinak ten VD jsem rozchodil, nebyl to avisynth ani kodeky, nakonec to bylo v internich filtrech VD.
maxima (134)|22.5.2019 11:48
Ahoj, ještě se vratim k dotazu. Pouzivam na prevod 4K4096x2160 23,976p video do 1920x1080 50p nasleduji script. Ve VirtualDub 2.

Global pd = "c:\Program Files (x86)\AviSynth\plugins\"
Setmemorymax(1024)
#SetMTMode(3)
LoadPlugin(pd + "LSMASHSource.dll") # http://avisynth.nl/index.php/LSMASHSource
Import(pd + "interframe2.avsi") # https://www.spirton.com/category/interframe/
LoadPlugin(pd + "svpflow1.dll")
LoadPlugin(pd + "svpflow2.dll")
LSMASHVideoSource("C:\Video\Dron 4K 24p.MP4")
AssumeFPS(25)
InterFrame(NewNum=50,NewDen=1,cores=12)

Co me zlobi: ze scriptu je videt, ze když povolim SetMode, tak video nenacte, proto je zde vynechano nevim důvod proc. Také je zvlastni, ze script normalne při prvnim nactenim jede, ale když nactu třeba po druhé, nekdy po treti, tak VD nahlasi bud problém s buferem, nebo nekorektni rozmer a spadne.
Kde mam chybku ?

Maxima.
1hroch (865)|22.5.2019 19:26
Kdyz jsem laboroval s prevody VHS - viz
[SPOILER]https://www.tvfreak.cz/forum/showthread.php/40830-Detailni-nastaveni-exportu-VHS-DV-MP4-H264H265-nejvyssi-mozna-kvalita[/SPOILER]
Take jsem mel problem - presne uz nevim, ale tusim, ze bud se script nenacetl nebo pri vlastnim renderu VD vytuhnul.
Vystrel do tmy - za pokus stoji:
SetMTMode(5)
Pro poradek - VirtualDub2 32bit - build 41552, Avisynth 260MT.

Pozn.: - moc dobry script - ted jsem vyzkousel pro prevod 30p -> 50p
Saxel (2279)|23.5.2019 07:58
Souhlas s 1hroch. InterFrame používá spoustu filtrů, což způsobuje nestabilitu při nastavení "rychlejších" MT módů. Použitím SetMTMode(5) bude sice výpočet pomalejší, ale nemělo by to padat, viz popis http://avisynth.nl/index.php/MT
maxima (134)|23.5.2019 09:39
Diky moc, vyzkousim SetMode 5 a 6 viz odkaz. Jakou hodnotu v tom scriptu mam dat sem AssumeFPS(25) . Video puvodni zdrojove 23,976 nebo uplne vynechat jak mas ve scriptu na zacatku.Nedela to potom neplechu když je to z 23,9 rovnou na 50 a ne z 25 na 50, to pak nebudou násobky snimku.
Maxim
Saxel (2279)|23.5.2019 12:02
Obě varianty jsou možné. Když ponecháš příkaz AssumeFPS(25), původní video se zrychlí v poměru 25:23,976, což by u záběrů z drona neměl být velký problém a výhoda je, že při 50 fps bude každý druhý snímek originál. Pokud necháš fps na 23,976, bude se logicky dopočítávat každý snímek z těch okolních.

Já mám drona, který umí 4k/30fps a do projektů 50fps mnohdy jen změním snímkovou frekvenci bez dopočítávání snímků (AssumeFPS(50)). U některých záběrů to vůbec nevadí, někdy je dokonce lepší zrychlit záběry ještě víc.
maxima (134)|23.5.2019 12:14
zmena
maxima (134)|23.5.2019 12:23
Ahoj, jen doplneni, nize postup podobnym skriptem přes MeGui. To jsem třeba rozchodil bez problemu, ale přes VD nechodi ani zmenou SetMTMode na 5, nebo 6.
https://www.spirton.com/convert-videos-to-60fps/
Fakt je divne, ze nekdy se to rozjede a nekdy nic, to nechapu. Stejne video, stejny script a postup a rozdilna reakce v case. Nejaky napad na zmenu scriptu ? Samozrejme muzu delat v tom MeGui, ale ten nemá v sobe UTVideo kodek ani další jiné pro nekomrimovane video a také zadne filtry jako VD. Rad bych rozchodil, protože, když to nahodou chodi, tak vysledne video je fakt super.
Maxim
1hroch (865)|23.5.2019 13:49
Take mi pomohlo zmenit velikost pameti Setmemorymax (512). Po nekolika spustenich VD se pak system "zbrchal" a do ted funguje s hodnotou (1024).
ai (2993)|24.5.2019 03:44
je mi jasne, ze do toho nepujdete, ale jen jako info,

prave to nastavovani SetMTMode nastaveni threadu, vytizeni CPU je prave moderne reseno ve Vapoursynthu, nemam s tim celkem problemy, vsechno vzdy jede, pokud mi preteka RAM (mam velmi malo) da se to omezit jako v Avisynthu,

napriklad ten InterFrame, mam tu odnekud stahnuty 4k HEVC MXF z Canonu:
[CODE]import vapoursynth as vs
from vapoursynth import core
from havsfunc import InterFrame

input=r'F:/A003C003H1801239K_CANON.MXF'
clip = core.ffms2.Source(input)
clip = core.std.SetFrameProp(clip, prop="_Matrix", intval=1)
clip = core.std.SetFrameProp(clip, prop="_Transfer", intval=1)
clip = core.std.SetFrameProp(clip, prop="_Primaries", intval=1)
clip = core.resize.Bicubic(clip, matrix_in_s = '709', format= vs.YUV420P8)

#default InterFrame arguments:
#Preset='Medium', Tuning='Film', NewNum=None, NewDen=1, GPU=False, InputType='2D', OverrideAlgo=None, OverrideArea=None, FrameDouble=False

clip = InterFrame(clip, NewNum=60000, NewDen=1001) #nebo pro doubleframe rate: FrameDouble=True
clip.set_output()[/CODE]
maxima (134)|24.5.2019 09:36
Ahoj, tak ani 512 nepomohlo. Ai vim, ze jsi psal, ze je to ted modernejsi rychlejsi a resi vice věci, ale sam vis jak nam trvalo, nez jsem se trochu naucil ty skripty, zakladni logiku a nazvoslovi a pak rozchodili ty BAT soubory. Normalne se nevzdavam, mas nekde na netu nejaky postup jak s tim vapoursythem zacit? Ale pro amatery ne pokrocile programátory se znalosti videa do posledního pixelu. Něco jako stahni tady, klikni sem atd. Ve volnu bych to zkusil přechroupnout.
Saxel (2279)|24.5.2019 11:12
@maxima: Zkusil jsi jinou verzi VirtualDubu? Zkus verzi 1.10.4 .
maxima (134)|24.5.2019 14:46
Saxel, to me nenapadlo, vyzkousel jsem na 4 jadru na notasu a chodi jak hodinky. Zkusim ještě doma. Zatím diky moc.
maxima (134)|27.5.2019 09:39
Ahoj, tak nic. Mozna procesor nevim, na mem i7, 12 jadru a 64Gb pameti to nechodi.
Maxim
maxima (134)|30.5.2019 11:48
Tak jsem to bohužel pracneji obesel a resim takto.Kdyby se nekomu hodilo.
4k25p video transport do VD, tam uprava, filtry a vse potrebne_export UT kodek bezztratove .
MeGui okno vytvoreni scritu, vlozit script pro upravu 25p-50p., pripadne změna resize na 1920_1080.
Export x264, kontajner mp4. Takto to jede a výsledek je slusny. Nevyhoda, když se chce výsledek vlozit do projektu, bude se ještě jednou rendrovat.
Maxima