Seite 1 von 1

[GELÖST] Wiedergaberate + Cliplänge automatisch anpassen (Script)

Verfasst: So 17 Apr, 2016 15:01
von Clemens Schiesko
Liebe Lichtfänger und Bildgestalter,

oft kann ich wem anders bei Sony Vegas aushelfen, nun brauch ich aber selbst mal Eure Hilfe. Da ich vermehrt in 50p filme, um daraus Slow Motion Bilder zu generieren, stehe ich immer häufiger vor einem logistischen Problem.
Mein bisheriger Vorgang: 50p Material in die Timeline eines 25p-Projekt in Sony Vegas gezogen -> Wiedergaberate eines Clips auf 0,5 gesetzt und auf die restlichen Clips angewendet -> Aufgrund der nun entstandenen längeren Abspielzeit, jeden einzelnen Clip auf die doppelte Länge gezogen -> "Fertig".
Das Ganze mag bei 10 Clips keinen großen Zeitaufwand bedeuten. Bei 80 Clips kostet das aber teils unnötig Vorbereitungsphase, bis man anfangen kann das Material zu schneiden.
Nun meine Frage: Gibt es ein Script, dass mir die Arbeit erleichtert und das gesamte Material automatisch auf eine Wiedergaberate von 0,5 setzt und die Cliplänge entsprechend mit anpasst?
Oder Alternativ: Gibt es eine Einstellung, dass man einen Clip nicht über seine "Bildlänge" hinaus ziehen kann?

Für hilfreiche Tipps wäre ich Euch sehr, sehr dankbar.

Liebe Grüße und einen schicken Sonntag,
wünscht Clemens

Re: Wiedergaberate + Cliplänge automatisch anpassen (Script)

Verfasst: So 17 Apr, 2016 16:18
von -paleface-
Kann man nicht einfach beim Import sagen "als 25p interpretieren"?
Geht bei Premiere ganz leicht, auch mit vielen Clips.

Re: Wiedergaberate + Cliplänge automatisch anpassen (Script)

Verfasst: So 17 Apr, 2016 16:44
von Marco
Clemens, da sollte zusätzlich auch das Resampling deaktiviert werden, oder?

Ich teste mal was, vielleicht kann ich dann später ein Script verlinken.

Re: Wiedergaberate + Cliplänge automatisch anpassen (Script)

Verfasst: So 17 Apr, 2016 17:30
von Marco
Ich komme mit der eigens angepassten Scriptlösung nicht weiter. Aber ich kann dafür Vegasaur empfehlen. Dort lässt sich das mit der Funktion »Quick Properties« für alle ausgewähten Events in einem Rutsch durchführen.

Re: Wiedergaberate + Cliplänge automatisch anpassen (Script)

Verfasst: So 17 Apr, 2016 20:48
von Clemens Schiesko
-paleface- hat geschrieben:Kann man nicht einfach beim Import sagen "als 25p interpretieren"?
Geht bei Premiere ganz leicht, auch mit vielen Clips.
Nein, das funktioniert leider nicht. Ich habe auch schon gelesen, dass es bei Premiere anscheinend etwas einfacher vonstatten geht.

@Marco

Vielen Dank für Deinen Tipp mit Vegasaur. Damit erziele ich den gewünschten Effekt. Um dies gleich für die Nachwelt festzuhalten, habe ich die beiden Schritte mal grafisch dokumentiert. Für mein aktuelles Projekt kann ich also die Trialversion nutzen und mir ordentlich Zeit erparen, wenn auch diese nun durch das Suchen nach einer Lösung drauf ging. Jedoch fänd ich es etwas happig die für meine benötigten zwei Automatisierungen ca. 90 Euro auszugeben, die es bedarf, um nach 30 Tagen die Vollversion zu erhalten.
Ich könnte mir gut vorstellen, dass man die beiden Schritte auch irgendwie per Script hinbekommen könnte. Wenn es da also doch eine Lösung geben sollte, wäre das echt prima. Gut ist aber schon mal, dass ich aufgrund von Vegasaur etwas die Googlesuche eingrenzen kann. Also noch mal Danke für den Tipp. Das Deaktivieren des Resampling benötige ich übrigens nicht.

Re: Wiedergaberate + Cliplänge automatisch anpassen (Script)

Verfasst: So 17 Apr, 2016 20:56
von Marco
Das Problem beim Scripting ist der zweite Teil.
Es ist kein Problem, per Script die Playback-Rate zu halbieren und das Resampling zu deaktivieren (dafür habe ich ein Script). Aber dann muss ja jedem Event jeweils eine eigene neue Länge zugeordnet werden. Ich glaube, das ist per Script nicht möglich, wenn das Script auf mehrere Events gleichzeitig wirken soll und dabei verschiedene Längen verteilen soll.

Aber noch eine alternative Vorgehensweise:
Werf alle Clips in die Timeline und markiere alle. Gruppiere alle Clips per Taste »G«. Nun strecke einen der Clips mit gedrückter Taste »Strg« auf 50 % Wiedergabe. Dadurch werden alle Clips gleichzeit in der Länge verdoppelt.
Nun markiere wieder alle Clips und heb die Gruppierung per Taste »U« auf.

Geht auch, mit dem Nachteil, dass danach auch die Audiogruppierungen verloren sind.

Schon mal einen Blick auf die anderen Funktionen von Vegasaur geworfen? Ich mich ist es das mit Abstand wertvollste Werkzeug für Vegas Pro.

Nachtrag:
Habe noch eine andere Scriptlösung gefunden, mit der auch die Längen angepasst werden können. Muss ich später nochmal drübersehen.

Re: Wiedergaberate + Cliplänge automatisch anpassen (Script)

Verfasst: So 17 Apr, 2016 23:08
von Clemens Schiesko
Den Tipp mit der Gruppierung habe ich auch gelesen, jedoch habe ich mich durch Deine Erwähnung noch mal damit beschäftigt. Optimal ist es, wie Du aber schon erwähnst, leider nicht. Jedoch fällt die fehlende Tongruppierung in meinem Fall erst mal nicht so groß ins Gewicht, so dass es für mich schon eine gute Lösung darstellt. Oft wird der Originalton bei Zeitlupe eh nicht genutzt. Ist dies zum Schluss aber doch der Fall, gäbe es noch die Möglichkeit, den Ton via Script zurückzuholen. Von der Seite http://s92274348.onlinehome.us/vegas.html kann man ein Paket an Scripte runterladen. Unter anderem auch "RecreateAudioEvents" (siehe Anhang), welches ermöglicht, dass die enstprechende Audiostelle wieder unter das Video gelegt wird.

Ein paar weitere Funktionen von Vegasaur habe ich mir auch angeschaut und manche scheinen ganz nützlich zu sein. Vielleicht werde ich mir irgendwann mal eine Anschaffung gönnen. Für dieses "kleine" Problem kann es aber eigentlich nicht jedermann Lösung sein.
So bin ich beim weiteren Suchen auch auf eine kostengünstigere Lösung gestoßen. Mit der Erweiterung "Property Assistant" von Vasst bekommt man ebenfalls eine automatische Anpassung der Wiedergaberate und Cliplänge hin. Zwar sind die Spuren danach teilweise überlappt, aber das Verschieben (mit eingeschalteter Ripple-Funktion) bekommt man recht schnell hin. Hier der Link: http://vasstsoftware.com/product/propertyassistant/

Deine eventuelle Scriptlösung würde mich aber dennoch interessieren. =)

Ansonsten hoffe ich mal, dass Sony in den kommenden Versionen eine vereinfachte Funktion dafür einbaut. 50p ist ja nun auch nicht erst von heute.

Scriptcode:

Code: Alles auswählen

/*
 * (re)create audio parts on seperate audio track for all selected video events
 */

import System.Windows.Forms;
import Sony.Vegas;

try {
  // create new target audio track
  var targetTrack = new AudioTrack(-1,"Missing Audio");
  Vegas.Project.Tracks.Add(targetTrack);
  // step through all selected video events:
  for (var track in Vegas.Project.Tracks) {
    for (var evnt in track.Events) {
      if (!evnt.Selected || evnt.MediaType != MediaType.Video) continue;
      // create a fitting audio event and add to target audio track:
      var audioEvent = new AudioEvent(evnt.Start,evnt.Length);
      targetTrack.Events.Add(audioEvent);
      // step through all events of selected video event
      for (var tke in evnt.Takes)
      {
        // find first audio stream in this takes media
        var aviFile = new Media(tke.MediaPath);
        for (var stream in aviFile.Streams)
        {
          if (stream.MediaType != MediaType.Audio) continue;
          // create new take out of this audio stream
          var newTake = new Take(stream,tke.IsActive);
          // add it to target audio event (must be done before anything else!!)
          audioEvent.Takes.Add(newTake);
          // fit offset to video event
          newTake.Offset = tke.Offset;
          break; // we assume there's only one audio part in any avi file
        }
      }
      audioEvent.Selected = true;
    }
  }
} catch (e) {MessageBox.Show(e);}

Re: Wiedergaberate + Cliplänge automatisch anpassen (Script)

Verfasst: Mo 18 Apr, 2016 00:01
von Marco
Sorry, ich kriege es momentan nicht hin. Mir fehlt die Zeit.
Mit folgendem einfachen Code wird zwar die Geschwindigkeit halbiert und die Eventlänge verdoppelt, aber ich kann die dadurch resultierende Überlappung nicht korrigieren.

Code: Alles auswählen

import Sony.Vegas; 

var evnt : TrackEvent;
for (var currentTrack : Track in Vegas.Project.Tracks) 
	{ 
for (var currentEvent : TrackEvent in currentTrack.Events)
		{ 
currentEvent.PlaybackRate = 0.5; 
currentEvent.Length = currentEvent.Length + currentEvent.Length; 
		} 
	}

Re: Wiedergaberate + Cliplänge automatisch anpassen (Script)

Verfasst: Mo 18 Apr, 2016 01:02
von Marco
Habe doch noch eine Lösung gefunden. Einzige Voraussetzung sollte sein, dass nur eine Videospur vorhanden ist, bzw. eine Videospur inklusive der dazu gehörenden Audiospur. Wenn es mehr Spuren sind, wird ein Fehler inklusive Fehlermeldung erzeugt.

Code: Alles auswählen

import Sony.Vegas; 
import System.Windows.Forms;

var evnt : TrackEvent;
for (var currentTrack : Track in Vegas.Project.Tracks) 
	{ 
for (var currentEvent : TrackEvent in currentTrack.Events)
		{ 
currentEvent.PlaybackRate = 0.5; 
currentEvent.Length = currentEvent.Length + currentEvent.Length; 
		} 
	}
try
	{
for (var track in Vegas.Project.Tracks) 
		{
var tracktime = track.Events.Item(0).Start;
var Fadelength : Timecode = new Timecode("00:00:00.00");
for (var evnt in track.Events) 
			{
var currTake : Take = evnt.ActiveTake;
var currOffset : Timecode = evnt.ActiveTake.Offset;
evnt.Start = tracktime;
currTake.Offset = currOffset;
evnt.FadeIn.Length = new Timecode(Fadelength);
evnt.FadeOut.Length = new Timecode(Fadelength);
tracktime = tracktime + evnt.Length;
			}
		}
	}
catch (errorMsg)
{
MessageBox.Show(errorMsg, "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}

Re: Wiedergaberate + Cliplänge automatisch anpassen (Script)

Verfasst: Mo 18 Apr, 2016 13:17
von Clemens Schiesko
Erst einmal Chapeau und Danke Marco, falls das Script grundsätzlich funktionieren sollte. Bei mir kommt bei beiden Ausführungen aber leider immer eine Fehlermeldung. Ich habe unterschiedliche Versuche gemacht (nur eine Videospur, etc.). Oder muss ich noch was beachten?

Re: Wiedergaberate + Cliplänge automatisch anpassen (Script)

Verfasst: Mo 18 Apr, 2016 13:21
von Marco
Möglicherweise liegt es am dafür gewählten Dateiformat. Der Code basiert auf JScript und daher müsstest du es als *.js speichern.

Ich merke aber gerade, dass noch was optimiert werden muss. Ich hatte es gestern immer nur mit drei Clips getestet und damit hat das automatische Verschieben wie gewünscht funktioniert. Das ändert sich aber, wenn es mehr als drei Clips sind. Da muss wohl noch eine Abfrage oder eine kleine Verzögerung mit rein.

Als JS-Datei sollte es aber ohne Fehlermeldung funktionieren, sofern nicht zu viele Spuren vorhanden sind.

Re: Wiedergaberate + Cliplänge automatisch anpassen (Script)

Verfasst: Fr 29 Apr, 2016 12:46
von Clemens Schiesko
Eine etwas verspätete Antwort: Danke Marco! Mit der Änderung der Dateiendung hat es super geklappt. Coole Sache. =)