Aktive Konfiguration: PROD · Helmut4 PROD · helmut4_backup_l-helmut1.adin.mdr.de_2026-10-18 10_57_41 202 Streams
Öffnen
PROD IO Node-Detail

Job Execute ExtendScript In Premiere Action V2

helmut4_backup_l-helmut1.adin.mdr.de_2026-10-18 10_57_41 · ESP - Export AAF TNB

Node-Informationen

Stream
ESP - Export AAF TNB
Klasse
nodes.actions.helmut.job.JobPremiereExecuteExtendScriptActionV2
UUID
9178ebd3-f5be-417a-8d32-bc2c89f9ff31
Operator-ID
103
Event
EXPORT

Properties

{
  "extendScript": "// Funktion zum Duplizieren einer Sequenz\nfunction duplicateSequence(sequence) {\n    var newSequenceName = sequence.name + \"_copy\";\n    var newSequence = sequence.clone();\n    newSequence.name = newSequenceName;\n    return newSequence;\n}\n\n// Funktion zum Trennen von Videoclips von Audioclips und Entfernen der Videoclips\nfunction separateAndRemoveVideoClips(sequence) {\n    for (var trackIndex = 0; trackIndex < sequence.videoTracks.numTracks; trackIndex++) {\n        var track = sequence.videoTracks[trackIndex];\n        \n        for (var clipIndex = track.clips.numItems - 1; clipIndex >= 0; clipIndex--) {\n            var clip = track.clips[clipIndex];\n\n            if (clip.type === 1) {\n                var linkedClips = clip.getLinkedItems();\n                if (linkedClips === null){\n                    clip.remove(0, 0);\n                } else {\n                // Überprüfen, ob es verknüpfte Audioclips gibt und trennen\n                if (linkedClips.length > 0) {\n                    for (var linkedIndex = 0; linkedIndex < linkedClips.length; linkedIndex++) {\n                        var linkedClip = linkedClips[linkedIndex];\n                        if (linkedClip.type === 2) {\n                            linkedClip.unlink();\n                        }\n                    }\n                }\n                clip.remove(0, 0);\n            }\n            }\n        }\n    }\n    app.project.save();\n}\n\n// Hauptfunktion\nfunction main(aaf_filename) {\n    var project = app.project;\n    var activeSequence = project.activeSequence;\n\n    if (!activeSequence) {\n        alert(\"Keine aktive Sequenz gefunden.\");\n        return;\n    }\n\n    // Dupliziere die aktive Sequenz\n    var nSequence = duplicateSequence(activeSequence);\n    if (!nSequence) {\n        alert(\"Fehler beim Duplizieren der Sequenz.\");\n        return;\n    }\n\n    var newSequence = project.activeSequence;\n\n    // Trenne und entferne Videoclips in der neuen duplizierten Sequenz\n    separateAndRemoveVideoClips(newSequence);\n\n    // Export\n\t// var fullOutPath = absPath + finalseqname + '.aaf';\n    var fullOutPath = aaf_filename;\n    var aaf_result = app.project.exportAAF(app.project.activeSequence, fullOutPath , 0, 1, 48000, 24, 1, 0, 1, 100,'',1,1,0);\n    app.project.deleteSequence(newSequence);\n    return aaf_result;\n}\n\n// Skript ausführen\nvar aaf_filename = '{stream.variable.aaf_filename_final}';\nvar result = main(aaf_filename);\nresult;",
  "nodeUUID": "9178ebd3-f5be-417a-8d32-bc2c89f9ff31",
  "failedNodeUUID": "76be5ad4-fcef-4cb4-ac8b-aa924c079632",
  "successNodeUUID": "bd804c1c-5f42-4a4f-ab04-af747faef030"
}

Skript

Original: 72 Zeilen · 2423 Zeichen Formatiert: 72 Zeilen
Formatierung ergänzt Einrückungen und Zeilenumbrüche. Ursprüngliche Variablennamen und Kommentare lassen sich aus minifiziertem Code nicht wiederherstellen. ExtendScript-Direktiven und E4X werden bei der Formatierung berücksichtigt.
Original
// Funktion zum Duplizieren einer Sequenz
function duplicateSequence(sequence) {
    var newSequenceName = sequence.name + "_copy";
    var newSequence = sequence.clone();
    newSequence.name = newSequenceName;
    return newSequence;
}

// Funktion zum Trennen von Videoclips von Audioclips und Entfernen der Videoclips
function separateAndRemoveVideoClips(sequence) {
    for (var trackIndex = 0; trackIndex < sequence.videoTracks.numTracks; trackIndex++) {
        var track = sequence.videoTracks[trackIndex];
        
        for (var clipIndex = track.clips.numItems - 1; clipIndex >= 0; clipIndex--) {
            var clip = track.clips[clipIndex];

            if (clip.type === 1) {
                var linkedClips = clip.getLinkedItems();
                if (linkedClips === null){
                    clip.remove(0, 0);
                } else {
                // Überprüfen, ob es verknüpfte Audioclips gibt und trennen
                if (linkedClips.length > 0) {
                    for (var linkedIndex = 0; linkedIndex < linkedClips.length; linkedIndex++) {
                        var linkedClip = linkedClips[linkedIndex];
                        if (linkedClip.type === 2) {
                            linkedClip.unlink();
                        }
                    }
                }
                clip.remove(0, 0);
            }
            }
        }
    }
    app.project.save();
}

// Hauptfunktion
function main(aaf_filename) {
    var project = app.project;
    var activeSequence = project.activeSequence;

    if (!activeSequence) {
        alert("Keine aktive Sequenz gefunden.");
        return;
    }

    // Dupliziere die aktive Sequenz
    var nSequence = duplicateSequence(activeSequence);
    if (!nSequence) {
        alert("Fehler beim Duplizieren der Sequenz.");
        return;
    }

    var newSequence = project.activeSequence;

    // Trenne und entferne Videoclips in der neuen duplizierten Sequenz
    separateAndRemoveVideoClips(newSequence);

    // Export
	// var fullOutPath = absPath + finalseqname + '.aaf';
    var fullOutPath = aaf_filename;
    var aaf_result = app.project.exportAAF(app.project.activeSequence, fullOutPath , 0, 1, 48000, 24, 1, 0, 1, 100,'',1,1,0);
    app.project.deleteSequence(newSequence);
    return aaf_result;
}

// Skript ausführen
var aaf_filename = '{stream.variable.aaf_filename_final}';
var result = main(aaf_filename);
result;
Formatiert
// Funktion zum Duplizieren einer Sequenz
function duplicateSequence(sequence) {
  var newSequenceName = sequence.name + "_copy";
  var newSequence = sequence.clone();
  newSequence.name = newSequenceName;
  return newSequence;
}

// Funktion zum Trennen von Videoclips von Audioclips und Entfernen der Videoclips
function separateAndRemoveVideoClips(sequence) {
  for (var trackIndex = 0; trackIndex < sequence.videoTracks.numTracks; trackIndex++) {
    var track = sequence.videoTracks[trackIndex];

    for (var clipIndex = track.clips.numItems - 1; clipIndex >= 0; clipIndex--) {
      var clip = track.clips[clipIndex];

      if (clip.type === 1) {
        var linkedClips = clip.getLinkedItems();
        if (linkedClips === null) {
          clip.remove(0, 0);
        } else {
          // Überprüfen, ob es verknüpfte Audioclips gibt und trennen
          if (linkedClips.length > 0) {
            for (var linkedIndex = 0; linkedIndex < linkedClips.length; linkedIndex++) {
              var linkedClip = linkedClips[linkedIndex];
              if (linkedClip.type === 2) {
                linkedClip.unlink();
              }
            }
          }
          clip.remove(0, 0);
        }
      }
    }
  }
  app.project.save();
}

// Hauptfunktion
function main(aaf_filename) {
  var project = app.project;
  var activeSequence = project.activeSequence;

  if (!activeSequence) {
    alert("Keine aktive Sequenz gefunden.");
    return;
  }

  // Dupliziere die aktive Sequenz
  var nSequence = duplicateSequence(activeSequence);
  if (!nSequence) {
    alert("Fehler beim Duplizieren der Sequenz.");
    return;
  }

  var newSequence = project.activeSequence;

  // Trenne und entferne Videoclips in der neuen duplizierten Sequenz
  separateAndRemoveVideoClips(newSequence);

  // Export
  // var fullOutPath = absPath + finalseqname + '.aaf';
  var fullOutPath = aaf_filename;
  var aaf_result = app.project.exportAAF(app.project.activeSequence, fullOutPath, 0, 1, 48000, 24, 1, 0, 1, 100, '', 1, 1, 0);
  app.project.deleteSequence(newSequence);
  return aaf_result;
}

// Skript ausführen
var aaf_filename = '{stream.variable.aaf_filename_final}';
var result = main(aaf_filename);
result;

Rohdaten

{
  "class": "nodes.actions.helmut.job.JobPremiereExecuteExtendScriptActionV2",
  "deprecated": false,
  "properties": {
    "extendScript": "// Funktion zum Duplizieren einer Sequenz\nfunction duplicateSequence(sequence) {\n    var newSequenceName = sequence.name + \"_copy\";\n    var newSequence = sequence.clone();\n    newSequence.name = newSequenceName;\n    return newSequence;\n}\n\n// Funktion zum Trennen von Videoclips von Audioclips und Entfernen der Videoclips\nfunction separateAndRemoveVideoClips(sequence) {\n    for (var trackIndex = 0; trackIndex < sequence.videoTracks.numTracks; trackIndex++) {\n        var track = sequence.videoTracks[trackIndex];\n        \n        for (var clipIndex = track.clips.numItems - 1; clipIndex >= 0; clipIndex--) {\n            var clip = track.clips[clipIndex];\n\n            if (clip.type === 1) {\n                var linkedClips = clip.getLinkedItems();\n                if (linkedClips === null){\n                    clip.remove(0, 0);\n                } else {\n                // Überprüfen, ob es verknüpfte Audioclips gibt und trennen\n                if (linkedClips.length > 0) {\n                    for (var linkedIndex = 0; linkedIndex < linkedClips.length; linkedIndex++) {\n                        var linkedClip = linkedClips[linkedIndex];\n                        if (linkedClip.type === 2) {\n                            linkedClip.unlink();\n                        }\n                    }\n                }\n                clip.remove(0, 0);\n            }\n            }\n        }\n    }\n    app.project.save();\n}\n\n// Hauptfunktion\nfunction main(aaf_filename) {\n    var project = app.project;\n    var activeSequence = project.activeSequence;\n\n    if (!activeSequence) {\n        alert(\"Keine aktive Sequenz gefunden.\");\n        return;\n    }\n\n    // Dupliziere die aktive Sequenz\n    var nSequence = duplicateSequence(activeSequence);\n    if (!nSequence) {\n        alert(\"Fehler beim Duplizieren der Sequenz.\");\n        return;\n    }\n\n    var newSequence = project.activeSequence;\n\n    // Trenne und entferne Videoclips in der neuen duplizierten Sequenz\n    separateAndRemoveVideoClips(newSequence);\n\n    // Export\n\t// var fullOutPath = absPath + finalseqname + '.aaf';\n    var fullOutPath = aaf_filename;\n    var aaf_result = app.project.exportAAF(app.project.activeSequence, fullOutPath , 0, 1, 48000, 24, 1, 0, 1, 100,'',1,1,0);\n    app.project.deleteSequence(newSequence);\n    return aaf_result;\n}\n\n// Skript ausführen\nvar aaf_filename = '{stream.variable.aaf_filename_final}';\nvar result = main(aaf_filename);\nresult;",
    "nodeUUID": "9178ebd3-f5be-417a-8d32-bc2c89f9ff31",
    "failedNodeUUID": "76be5ad4-fcef-4cb4-ac8b-aa924c079632",
    "successNodeUUID": "bd804c1c-5f42-4a4f-ab04-af747faef030"
  }
}

Vorgang läuft

0 s · Bitte warten. Der Vorgang wird verarbeitet.

    0 s · Es wird keine neue Snapshot-Analyse gestartet.

    Willkommen im Helmut Analyzer

    Neu hier? Unter Info & Hilfe findest du einen Quickstart für den Export aus Helmut4, den Import deiner Konfiguration und die Auswertung. Dort sind auch unsere Prüfregeln und Best Practices erklärt.

    Info & Hilfe öffnen