Der AviSynth Scriptgenerator
-
-
Jo hab ich mir dann schon gedacht und editiert bevor du es geschrieben hast

Wollte nur mal nachfragen, bevor ich den Rechner wieder 6 Stunden arbeiten lasse ...
-
Na ja, gleiche Minute bleibt gleiche Minute.

Schau es dir doch vorher mal an. [lexicon]VirtualDub[/lexicon] z.B. kann perfekt AVS Scripte öffnen. -
Ich habs einfach mit Notepad geöffnet ... sollte das gleiche ohne Umweg sein oder?
-
Mit [lexicon]VirtualDub[/lexicon] kannst du das Ergebnis anschauen, nicht das Script.
-
Hat [lexicon]MeGUI[/lexicon] nicht so eine Vorschau? Kann man bei [lexicon]VirtualDub[/lexicon] das Ganze mit Ton sich anzeigen lassen?
Weil mit der falschen FPS ist natürlich der Ton nicht synchron mit dem Bild.
-
Ja, deswegen sage ich dir das ja. Die Vorschau von [lexicon]MeGUI[/lexicon] kannst du praktisch vergessen.

-
Deine FPS Rate klingt nach variable Framerate.
Ist das eine verlustquelle? Dann bitte FFVideoSource (file indexer) nehmen, statt AVISource/DirectShowSource.
-
Moin,
ich kann das File nicht laden. Kann es mir jemand zu verfügung stellen oder einen anderen Downloadlink anbieten?
Edit: Öhhm.. hat sich erledigt hat kurz nach dem post doch geklappt.

Hoernchen
-
Du kannst.
Ich hab den Server neugestartet. Darum konntest du auch nicht laden

-
mal ne doofe frage...bei fps gebe ich 25 fps ein...so nehme ichs auch auf..jedoch sind die fps unterschiedlich bei mir..weil bei
meinem androidemulator sinds manchmal auf 10 fps und halt sehr wechselnd...gibts dann beim codieren keine probleme dann ? -
Wenn du mit 25fps aufnimmst hast du ein 25fps Video.
-
Gibt es die Möglichkeit, dass sich das programm den Ort der jeweiligen letzten Speicherung merkt? Also wenn ich das Script unter XXXX/Scripte hab und das Video unter XXXX/CAPTURE, dass er sich dann diesen Ordner merkt, sodass ich nicht jedesmal den Ordner wieder suchen muss, nachdem ich was geändert hab. Ich hoffe ich hab mich halbwegs verständlich ausgedrückt

-
Sollte in den Optionen möglich sein.
-
Soweit ich weiß nicht.
Das gespeicherte Video kommt in den selben Ordner wie der ausgewählte Script./EDIT
Ok Demon weiß es besser
-
Sollte in den Optionen möglich sein.
Jein. Ich kann nur den Ausgangsordner für beide zusammen auswählen, nicht einzeln. Aber immerhin schon um einiges besser als davor

Dann muss ich halt im Captureordner noch einen Unterordner für Scripte machen
-
Im Chancelog gibt es eine 3.78 Version, was hat es damit auf sich?
-
Das ist eine leider nicht funktionierende Version. Die habe ich zurückgezogen aufgrund von größeren Fehlern.
Ich habe daran nicht mehr weitergearbeitet, weil ich nochmal richtig von Grund auf neu Starten will.
Dort wird der Fokus mehr auf einfachen AviSynth-Bearbeitungen liegen, da der ursprüngliche Grundgedanke, die Fraps-Fetzen zusammenzufügen, nicht mehr nötig ist. -
Da ich Lucki im Skriptbereich etwas helfen werde um den Skriptgenerator etwas einfacher zu machen werde ich ihn hier ein paar Skripte geben die er dafür nehmen kann. Wenn jemand noch Fehler, Verbesserungen oder andere tolle Skriptbeispiele hat dafür wäre das vllt auch interessant ;D
Youtube FPS Schalter
Diese Zeile könnte man als Youtubeschalter verwenden für FPS Raten.
Beispiel: Hat ein Video über 30 FPS wird das Video durch diese Zeile auf genau 30 FPS limitiert, da Youtube eh nicht mehr macht. FPS Raten die 30 und darunter betragen bleiben wie sie sind. Bedeutet: Ein 25 FPS Video bleibt 25 FPS. Ein 29.97 FPS Video bleibt 29.97. 45 FPS werden in 30 FPS geändert.
Das macht diese Zeile da. Angewendet nach dem Videoinput am besten.Mit dieser Funktion muss nie wieder eine FPS Rate manuell eingetragen werden.
Bilderthumpnails erstellen in Folge und in Random
Alles anzeigenCode
Diese Funktion ist entstanden als jemand hier im Forum danach gefragt hatte ob man Thumpnails per Skript speichern kann. Also das Beispielsweise 30 Bilder die rein zufällig aus dem Gesamtvideo entstehen zusammengesetzt werden und gespeichert werden.
Das obere Skript hier erzeugt zufällig 30 Bilder aus dem letzten zurückgegebenen Video und speichert diese als PNG. Also eigentlich steht da SaveRandPic(Last, 30)
Gespeichert werden können eine Menge Formate. Das eigentliche Video wird bei der ganzen Prozedur nicht beeinflusst nach dieser Funktion. Sie dient nur zur Bildergenerierung.
Thumpnails in geordneten gleichmäßigen Abständen kann man mit dieser Funktion erreichen:
Alles anzeigenCodeAutomatische Auflösungserkennung und Änderung
Für Auflösungen könnte man eine Auswahlliste machen die für Youtubeauflösungen gilt. Denn... in AVISynth ist uns die Breite und die Höhe des geladenen Videos bekannt. Ebenso die Zielauflösung der Höhe. Die einzige Unbekannte ist die Breite die Errechnet werden müsste dabei.
Ein Beispiel dafür:
Das kann mit jeder anderen [lexicon]Auflösung[/lexicon] auch gemacht werden. Für Youtube wären 144p, 240p, 360p, 480p. 720p. 1080p und 1152p (Original) interessant. Im Beispielskript wird für 720p skaliert propotional. Vllt das man dann noch auswählen kann zwischen den Einzelenen Resizern.Soundspur der Videospur exakt angleichen
Dieser Skript sorgt dafür das die Audiospur exakt der Videospur angepasst wird. Zurückgeliefert wird nur die Audiospur von der Funktion. Ist also die Audiospur länger als die Videospur, wird sie gekürzt. Ist sie kleiner als die Videospur wird sie verlängert und die fehlende Länge wird mit Leeren Sound gefüllt.
Das wäre interessant wenn man mehrere Videos zusammenknüpfen will. ;DRahmen für Videos lassen sich auch berechnen und dynamisch gestalten. Dazu aber erst, wenn ich Lucki sich dazu bereit erklärt sowas auch zu nehmen. Bin eh erst mal gespannt darüber wie das Prog mit diesen neuen Funktionen aussieht.
Selbst das Splitten eines Videos könnte man mit Trim und mehreren Scripten genauer machen lassen, als wenn man eine [lexicon]MKV[/lexicon] über MKVmerge splitten würde. Könnte man auch realisieren.
Eine weitere Funktion die mir gestern in den Kopf kam war mehrere Videos zu laden die eine Unterschiedliche [lexicon]Auflösung[/lexicon] haben. Hier mal ein Beispiel:
Alles anzeigenCodeclip1 = (clip0.Framerate > 30) ? clip0.ChangeFPS(30) : clip0.AssumeFPS(Float(Round(clip0.Framerate*1000))/1000)clip1 = ((clip1.width * hoehe) / clip1.height > breite) ? Clip1.Spline64Resize(breite, (Clip1.height * breite) / clip1.width) : Clip1.Spline64Resize((clip1.width * hoehe) / clip1.height, hoehe)back = BlankClip(length=clip1.framecount, width=breite, height=hoehe, fps=Clip1.framerate).KillAudio()
Erklärung: Breite und Höhe geben die Zielauflösung an für das Gesamtvideo. Mit AVIload läd man nun eine AVI Datei (samt den ersten Track.)
Der Clou dabei ist: Youtube Videos haben meist ein 16:9 Bild. Bei alten Spielen kann es sein, das das Spiel 16:9 [lexicon]Auflösung[/lexicon] hat, aber die Cutscenes oder Menüs in 4:3 vorliegen. Auch die Tatsache das es unterschiedliche Auflösungen sind. Das Spiel hat vllt 1280x720 und das Menü oder die Cutscenes vllt nur 640x480. Viele Aufnahmeprogramme die sowas aufnehem erzeugen dabei jedesmal ein neues File. Wenn man die Files mit dieser Funktion da oben die Videos ladet, werden alle auf ein einheitliches Bild gebracht und entsprechend Skaliert.Beispiel:
Video1.avi -> 4:3 640x480 - Menüaufnahme
Video2.avi -> 4:3 800x600 - Cutscene
Video3.avi -> 16:9 2048x1152 - SpielaufnahmeIm Skript wird jetzt mittels AVIload die Videos geladen.
AVIload("Video1.avi") ++ AVIload("Video2.avi") ++ AVIload("Video3.avi")
Genau so. Wenn eine 16:9 [lexicon]Auflösung[/lexicon] angegeben wurde, dann werden alle Video mit korrektem Seitenverhältnis auf die gewünschte Zielauflösung skaliert und zentriert.
Ihr braucht nur noch eine Zielgröße angeben bei Global. Des weiteren kann man BlankClip austauschen mit einem Bild. Dann hat man ein Hintergrund sogar wenn sich die [lexicon]Auflösung[/lexicon] der Videos die man geladen hat ändert. -
Wenn ich den Script bei [lexicon]MeGUI[/lexicon] einführen will erscheint nur:
Mix Audio: Clips must have same number of channels! Use ConvertToMono (und dann so ein komisches 0) or MergeChannels (wieder das komische 0)!
(C:\Users\David\Documents\Test­Video\\TestAVIScript.avs, line 4)
Jetzt mitmachen!
Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!