die Audio Datei codiert er aber beim muxen kommt wieder error, leider habe ich hier keinen Log weil vorzeitig beendet.
Die Logs werden gespeichert. Guck halt mal im MeGUI Ordner^^
Um schreiben oder kommentieren zu können, benötigst du ein Benutzerkonto.
Du hast schon ein Benutzerkonto? Melde dich hier hier an.
Jetzt anmeldenHier kannst du ein neues Benutzerkonto erstellen.
Neues Benutzerkonto erstellendie Audio Datei codiert er aber beim muxen kommt wieder error, leider habe ich hier keinen Log weil vorzeitig beendet.
Die Logs werden gespeichert. Guck halt mal im MeGUI Ordner^^
Also das Problem war ein ganz simples
Er konnte es nicht muxen weil die Festplatte voll war
da guckt man ja auch nicht sofort nach xD
Hat jemand das gleiche Problem mit MeGUI?
Folgendes. Ich bekomme seit gestern jedesmal eine Virusmeldung "win32/varpes" wenn ich MeGUI nutze/starte.
Hatte ich vorher noch nie. Es ist mir unmöglich mit MeGUI zu arbeiten. Das kommt sonst bei keiner anderen Anwendung vor.
Moin Leute,
hab ein merkwürdiges Problem mit AvisynthMT und 4:4:4 Encoding. Wenn ich meine 4:4:4 Aufnahme in YV16 konvertiere und mit 4:2:2 encode, klappt alles (auch mit Multithreading). Sobald ich dann aber meine 4:4:4 Aufnahme in YV24 konvertiere (planar für die AVS Pipeline) klappt das Encoding nicht mehr, solange ich SetMTMode(3) drinhabe. (Process exits with error: 0xC0000005 STATUS_ACCESS_VIOLATION (-1073741819) als Fehler). Wo ist da bitte der Sinn?
Kann ich das irgendwie fixen?
Sobald ich dann aber meine 4:4:4 Aufnahme in YV24 konvertiere (planar für die AVS Pipeline) klappt das Encoding nicht mehr, solange ich SetMTMode(3) drinhabe. (Process exits with error: 0xC0000005 STATUS_ACCESS_VIOLATION (-1073741819) als Fehler).
Dann wird vermutlich vom Encoder mehr Speicher benötigt, als dein System ab kann.
Kann aber auch andere Ursachen haben. Die entsprechende Log von MeGUI mit diesem Fehler beim entsprechendem Skript wäre Hilfreich.
Habe 16GB Ram, sollte also nicht das Bottleneck sein.
MeGUI Log: http://pastebin.com/dAc2gw7w
MediaInfo von den Rohdaten:
Skript:
AVIload("H:\Aufnahmen von DXTory\League of Legends_2016_03_24_21_18_56_002.avi", 0, 0, 0, -0, -0, "Auto", "Auto", 0, 0).FadeIn0(40).FadeOut0(40)
watermark = ImageReader("F:\Eigene Dateien\Eigene Videos\LoLProVod\1800p.png", 0, 0, Last.framerate, pixel_type="RGB32")
Function AVIload (String file, int loading, int cl, int co, int cr, int cu, string pixtype, string afps, int fpsn, int fpsd) {
pixtype2 = (pixtype == "YUY2") ? "YUY2" : (pixtype == "RGB24") ? "RGB24" : (pixtype == "Y8") ? "Y8" : (pixtype == "YV12") ? "YUV420P8" : (pixtype == "YV24") ? "YUV444P8" : pixtype
clip0 = (loading == 3) ? (pixtype == "Auto") ? LWLibavVideoSource(file) : LWLibavVideoSource(file, format = pixtype2) : (loading == 2) ? Import(file).KillAudio() : (loading == 1) ? (pixtype == "Auto") ? FFVideoSource(file, threads=1) : FFVideoSource(file, threads=1, colorspace=pixtype) : (pixtype == "Auto") ? AVISource(file, false).KillAudio() : AVISource(file, false, pixel_type=pixtype).KillAudio()
Return (clip1.width == breite && clip1.height == hoehe) ? clip1.ConvertToYV24(matrix = "Rec709", ChromaResample = "Spline36") : Clip1.Resize()
rate = (afps == "Auto") ? (rate1 == rate2) ? 1 : 1001 : (afps == "Igno.") ? clip0.frameratedenominator : fpsd
clip0 = (afps == "Auto") ? (rate == 1001) ? clip0.AssumeFPS(Round(clip0.Framerate) * 1000, rate) : clip0.AssumeFPS(round(clip0.framerate), rate) : (afps == "Igno.") ? clip0.AssumeFPS(clip0.frameratenumerator, rate) : clip0.AssumeFPS(fpsn, rate)
clip1 = (AR == 1) ? ((float(Clip1.height * breite) / clip1.width) / 2 == round((float(Clip1.height * breite) / clip1.width) / 2)) ? ((float(Clip1.width * hoehe) / clip1.height) / 2 == round((float(Clip1.width * hoehe) / clip1.height) / 2)) ? clip1 : clip1.ConvertToRGB24() : clip1.ConvertToRGB24() : clip1
clip1 = (AR == 1) ? (((clip1.width * hoehe) / clip1.height > breite) ? Clip1.Spline36Resize(breite, ceil(float(Clip1.height * breite) / clip1.width)) : Clip1.Spline36Resize(ceil(float(clip1.width * hoehe) / clip1.height), hoehe)) : clip1.Spline36Resize(breite, hoehe).ConvertToYV24(matrix = "Rec709", ChromaResample = "Spline36")
back = (AR == 1) ? (0 == 1) ? ImageReader("", 0, clip1.framecount - 1, clip1.framerate).ChangeFPS(clip1.frameratenumerator, clip1.frameratedenominator).Spline36Resize(breite, hoehe).ConvertToYV24(matrix = "Rec709", ChromaResample = "Spline36") : BlankClip(clip1, width = breite, height = hoehe, pixel_type = "YV24").KillAudio() : clip1
Bei der Auflösung übersteigste vermutlich mit YV24 die 32Bit Grenze von AVISynth. Nutze mal entweder für Sourcen ein MT Mode von 4 oder Mode 3 + ein MemoryMay von 512MB
Grund ist, das er sich womöglich für das Wasserzeichen die Grenze 32Bit Speichers überschreitet.
Gut würde es laufen, wenn du MT komplett abschalten würdest.
Wäre zwars dann langsamer, aber gewiss würdest du die Fehlermeldung nicht bekommen.
F:\Eigene Dateien\Eigene Videos\LoLProVod\1800p.png
Ich hoffe mal das das kein wirkliches 1800p Bild ist ![]()
Ja, ohne MT funktionierts.
Alles anzeigenBei der Auflösung übersteigste vermutlich mit YV24 die 32Bit Grenze von AVISynth. Nutze mal entweder für Sourcen ein MT Mode von 4 oder Mode 3 + ein MemoryMay von 512MB
Grund ist, das er sich womöglich für das Wasserzeichen die Grenze 32Bit Speichers überschreitet.
Gut würde es laufen, wenn du MT komplett abschalten würdest.
Wäre zwars dann langsamer, aber gewiss würdest du die Fehlermeldung nicht bekommen.
Ich hoffe mal das das kein wirkliches 1800p Bild ist ^
Erzeugt denn ein Overlay so viel RAM-Benutzung? Sind halt verschiedene GUI-Elemente, die mit einem anderen Design überlagert werden, dementsprechend ist es ein 1800p Bild.
Erzeugt denn ein Overlay so viel RAM-Benutzung? Sind halt verschiedene GUI-Elemente, die mit einem anderen Design überlagert werden, dementsprechend ist es ein 1800p Bild.
Der Filter Overlay ist ohnehin etwas Anfällig was Multithreading angeht.
Und mit deinem 1800p Bild ist dem Speicher auch nicht grad geholfen.
Denn das Bild muss für ein Wasserzeichen das über das gesamte Video angezeigt wird dubliziert werden. Sprich es werden soviele Kopien erzeugt wie das Gesamt Video an Frames hat.
Und dann muss auch noch der Alphakanal entfernt werden und es muss auf das Video selbst überlagert werden.
Sprich, weil das Bild schon so groß ist, wird die Speichergrenze von 32Bit ganz schnell mal erreicht. Dazu noch dein Video und schon geht das ganz schnell mal. Da muss man dann entweder auf ein Thread limitieren lassen oder einen etwas langsameren MT Mode nutzen oder in Kombination mit MemoryMax.
Je mehr Filter, desto inkompatibler wird MT. Es kann crashen oder manche MT Mode Kombi führen auch zu fehlerhafter Arbeitsweise eines Filters. Kann auch Overlay nicht alles.
So nach langer Zeit hab auch ich wieder eine Frage zu MeGui.
Ich benutze den FLAC Encoder für meine Audiodateien in MeGui. Obwohl Demon in seinem MeGui Video sagt, dass eine .flac Datei circa 60% der Größe der .wav Datei hat - trifft das bei mir nicht zu. Bei einer Ausgangsgröße von circa 500MB Audiodatei habe ich nach dem Flac encoden nur noch 140-160MB Audiodateigröße (also grade mal 30% der Ursprungsgröße).
Diesbezüglich habe ich schon mal eine Frage hier in diesem Thread gestellt, Antwort war:" Anscheinend sind deine Audiodateien sehr gut komprimierbar." Mit dieser Antwort war ich auch zufrieden und habe mich auch nicht weiter mit dem Thema befasst.
Heute bin ich, als ich ein bisschen bei den Einstellungen in MeGui rumgespielt habe, draufgekommen, dass man ja mehrere Decoder in FLAC zur Auswahl hat (Nic Audio, FF Audio Source, Directshow ...). Ich habe bisher immer FF Audio Source benutzt und war eigentlich auch immer zufrieden damit. Ich würde aber trotzdem gerne wissen, was denn die anderen Decoder, also Nic Audio, Directshow ..., können. Gibt's da irgendeine Qualitätsänderung zwischen Nic Audio und FF Audio Source oder was genau ist da der Unterschied?
Hab Google zu dem Thema schon durchforstet, aber leider keinen zufriedenstellenden Beitrag gefunden - deswegen hoffe ich, dass man mir hier vielleicht weiterhelfen kann ![]()
LG
Ich würde aber trotzdem gerne wissen, was denn die anderen Decoder, also Nic Audio, Directshow ..., können. Gibt's da irgendeine Qualitätsänderung zwischen Nic Audio und FF Audio Source oder was genau ist da der Unterschied?
Hab Google zu dem Thema schon durchforstet, aber leider keinen zufriedenstellenden Beitrag gefunden - deswegen hoffe ich, dass man mir hier vielleicht weiterhelfen kann
Erst einmal gibt es da nur sehr leichte Unterschiede, aber keinen den die Qualität angeht.
Die "Preferred Decoder" die du bei MeGUI zur Auswahl hast sind NicAudio, FFAudioSource, DirectShow, BassAudio und LWLibAVAudioSource. Das sind allesamt AVISynth Decoder für Audioquellen und können auch je nach dem was man grad für Audiodateien hat, diese unterschiedlich einlesen. Und genau das Unterscheidet die Decoder.
MeGUI wird dabei automatisch alle Decoder nutzen bis eines das angegebene Format einlesen kann.
Reihenfolge beim Versuch mit dem Decoder die Quell Datei zu öffnen: NicAudio, BassAudio, FFmpeg, LWLibAVSource, DirectShow
Das bedeutet das es egal ist welchen Decoder man nimmt, MeGUI versucht der Reihenfolge der Decoder nach die entsprechende Audiodatei zu öffnen.
MeGUI ist zudem noch in der Lage über AVISynth ein Mischverhältnis zwecks Downmix und Upmix bereit zu stellen. Sogar Speed Up/Down ist möglich. Das heißt das man die Anzahl an Kanälen bestimmen kann für einen Audio Track, die SampleRate und auch die allgemeine Pitch Modifikationen.
Diese haben einen Einfluss auf die Qualität des Audios. Damit alles korrekt beibehalten wird, sollte auf "Keep Original" bei allen geschaltet werden.
Unterschiede von den Decodern:
NicAudio
Mit NicAudio lassen sich folgende Formate einlesen: DTS, AC3, MP1, MP2, MP3, LPCM und Raw WAV.
Für LPCM und Raw WAV sind mehr Angaben nötig. Sind aber in der Lage z.B. WAVE32 oder WAVE64 einzulesen. Was sehr beträchtlich auch ist, da WAVE64 kaum Limits aufweist.
FFAudioSource
FFAudioSource basiert auf FFmpeg und wird von FFmpeg Source 2 (FFMS2) bereitgestellt für AVISynth. Damit werden die Quelldatein indexiert und können somit eingelesen werden.
Da FFmpeg sehr viel Unterstützt, gilt das natürlich auch für FFAudioSource. Welchen genauen Support an Formaten es kann, kann ich aber leider nur von FFmpeg selber ableiten.
Unterstützte Formate sind dann
DirectShow
DirectShowSource oder kurz DSS genannt läd die Audiodateien anhand auf dem PC installierten Filtern und Codecs und ist an sich eine nicht schöne Lösung, da sich jeder PC anders verhält was das angeht. Somit kann der eine PC zwars die ein oder andere Audiodatei einlesen ohne Fehler und der andere PC kann dies nicht oder macht Fehler dabei.
Sollte halt vermieden werden.
BassAudio
BassAudio ist eine AVISynth Technische Ableitung vom Tool BeHappy
BassAudioSource kann folgende Formate einlesen: AAC/MA4/MP4, APE (Monkey Audio), CDA (CD Audio), FLAC, MPC (MusePack), OPUS, SPX (MusePack), TTA (True Audio), WMA (Windows Media Audio), WV (WavPack Audio)
Sprich es lassen sich WAV Formate damit einlesen, MP2, MP3, OGG, usw....
Sehr schnell, da nicht indexiert werden muss, sondern direkt eingelesen wird.
LWLibAVAudioSource
LWLibAVAudioSource wird von L-Smash bereitgestellt und basiert eine Art Kombination zwischen FFmpeg und LibAV. Sprich eine Art Hybrid.
Nicht anders als bei FFMS2 auch, werden bei L-Smash die Quell-Dateien indexiert um sie einlesen zu können.
Die Liste der Unterstützten Formate können von FFMS2/FFAudioSource entnommen werden.
!!!ACHTUNG!!! Es kann sein, wenn man mal einen falschen Decoder genommen hat das z.B. WAVE64 nicht eingelesen werden können, sondern nur WAVE32.
Das bedeutet das die Audiospur irgendwo dann Stumm ist. Denn mit WAVE32 ist bei 16Bit 44100Hz 2Kanal bei ca. 6h Schluss. Sprich ab der 4GB Marke.
Erst einmal gibt es da nur sehr leichte Unterschiede, aber keinen den die Qualität angeht.
Dankeschön für deine ausführliche Antwort ![]()
Solange es keine weltbewegenden Unterschiede zwischen den einzelnen Decodern gibt, bleibe ich bei meinen derzeitigen Einstellungen.
Solange es keine weltbewegenden Unterschiede zwischen den einzelnen Decodern gibt, bleibe ich bei meinen derzeitigen Einstellungen.
Qualitätsunterschiede gibt es dort nicht. Die Dateien werden mit den Decodern dekodiert und werden über AVISynth halt als Roh Daten an den Encoder geschickt.
Daher wird alles was dekodiert wird dem entsprechen wie die Quelldatei auch war. Es gibt keine Unterschiede zwischen Quelldatei und dem Decodiertem Material. Nur der Encoder und die Konvertierungen innerhalb von AVISynth sind entscheidend. Und wenn du alles auf "Keep Original" belässt, wird AVISynth da exakt eine 1:1 Qualität haben wie das Quellmaterial.
Eine Mediainfo des Quellvideos wäre erst einmal interessant zu wissen.
Und das AVISynth Skript bitte mal posten das verwendet wird.
General
Complete name
Format : MPEG-4
Format profile : Base Media
Codec ID : isom (isom/iso2/avc1/mp41)
File size : 3.46 GiB
Duration : 2h 35mn
Overall bit rate mode : Variable
Overall bit rate : 3 179 Kbps
Video
ID : 2
Format : AVC
Format/Info : Advanced Video Codec
Format profile : [email protected]
Format settings, CABAC : Yes
Format settings, ReFrames : 4 frames
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 2h 35mn
Bit rate : 2 970 Kbps
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate mode : Variable
Frame rate : 47.083 fps
Minimum frame rate : 0.789 fps
Maximum frame rate : 60.000 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.030
Stream size : 3.23 GiB (93%)
Writing library : x264 core 142 r2479 dd79a61
Encoding settings : cabac=1 / ref=3 / deblock=1:0:0 / analyse=0x3:0x113 / me=hex / subme=7 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=1 / me_range=16 / chroma_me=1 / trellis=1 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=-2 / threads=12 / lookahead_threads=2 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=3 / b_pyramid=2 / b_adapt=1 / b_bias=0 / direct=1 / weightb=1 / open_gop=0 / weightp=2 / keyint=250 / keyint_min=25 / scenecut=40 / intra_refresh=0 / rc_lookahead=40 / rc=crf / mbtree=1 / crf=23.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / ip_ratio=1.40 / aq=1:1.00
Audio
ID : 1
Format : AAC
Format/Info : Advanced Audio Codec
Format profile : LC
Codec ID : 40
Duration : 2h 35mn
Duration_FirstFrame : 33ms
Bit rate mode : Variable
Bit rate : 196 Kbps
Channel(s) : 2 channels
Channel positions : Front: L R
Sampling rate : 48.0 KHz
Frame rate : 46.875 fps (1024 spf)
Compression mode : Lossy
Stream size : 219 MiB (6%)
Default : Yes
Alternate group : 1
Ich denke Xsplit ist was lokale aufnahmen angeht meilenweit weg von OBS um lossless aufzunehmen oder noch dazu mit 60 FPS ![]()
Frame rate mode : Variable
Frame rate : 47.083 fps
Minimum frame rate : 0.789 fps
Maximum frame rate : 60.000 fps
Das ist eine Variable Frame Rate. Wenn du mit 60 FPS aufgenommen haben solltest, musst du das mal in CFR umwandeln.
Im SSM gibt es unter Sonstiges einen VFR -> CFR Wandler. Das Video einfach einfügen, auf FFM2 einstellen und Zähler und Nenner auf 60 FPS einstellen. Also 60 / 1
Und dann kannst du das Skript entweder über Virtual Dub (Preview) mit einem Lossless Video abspeichern ODER du machst das ganze über den Frameserver.
Das Video wird dann wenn alles gut gegangen ist Synchron sein.
Am besten um Zeit und Ärger zu sparen gleich in CFR aufnehmen, statt VFR. VFR ist zwars Wirtschaftlicher und hat auch bessere Optik im Sinne des Framewechsels, jedoch arbeiten alle Schnittprogramme mit CFR Material und wenn die ein VFR Video bekommen, dann laden diese das als CFR ein und dann wird halt alles Asynchron.
Alles anzeigenDas ist eine Variable Frame Rate. Wenn du mit 60 FPS aufgenommen haben solltest, musst du das mal in CFR umwandeln.
Im SSM gibt es unter Sonstiges einen VFR -> CFR Wandler. Das Video einfach einfügen, auf FFM2 einstellen und Zähler und Nenner auf 60 FPS einstellen. Also 60 / 1
Und dann kannst du das Skript entweder über Virtual Dub (Preview) mit einem Lossless Video abspeichern ODER du machst das ganze über den Frameserver.
Das Video wird dann wenn alles gut gegangen ist Synchron sein.
Am besten um Zeit und Ärger zu sparen gleich in CFR aufnehmen, statt VFR. VFR ist zwars Wirtschaftlicher und hat auch bessere Optik im Sinne des Framewechsels, jedoch arbeiten alle Schnittprogramme mit CFR Material und wenn die ein VFR Video bekommen, dann laden diese das als CFR ein und dann wird halt alles Asynchron.
Hab jetzt hinbekommen das es 60 fps sind aber ka ob das so auch lossless ist ![]()
Hab jetzt mal diese einstellungen bei Custom eingetragen:
&ex:preset:ultrafast&ex:crf:16:qp=0
So sollte es funzen das es auch lossless ist oder ?
Ich hab mal ne Frage zu nem eher sehr komischen Problem.
Seit heute ist es so, dass wenn ich das Video in MeGUI encodieren möchte, am Anfang die Processing Rate steigt (meist so auf 9-11 FPS), aber dann ganz langsam Stück für Stück runter sinkt auf 2-3
Arbeite mit dem Super Fast Preset und 0 BR-Frames und hab das wie gesagt, erst seit heute.
Irgendwelche Lösungen oder Probleme bzg. dieses bekannt?
Super Fast
Zu hoch, das sollte man nicht mal zum Streamen nutzen, höchsten bei der Aufnahme mit einem qp=0
Das kann am Material liegen, das es am Anfang sehr einfach ist und dann mit der Zeit deutlich komplexer wird, hat man gerne bei Lol Video die am Anfang noch den Ladebildschirm zeigen.
Wenn es was anderes ist brauchen wir mehr Infos.
Mediainfo der Aufnahme und des fertigen Video + das verwendetet Skript.
Wie ist die CPU Auslastung und die Temperatur der CPU?
Werde das erst morgen nochmal alles machen können. Ja, Super Fast verwende ich meist nur, wenn die Zeit zu eng wird. (Schlechte/Langsame CPU)
Super Fast bei MeGUI meinte ich ;o Das stört doch die Aufnahme nicht, wenn ich die Constant Quality von 19 bei Megui ausgewählt hab oder?
Mich wunderts halt, weils aufeinmal war.
CPU Auslastung war diesmal nicht grad hoch, 60%, wobei Premiere auch noch offen war (Wegen dem FrameServer). Rest kommt morgen, wobei das Script kann ich gleich reinschicken.
### SagaraS Scriptmaker - Version 6.0 ###
### Lade Plugins und setze die globalen Variablen ###
LoadPlugin("C:\Program Files (x86)\SagaraS Scriptmaker\Plugins\mvtools2.dll")
LoadPlugin("C:\Program Files (x86)\SagaraS Scriptmaker\Plugins\ColorMatrix.dll")
Global breite = 2048
Global hoehe = 1152
Global AR = 0
### Lade Videoquellen ###
SetMTMode(3)
AVIload("C:\Users\Rudi\Documents\javaw 2016-04-19 10-44-00-000.avi", 0, 0, 0, -0, -0, "Auto", "Auto", 0, 0)
### Filter Verarbeitungszone ###
ColorMatrix("Rec.601->Rec.709", 0, 2, 3, False, False, False, False, "", False, 1, 0, 3)
SetMTMode(2)
sum = MSuper(pel = 2)
MFlowBlur(sum, MAnalyse(sum, isb = true), MAnalyse(sum, isb = false), blur = 10.0)
(IsYUY2() == true) ? ConvertToYV16(matrix = "Rec709", ChromaResample = "Spline36") : Last
### Funktion für Video-Laderoutine ###
Function AVIload (String file, int loading, int cl, int co, int cr, int cu, string pixtype, string afps, int fpsn, int fpsd) {
(loading == 1) ? FFIndex(file) : nop()
clip0 = (loading == 3) ? LWLibavVideoSource(file) : (loading == 2) ? Import(file).KillAudio() : (loading == 1) ? FFVideoSource(file, threads=1) : (pixtype == "Auto") ? AVISource(file, false).KillAudio() : AVISource(file, false, pixel_type=pixtype).KillAudio()
clip1 = clip0.AutoFPS(afps, fpsn, fpsd).Cropping(cl, co, cr, cu)
Return (clip1.width == breite && clip1.height == hoehe) ? clip1.ConvertToYV12(matrix = "Rec709", ChromaResample = "Spline36") : Clip1.Resize()
}
Function AutoFPS (Clip clip0, string afps, int fpsn, int fpsd) {
rate1 = (afps == "Auto") ? (Round(Float(clip0.framerate * 1000)) / 1000) / 2 : nop()
rate2 = (afps == "Auto") ? Round(clip0.framerate) / 2 : nop()
rate = (afps == "Auto") ? (rate1 == rate2) ? 1 : 1001 : (afps == "Igno.") ? clip0.frameratedenominator : fpsd
ratefaktor = (afps == "Auto") ? (rate == 1001) ? 1000 : 1 : nop()
clip0 = (afps == "Auto") ? (rate == 1001) ? clip0.AssumeFPS(Round(clip0.Framerate) * 1000, rate) : clip0.AssumeFPS(round(clip0.framerate), rate) : (afps == "Igno.") ? clip0.AssumeFPS(clip0.frameratenumerator, rate) : clip0.AssumeFPS(fpsn, rate)
Return clip0.ChangeFPS(60, 1)
}
Function Cropping (Clip clip0, int cl, int co, int cr, int cu) {
clip0 = (clip0.IsRGB32() == True) ? clip0.ConvertToRGB24() : clip0
Return (cl != 0
co != 0
cr != 0
cu != 0) ? clip0.Crop(cl, co, cr, cu) : clip0
}
Function Resize (Clip clip1) {
clip1 = (AR == 1) ? ((float(Clip1.height * breite) / clip1.width) / 2 == round((float(Clip1.height * breite) / clip1.width) / 2)) ? ((float(Clip1.width * hoehe) / clip1.height) / 2 == round((float(Clip1.width * hoehe) / clip1.height) / 2)) ? clip1 : clip1.ConvertToRGB24() : clip1.ConvertToRGB24() : clip1
clip1 = (AR == 1) ? (((clip1.width * hoehe) / clip1.height > breite) ? Clip1.Spline36Resize(breite, ceil(float(Clip1.height * breite) / clip1.width)) : Clip1.Spline36Resize(ceil(float(clip1.width * hoehe) / clip1.height), hoehe)) : clip1.Spline36Resize(breite, hoehe).ConvertToYV12(matrix = "Rec709", ChromaResample = "Spline36")
back = (AR == 1) ? (0 == 1) ? ImageReader("", 0, clip1.framecount - 1, clip1.framerate).ChangeFPS(Clip1.frameratenumerator, Clip1.frameratedenominator).Spline36Resize(breite, hoehe).ConvertToYV12(matrix = "Rec709", ChromaResample = "Spline36") : BlankClip(clip1, width = breite, height = hoehe, pixel_type = "YV12").KillAudio() : clip1
Return (AR == 1) ? Overlay(back, clip1, (back.width - clip1.width) / 2, (back.height - clip1.height) / 2) : clip1
}
Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!