Würde Hilfe bei XML brauchen

Du hast eine Idee für ein Projekt?
Antworten
rainer
User
Beiträge: 2
Registriert: Dienstag 22. Januar 2008, 20:40

Hallo liebe Leute !

Möcht alle hier im Forum herzlich begrüßen. Ich bin ja leider kein Programmierer, das letzte mal C++ programmieren war in der Schule und das is schon ne ganze weile her, deswegen wollt ich euch um Hilfe bitten.
Mein Videoschnittprogramm (Final Cut Pro) kann ein Projekt als XML File exportieren, damit man dann in einem anderen Programm zB damit arbeiten kann. Nun ist es so, daß ich ein Programm habe, daß aber das Format der XML Datei nicht lesen kann, nur eine sehr einfache Form davon. Jetzt müßte es sozusagen konvertiert werden. Hab jetzt schon Tage damit verbracht meine extrem sperrlichen Kenntnisse das zu versuchen, aber das ist alles leider zu tricky.
Jetzt wollt ich fragen ob vielleicht jemand Lust hätte und vor allem die Zeit ein Script zu schreiben. Ich könnt euch ein Taschengeld dafür anbieten, leider hab ich derzeit nicht mehr.

Wäre super wenn sich jemand finden würde.

herzlichen Dank

Rainer
lunar

Ein paar mehr Details bezüglich des Datenformats (am besten mit Beispiel) wären hilfreich.

Btw, bezahlen brauchst du hier niemanden ;) Wenn du höflich fragst, findet sich bestimmt jemand, der dir gratis hilft.
rainer
User
Beiträge: 2
Registriert: Dienstag 22. Januar 2008, 20:40

das wär der absolute hit.... ich könnt euch ja eine super feine sacher torte aus wien schicken :)

Also die Geschichte schaut folgender maßen aus:

Ich erklär nochmal ganz kurz wie der Prozeßablauf geschieht, dann kann man sich schon ein wenig mehr darunter vorstellen, danach hab ich ein XML Codebeispiel angehängt.
Die Verwendete Kamera generiert zwei Arten von Videofiles. Gewöhnliche Quicktime Proxies und ein digitales Negativ im RAW Format. Die QT Proxies werden für den Offline Schnitt genommen, da sie nativ abspielbar und editierbar sind und sind bildgenau zum d-negativ. Wenn jetzt der Rohschnitt fertig ist, muß ich die d-negative (von den QT proxies) mit einem externen programm convertieren (um die volle qualität zu bekommen) und diese neuen files im schnittprogramm onlinen also neu verlinken.
bis jetzt war es so, daß ich mir eine schnittliste ausgedruckt habe in der steht welche files verwendet sind (können auch mehrmals verwendet sein) sowie die länge des clips und an welcher stelle der in und outpoint liegt. dann hab ich das mit der hand jeden einzelnen schnitt in die convertierungssoftware eingegeben und bin dabei fast wahnsinnig geworden.
dem nicht genug spuckt dann die convertierungssoftware die neuen files mit der hohen auflösung aus und mußte jedes einzelne file wieder mit der hand neu verlinken.... spätestens dann ist man ein nervenbündel....
nun könnte man mit zwei scripte diese zwei arbeitsschritte sozusagen automatisieren. das wäre super wenn das ginge.
anbei ein schnipsel der xml files vom schnittprogramm und dann von der conversionsoftware

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xmeml>
<xmeml version="4">
<sequence id="Redcode Sequenz">
<uuid>D7BCF03E-32D4-4221-BA64-EB6ECAB5D20B</uuid>
<updatebehavior>add</updatebehavior>
<name>Redcode Sequenz</name>
<duration>5691</duration>
<rate>
<ntsc>FALSE</ntsc>
<timebase>25</timebase>
</rate>
<timecode>
<rate>
<ntsc>FALSE</ntsc>
<timebase>25</timebase>
</rate>
<string>01:00:00:00</string>
<frame>90000</frame>
<source>source</source>
<displayformat>NDF</displayformat>
</timecode>
<in>-1</in>
<out>-1</out>
<media>
<video>
<format>
<samplecharacteristics>
<width>2048</width>
<height>1024</height>
<anamorphic>FALSE</anamorphic>
<pixelaspectratio>Square</pixelaspectratio>
<fielddominance>none</fielddominance>
<rate>
<ntsc>FALSE</ntsc>
<timebase>25</timebase>
</rate>
<colordepth>24</colordepth>
<codec>
<name>RED Digital Cinema REDCODE</name>
<appspecificdata>
<appname>Final Cut Pro</appname>
<appmanufacturer>Apple Inc.</appmanufacturer>
<appversion>6.0</appversion>
<data>
<qtcodec>
<codecname>RED Digital Cinema REDCODE</codecname>
<codectypename>REDCODE</codectypename>
<codectypecode>REDC</codectypecode>
<codecvendorcode>RED3</codecvendorcode>
<spatialquality>1024</spatialquality>
<temporalquality>512</temporalquality>
<keyframerate>0</keyframerate>
<datarate>0</datarate>
</qtcodec>
</data>
</appspecificdata>
</codec>
</samplecharacteristics>
<appspecificdata>
<appname>Final Cut Pro</appname>
<appmanufacturer>Apple Inc.</appmanufacturer>
<appversion>6.0</appversion>
<data>
<fcpimageprocessing>
<useyuv>TRUE</useyuv>
<usesuperwhite>FALSE</usesuperwhite>
<rendermode>Float</rendermode>
</fcpimageprocessing>
</data>
</appspecificdata>
</format>
<track>
<clipitem id="A001_C002_071104_Hx-2kherbstrock">
<name>A001_C002_071104_Hx-2kherbstrock</name>
<duration>263</duration>
<rate>
<ntsc>FALSE</ntsc>
<timebase>25</timebase>
</rate>
<in>89</in>
<out>135</out>
<start>0</start>
<end>46</end>
<pixelaspectratio>Square</pixelaspectratio>
<enabled>TRUE</enabled>
<anamorphic>FALSE</anamorphic>
<alphatype>none</alphatype>
<logginginfo>
<scene>
</scene>
<shottake>
</shottake>
<lognote>
</lognote>
<good>FALSE</good>
</logginginfo>
<labels>
<label2>
</label2>
</labels>
<comments>
<mastercomment1>
</mastercomment1>
<mastercomment2>
</mastercomment2>
<mastercomment3>
</mastercomment3>
<mastercomment4>
</mastercomment4>
</comments>
<file id="A001_C002_071104_Hx">
<name>A001_C002_071104_Hx</name>
<pathurl>file://localhost/Volumes/Extern1TB/redcamshooting/ROHMATERIAL/Roll%2021/A001_C002_071104.RDC/A001_C002_071104_Hx.mov</pathurl>
<rate>
<timebase>25</timebase>
</rate>
<duration>263</duration>
<timecode>
<rate>
<timebase>25</timebase>
</rate>
<string>01:00:25:22</string>
<frame>90647</frame>
<displayformat>NDF</displayformat>
<source>source</source>
</timecode>


und dann wie es in der conversionsoftware aussehen sollte:




<?xml version="1.0"?>
<Library name="herbstrock_redcine">
<resolution> 2048, 1024 </resolution>
<aspect> -1.000 </aspect>
<fps> 25.000 </fps>
<ShotList>
<Clip name="A001_C001_071104_">
<user>"499C6C30-F4E7-4561-87E5-8CCAB7EA491C"</user>
<source>"/Volumes/Extern1TB/redcamshooting/ROHMATERIAL/Roll 1/A001_C001_071104.RDC/A001_C001_071104_001.R3D"</source>
<reel_id>"A001_C001_071104_"</reel_id>
<length> 52 </length>
<handles> 513, 564 </handles>
<timecode>12:44:07:00</timecode>
<scale> 50.000,50.000 </scale>
<note>"Camera ID = A Reel = 001 Clip = 001
Shutter 179 degrees (1/50)
Whitebalance: kelvin = 5000 tint = 0
Start run record / edge timecode = 01:00:00:00
Start time of day / ext. timecode = 12:44:07:00"</note>
</Clip>
<Clip name="A001_C002_071104_">
<user>"3CA0BC2A-3669-47B3-8FB4-8AF796795D8D"</user>
<source>"/Volumes/Extern1TB/redcamshooting/ROHMATERIAL/Roll 1/A001_C002_071104.RDC/A001_C002_071104_001.R3D"</source>
<reel_id>"A001_C002_071104_"</reel_id>
<length> 1761 </length>
<handles> 0, 1760 </handles>
<fps> 24.000 </fps>
<timecode>12:45:15:00</timecode>
<scale> 50.000,50.000 </scale>
<note>"Camera ID = A Reel = 001 Clip = 002
Shutter 179 degrees (1/50)
Whitebalance: kelvin = 5000 tint = 0
Start run record / edge timecode = 01:00:50:19
Start time of day / ext. timecode = 12:45:15:00"</note>
</Clip>
<Clip name="A001_C003_071104_">
<user>"9F67EA59-6DE6-4432-B626-33E6CC2FB98B"</user>
<source>"/Volumes/Extern1TB/redcamshooting/ROHMATERIAL/Roll 1/A001_C003_071104.RDC/A001_C003_071104_001.R3D"</source>
<reel_id>"A001_C003_071104_"</reel_id>
<length> 752 </length>
<handles> 0, 751 </handles>
<fps> 24.000 </fps>
<timecode>12:50:33:00</timecode>
<scale> 50.000,50.000 </scale>
<note>"Camera ID = A Reel = 001 Clip = 003
Warhog
User
Beiträge: 11
Registriert: Samstag 26. Januar 2008, 21:53
Kontaktdaten:

Ich galube ich weiß genau wonach du suchst, XSLT (Extensible Style Language Transformations)

* http://www.w3.org/TR/xslt.html
* http://www.w3schools.com/xsl/default.asp

In XSL schreibst du selbst eine XML-Datei die Regeln aufstellt für die Transformation von einem XML-Dokument in ein anderes. Ich verwende dafür die Software "xsltproc" (siehe Google), aber alle gängigen Programmiersprachen, auch Python, haben dafür Module (die ihrerseits meistens allerdings auch auf erwähnten Programm basieren).

Hier ein Beispiel.. Wenn du z.B: die Datei

Code: Alles auswählen

<document xmlns="urn::dein:name:space">
<heading>Überschrift</heading>
<paragraph>Paragraph 1</paragraph>
<paragraph>Paragraph 2</paragraph>
</document>
..hast. Dann kannst du mit diesem XSLT

Code: Alles auswählen

<xsl:transform version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:d="urn::dein:name:space"
  xmlns="http://www.w3.org/1999/xhtml">

<xsl:template match="/d:document">
<html>
<head>
<title><xsl:value-of select="d:heading" /></title>
</head>
<body>
<h1><xsl:value-of select="d:heading" /></h1>
<xsl:for-each select="d:paragraph">
<p><xsl:value-of select="." /></p>
</xsl:for-each>
</body>
</html>
</xsl:template>

</xsl:transform>
...eine HTML-Datei erstellen (bzw XHTML).

Gruß, Warhog
Antworten