Aktive Konfiguration: PROD · Helmut4 PROD · helmut4_backup_l-helmut1.adin.mdr.de_2026-10-19 07_52_22 197 Streams
Öffnen
PROD IO Node-Detail

Job Execute ExtendScript In Premiere Action V2

helmut4_backup_l-helmut1.adin.mdr.de_2026-10-19 07_52_22 · ESP - Export lokale Datei

Node-Informationen

Stream
ESP - Export lokale Datei
Klasse
nodes.actions.helmut.job.JobPremiereExecuteExtendScriptActionV2
UUID
e72fa7f4-b29a-4c82-afde-181a2896f5e5
Operator-ID
22
Event
EXPORT

Properties

{
  "extendScript": "function getSequenceByName(name) {\n    var allSeqs = app.project.sequences;\n    for (var i = 0; i < allSeqs.numSequences; i++) {\n        var seq = allSeqs[i];       \n        if (seq.name === name) {\n            return seq;\n        }\n    }\n    return null;\n}\n\nfunction ggt(a, b) {\n    while (b !== 0) {\n      var rest = a [<]%[>] b;\n      a = b;\n      b = rest;\n    }\n    return a;\n}\n\nfunction getAspectRatio(width, height){\n  var teiler = ggt(width, height);\n  var breiteNeu = width / teiler;\n  var hoeheNeu = height / teiler;\n  return breiteNeu + ':' + hoeheNeu;\n}\n\n\nfunction getFrameRate(id){\n\n\tswitch (id) {\n\t\tcase 100:\n\t\t\treturn 24;\n\t\tcase 101:\n\t\t\treturn 25;\n\t\tcase 102:\n\t\t\treturn 29.97;\n\t\tcase 104:\n\t\t\treturn 30;\n\t\tcase 105:\n\t\t\treturn 50;\n\t\tcase 106:\n\t\t\treturn 59.97;\n\t\tcase 107:\n\t\t\treturn 59.97;\n\t\tcase 108:\n\t\t\treturn 60;\n\t\tdefault:\n\t\t\treturn 25;\n\t}\n}\n\nfunction getSequenceMetadata(msequence){\n\t\tvar mdata = {};\n\t\tvar seqsettings = msequence.getSettings();\n\t\tmdata.audiochannels = seqsettings.audioChannelCount;\n\t\tmdata.width = seqsettings.videoFrameWidth;\n\t\tmdata.height = seqsettings.videoFrameHeight;\n\t\tmdata.aspect = getAspectRatio(mdata.width,mdata.height);\n\t\tmdata.framerate = getFrameRate(seqsettings.videoDisplayFormat);\n\treturn mdata;\t\t\n}\n\nvar seqName = \"{stream.variable.Sequenzname}\";\nvar seqfound = false;\nvar metadata = false;\nvar jmetadata = '';\n\nif (app.project.activeSequence){\n    \tvar aSeq = app.project.activeSequence;\n\tif (aSeq.name === seqName){\n\t\tmetadata = getSequenceMetadata(aSeq);\n\t\tseqfound = true;\n\t}\n}\n\nif (seqfound === false){\n\tvar sequence = getSequenceByName(seqName);\n\tif (sequence) {\n\t    metadata = getSequenceMetadata(sequence);\n\t\tseqfound = true;\n\t}\n}\n\nif (seqfound === false){\n jmetadata = '{\"seqname\":\"'+seqName+'\", \"seqfound\":'+seqfound+'}';\n} else {\n jmetadata = '{\"audiochannels\":'+ metadata.audiochannels+', \"width\":'+metadata.width+', \"height\":'+metadata.height+', \"framerate\":'+metadata.framerate+', \"aspect\":\"'+metadata.aspect+'\", \"seqname\":\"'+seqName+'\", \"seqfound\":'+seqfound+'}';\n}\n\njmetadata",
  "nodeUUID": "e72fa7f4-b29a-4c82-afde-181a2896f5e5",
  "failedNodeUUID": "035a4d7c-b15d-416f-8a31-59f86e6d5f96",
  "successNodeUUID": "5933342e-2f9b-4850-b914-6b63151fb503"
}

Skript

Original: 91 Zeilen · 2047 Zeichen Formatiert: 90 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
function getSequenceByName(name) {
    var allSeqs = app.project.sequences;
    for (var i = 0; i < allSeqs.numSequences; i++) {
        var seq = allSeqs[i];       
        if (seq.name === name) {
            return seq;
        }
    }
    return null;
}

function ggt(a, b) {
    while (b !== 0) {
      var rest = a [<]%[>] b;
      a = b;
      b = rest;
    }
    return a;
}

function getAspectRatio(width, height){
  var teiler = ggt(width, height);
  var breiteNeu = width / teiler;
  var hoeheNeu = height / teiler;
  return breiteNeu + ':' + hoeheNeu;
}


function getFrameRate(id){

	switch (id) {
		case 100:
			return 24;
		case 101:
			return 25;
		case 102:
			return 29.97;
		case 104:
			return 30;
		case 105:
			return 50;
		case 106:
			return 59.97;
		case 107:
			return 59.97;
		case 108:
			return 60;
		default:
			return 25;
	}
}

function getSequenceMetadata(msequence){
		var mdata = {};
		var seqsettings = msequence.getSettings();
		mdata.audiochannels = seqsettings.audioChannelCount;
		mdata.width = seqsettings.videoFrameWidth;
		mdata.height = seqsettings.videoFrameHeight;
		mdata.aspect = getAspectRatio(mdata.width,mdata.height);
		mdata.framerate = getFrameRate(seqsettings.videoDisplayFormat);
	return mdata;		
}

var seqName = "{stream.variable.Sequenzname}";
var seqfound = false;
var metadata = false;
var jmetadata = '';

if (app.project.activeSequence){
    	var aSeq = app.project.activeSequence;
	if (aSeq.name === seqName){
		metadata = getSequenceMetadata(aSeq);
		seqfound = true;
	}
}

if (seqfound === false){
	var sequence = getSequenceByName(seqName);
	if (sequence) {
	    metadata = getSequenceMetadata(sequence);
		seqfound = true;
	}
}

if (seqfound === false){
 jmetadata = '{"seqname":"'+seqName+'", "seqfound":'+seqfound+'}';
} else {
 jmetadata = '{"audiochannels":'+ metadata.audiochannels+', "width":'+metadata.width+', "height":'+metadata.height+', "framerate":'+metadata.framerate+', "aspect":"'+metadata.aspect+'", "seqname":"'+seqName+'", "seqfound":'+seqfound+'}';
}

jmetadata
Formatiert
function getSequenceByName(name) {
  var allSeqs = app.project.sequences;
  for (var i = 0; i < allSeqs.numSequences; i++) {
    var seq = allSeqs[i];
    if (seq.name === name) {
      return seq;
    }
  }
  return null;
}

function ggt(a, b) {
  while (b !== 0) {
    var rest = a[ < ] % [ > ] b;
    a = b;
    b = rest;
  }
  return a;
}

function getAspectRatio(width, height) {
  var teiler = ggt(width, height);
  var breiteNeu = width / teiler;
  var hoeheNeu = height / teiler;
  return breiteNeu + ':' + hoeheNeu;
}

function getFrameRate(id) {

  switch (id) {
    case 100:
      return 24;
    case 101:
      return 25;
    case 102:
      return 29.97;
    case 104:
      return 30;
    case 105:
      return 50;
    case 106:
      return 59.97;
    case 107:
      return 59.97;
    case 108:
      return 60;
    default:
      return 25;
  }
}

function getSequenceMetadata(msequence) {
  var mdata = {};
  var seqsettings = msequence.getSettings();
  mdata.audiochannels = seqsettings.audioChannelCount;
  mdata.width = seqsettings.videoFrameWidth;
  mdata.height = seqsettings.videoFrameHeight;
  mdata.aspect = getAspectRatio(mdata.width, mdata.height);
  mdata.framerate = getFrameRate(seqsettings.videoDisplayFormat);
  return mdata;
}

var seqName = "{stream.variable.Sequenzname}";
var seqfound = false;
var metadata = false;
var jmetadata = '';

if (app.project.activeSequence) {
  var aSeq = app.project.activeSequence;
  if (aSeq.name === seqName) {
    metadata = getSequenceMetadata(aSeq);
    seqfound = true;
  }
}

if (seqfound === false) {
  var sequence = getSequenceByName(seqName);
  if (sequence) {
    metadata = getSequenceMetadata(sequence);
    seqfound = true;
  }
}

if (seqfound === false) {
  jmetadata = '{"seqname":"' + seqName + '", "seqfound":' + seqfound + '}';
} else {
  jmetadata = '{"audiochannels":' + metadata.audiochannels + ', "width":' + metadata.width + ', "height":' + metadata.height + ', "framerate":' + metadata.framerate + ', "aspect":"' + metadata.aspect + '", "seqname":"' + seqName + '", "seqfound":' + seqfound + '}';
}

jmetadata

Rohdaten

{
  "class": "nodes.actions.helmut.job.JobPremiereExecuteExtendScriptActionV2",
  "deprecated": false,
  "properties": {
    "extendScript": "function getSequenceByName(name) {\n    var allSeqs = app.project.sequences;\n    for (var i = 0; i < allSeqs.numSequences; i++) {\n        var seq = allSeqs[i];       \n        if (seq.name === name) {\n            return seq;\n        }\n    }\n    return null;\n}\n\nfunction ggt(a, b) {\n    while (b !== 0) {\n      var rest = a [<]%[>] b;\n      a = b;\n      b = rest;\n    }\n    return a;\n}\n\nfunction getAspectRatio(width, height){\n  var teiler = ggt(width, height);\n  var breiteNeu = width / teiler;\n  var hoeheNeu = height / teiler;\n  return breiteNeu + ':' + hoeheNeu;\n}\n\n\nfunction getFrameRate(id){\n\n\tswitch (id) {\n\t\tcase 100:\n\t\t\treturn 24;\n\t\tcase 101:\n\t\t\treturn 25;\n\t\tcase 102:\n\t\t\treturn 29.97;\n\t\tcase 104:\n\t\t\treturn 30;\n\t\tcase 105:\n\t\t\treturn 50;\n\t\tcase 106:\n\t\t\treturn 59.97;\n\t\tcase 107:\n\t\t\treturn 59.97;\n\t\tcase 108:\n\t\t\treturn 60;\n\t\tdefault:\n\t\t\treturn 25;\n\t}\n}\n\nfunction getSequenceMetadata(msequence){\n\t\tvar mdata = {};\n\t\tvar seqsettings = msequence.getSettings();\n\t\tmdata.audiochannels = seqsettings.audioChannelCount;\n\t\tmdata.width = seqsettings.videoFrameWidth;\n\t\tmdata.height = seqsettings.videoFrameHeight;\n\t\tmdata.aspect = getAspectRatio(mdata.width,mdata.height);\n\t\tmdata.framerate = getFrameRate(seqsettings.videoDisplayFormat);\n\treturn mdata;\t\t\n}\n\nvar seqName = \"{stream.variable.Sequenzname}\";\nvar seqfound = false;\nvar metadata = false;\nvar jmetadata = '';\n\nif (app.project.activeSequence){\n    \tvar aSeq = app.project.activeSequence;\n\tif (aSeq.name === seqName){\n\t\tmetadata = getSequenceMetadata(aSeq);\n\t\tseqfound = true;\n\t}\n}\n\nif (seqfound === false){\n\tvar sequence = getSequenceByName(seqName);\n\tif (sequence) {\n\t    metadata = getSequenceMetadata(sequence);\n\t\tseqfound = true;\n\t}\n}\n\nif (seqfound === false){\n jmetadata = '{\"seqname\":\"'+seqName+'\", \"seqfound\":'+seqfound+'}';\n} else {\n jmetadata = '{\"audiochannels\":'+ metadata.audiochannels+', \"width\":'+metadata.width+', \"height\":'+metadata.height+', \"framerate\":'+metadata.framerate+', \"aspect\":\"'+metadata.aspect+'\", \"seqname\":\"'+seqName+'\", \"seqfound\":'+seqfound+'}';\n}\n\njmetadata",
    "nodeUUID": "e72fa7f4-b29a-4c82-afde-181a2896f5e5",
    "failedNodeUUID": "035a4d7c-b15d-416f-8a31-59f86e6d5f96",
    "successNodeUUID": "5933342e-2f9b-4850-b914-6b63151fb503"
  }
}

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