1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Quciktime: Zu Movie-Link exportieren

Dieses Thema im Forum "AppleScript" wurde erstellt von j33n5, 04.11.08.

  1. j33n5

    j33n5 Horneburger Pfannkuchenapfel

    Dabei seit:
    18.12.06
    Beiträge:
    1.405
    Hallo! Ich möchte wegen meines Problems keinen neuen Thread eröffnen.. AgentSmith, aAngeregt durch deinen wiedermal sehr nützlichen Thread, möchte ich mir gerade ein Droplet erstellen, welches Quicktime Player benutzt, um movielinks der gedroppten Filme zu erstellen. Im Netz habe ich eine Anweisung für ein Script dafür gefunden. Jedoch habe ich damit Schwierigkeiten - vielleicht kann mir hier jemand helfen! Hier das Script:

    Code:
    -- Try to save some default folders, so you don't jump back and forth for videos and settings file.
    property chooseFileFolder : "~/Movies"
    property settingsFolder : "~/save_as_movielink"
    
    on run
    	checkAlias(chooseFileFolder)
    	choose file with prompt "Select the file(s) to export:" default location result with multiple selections allowed without invisibles
    	set chosenFiles to result
    	
    	set chooseFileFolder to parentFolder(first item of chosenFiles)
    	open chosenFiles
    end run
    
    on open theseItems
    	choose folder with prompt "Choose destination for exported file(s):"
    	set exportFolder to result as Unicode text
    	
    	checkAlias(settingsFolder)
    	choose file with prompt "Choose the QuickTime export settings file:" default location result
    	set exportSettingsFile to result
    	set settingsFolder to parentFolder(exportSettingsFile)
    	
    	try
    		tell application "QuickTime Player"
    			activate
    			close every window
    		end tell
    	end try
    	
    	repeat with thisItem in theseItems
    		-- Use the original name for the exported file
    		set {name:thisName, folder:isFolder} to (info for thisItem without size)
    		
    		-- Skip any folders that were dropped
    		if not (isFolder) then
    			-- Remove extension from original name, if any
    			set ASTID to AppleScript's text item delimiters
    			set AppleScript's text item delimiters to {"."}
    			try
    				set thisName to text 1 thru text item -2 of thisName
    			end try
    			set AppleScript's text item delimiters to ASTID
    			
    			tell application "QuickTime Player"
    				try
    					open thisItem
    					
    					if (can export front document as QuickTime movie) then
    						-- If the AppleScript takes too long (more than a minute) on a certain command, it will throw a timeout error.
    						-- Use a `timeout` block when something might take longer to finish.
    						with timeout of 86400 seconds -- 24 hours
    							export front document to (exportFolder & thisName) as QuickTime movie using settings exportSettingsFile
    						end timeout
    					else
    						display dialog "QuickTime Player can't export “" & thisName & "” as a QuickTime movie." buttons {"Skip File"} default button 1 with icon caution
    					end if
    				on error errMsg number errNum
    					if errNum is -2019 then set errMsg to "The export was canceled in QuickTime Player."
    					
    					display dialog "Error " & errNum & return & return & errMsg buttons {"Cancel Script", "Skip File"} default button 2
    					if (button returned of result) is "Cancel Script" then error number -128
    				end try
    				
    				try
    					close front document saving no
    				end try
    			end tell
    		end if
    	end repeat
    	
    	quit application "QuickTime Player"
    	tell me to display dialog "Export script finished!" buttons {"View Export Folder", "OK"} default button 2 with icon note
    	
    	if (button returned of result) is "View Export Folder" then tell application "Finder" to open exportFolder
    end open
    
    on checkAlias(someItem)
    	try
    		return someItem as alias
    	on error
    		return path to home folder
    	end try
    end checkAlias
    
    on parentFolder(someItem)
    	set ASTID to AppleScript's text item delimiters
    	set AppleScript's text item delimiters to {":"}
    	try
    		set someFolder to (text 1 thru text item -2 of (someItem as Unicode text)) & ":"
    	on error
    		set someFolder to ""
    	end try
    	set AppleScript's text item delimiters to ASTID
    	return someFolder
    end parentFolder
    Ich möchte 1. das Script ausschließlich als Droplet benutzen, daher bräuchte ich den ersten Teil ja schonmal nicht, richtig? Dann soll das Script 2. immer als Output den gleichen Ordner nehmen, aus dem die gedroppten items kommen und 3. einen festdefinierten Settings-file benutzen.
    Das Script soll mich also nicht dauernd fragen, wo was liegt. Wie mache ich das?
    Außerdem habe ich Probleme mit den Quicktime-Settings. Ich habe folgendes gemacht, um die Settings zu sichern:

    Code:
    tell app "QuickTime Player" 
    tell first movie 
    save export settings for QuickTime movie to file "~/Export to Xyz Format" 
    end tell 
    end tell 
    
    Jedoch exportiert Quicktime den Film nicht in das gewünschte Format. Was mache ich falsch? Sollte das hier zu sehr OT sein, bitte sagen, dann mach' ich einen eigenen Faden dafür.[/QUOTE]
     
  2. j33n5

    j33n5 Horneburger Pfannkuchenapfel

    Dabei seit:
    18.12.06
    Beiträge:
    1.405
    lalala und da drück ich ma..
     
  3. CloneOfMyself

    CloneOfMyself Weigelts Zinszahler (Rotfranch)

    Dabei seit:
    24.02.07
    Beiträge:
    253
    Also
    zu 1.) da hast Du recht. Eigentlich brauchst du den "on run"-handler nicht. Aber Du könntest ihn anders nutzen:
    zu 2.) dafür musst Du den exportFolder fest definieren. Oder aber (und da komme ich wieder auf Punkt 1 zurück) Du nutzt den on run handler, um den Export-Ordner festzulegen und speicherst diesen dann dauerhaft in einer property. Dann kannst Du den Ziel-Ordner jederzeit durch einen Scriptstart per Doppelklick ändern:
    property exportFolder : ""
    on run
    ***choose folder with prompt "Choose destination for exported file(s):"
    ***set exportFolder to result as Unicode text
    end run
    zu 3.) da musst Du halt die Variable exportSettingsFile durch die Settingsdatei ersetzen (as alias).

    Und die Settings-Datei selbst kannst Du ja "zu Fuß" erstellen. Dafür braucht's doch kein AppleScript, wenn Du eh immer das selbe Setting verwenden willst.
     
  4. CloneOfMyself

    CloneOfMyself Weigelts Zinszahler (Rotfranch)

    Dabei seit:
    24.02.07
    Beiträge:
    253
    Sorry. Korrektur zu 2.), denn Du wolltest ja dort hin sichern, wo die Files herkommen:
    exportFolder to parentFolder(thisItem)
    Dann musst Du allerdings dran denken, den Namen der Exportdatei zu ändern, falls Du die Originale nicht überschreiben willst.
     
  5. CloneOfMyself

    CloneOfMyself Weigelts Zinszahler (Rotfranch)

    Dabei seit:
    24.02.07
    Beiträge:
    253
    Sorry. Korrektur zu 2.), denn Du wolltest ja dort hin sichern, wo die Files herkommen:
    set exportFolder to parentFolder(thisItem)
    Dann musst Du allerdings dran denken, den Namen der Exportdatei zu ändern, falls Du die Originale nicht überschreiben willst.
     
  6. j33n5

    j33n5 Horneburger Pfannkuchenapfel

    Dabei seit:
    18.12.06
    Beiträge:
    1.405
    CloneOfMyself, vielen Dank für die Antowrt, ich schaue mir das gleich mal an und melde mich wieder.. :)
     
  7. sanktmoskau

    sanktmoskau Erdapfel

    Dabei seit:
    11.11.08
    Beiträge:
    1
    wie geht das? Ich sitze gerade am Problem und finde keine Info dazu. Kannst du mir da ein Paar Tips geben?

    Danke und Grüße
    S.
     
  8. CloneOfMyself

    CloneOfMyself Weigelts Zinszahler (Rotfranch)

    Dabei seit:
    24.02.07
    Beiträge:
    253
    Um die Settings zu erstellen, benötigt es Quicktime Pro. Ich habe derzeit auch nur jemandem beim Scripten geholfen, der mir seine Settings zur Verfügung gestellt hat. Das erstaunliche war, die richtigen Settings vorausgesetzt, dass Exports mittels AppleScript auch ohne die Pro-Version möglich waren. Ob das bei den neuesten Quicktime-Versionen immer noch so ist, weiß ich allerdings nicht.

    Ich hatte mir dann zum Test ein Droplet gebastelt, dass mir einen Export in 3 verschiedenen Qualitäten und 2 verschiedenen Formaten erstellte:

    Code:
    on open gedropt
    	set theMovie to gedropt as alias
    	tell application "Finder" to set TargetFolder to (container of theMovie) as string
    	set theName to text 1 thru -5 of (name of (info for theMovie))
    	tell application "QuickTime Player"
    		open theMovie
    		stop document 1
    		tell first document
    			-- export various movie versions
    			(*with timeout of 7200 seconds
    				export to (TargetFolder & theName & "_LARGE.mp4") as MPEG4 ¬
    					using settings ¬
    					alias "HD3:FILME:QT3StufenKonverter:Settings:large.set"
    			end timeout
    			with timeout of 7200 seconds
    				export to (TargetFolder & theName & "_MEDIUM.mp4") as MPEG4 ¬
    					using settings ¬
    					alias "HD3:FILME:QT3StufenKonverter:Settings:medium.set"
    			end timeout
    			with timeout of 7200 seconds
    				export to (TargetFolder & theName & "_SMALL.mp4") as MPEG4 ¬
    					using settings ¬
    					alias "HD3:FILME:QT3StufenKonverter:Settings:small.set"
    			end timeout
    			-- als Quicktime
    			with timeout of 7200 seconds
    				export to (TargetFolder & theName & "_LARGE.mov") as QuickTime movie ¬
    					using settings ¬
    					alias "HD3:FILME:QT3StufenKonverter:Settings:large.set"
    			end timeout*)
    			with timeout of 7200 seconds
    				export to (TargetFolder & theName & "_MEDIUM.mov") as QuickTime movie ¬
    					using settings ¬
    					alias "HD3:FILME:QT3StufenKonverter:Settings:medium.set"
    			end timeout
    			(*with timeout of 7200 seconds
    				export to (TargetFolder & theName & "_SMALL.mov") as QuickTime movie ¬
    					using settings ¬
    					alias "HD3:FILME:QT3StufenKonverter:Settings:small.set"
    			end timeout
    			with timeout of 7200 seconds
    				export to (TargetFolder & theName & "_TEST.mov") as QuickTime movie ¬
    					using settings ¬
    					alias "HD3:FILME:QT3StufenKonverter:Settings:test.set"
    			end timeout*)
    			-- etc.
    		end tell
    		close theMovie
    		quit
    	end tell
    end open
     
    j33n5 gefällt das.
  9. j33n5

    j33n5 Horneburger Pfannkuchenapfel

    Dabei seit:
    18.12.06
    Beiträge:
    1.405
    Hallo, danke erstmal für die Antworten! Ich benutze mittlerweile folgendes Script:

    Code:
    with timeout of 86400 seconds
    	
    	display dialog "Bevor die Konvertierung beginnt, stelle sicher, dass QT die richtigen Export-Settings eingestellt hat und sich alle Video im Ordner „Input“ auf dem Desktop befinden." with icon note
    	
    	tell application "Finder"
    		set the startup_disk to the name of the startup disk
    	end tell
    	
    	set user to do shell script "whoami"
    	set input_folder_name to "Input"
    	set input_folder to startup_disk & ":Users:" & user & ":Desktop:" & input_folder_name & ":"
    	set user_desktop to startup_disk & ":Users:" & user & ":Desktop:"
    	set output_folder to startup_disk & ":Users:" & user & ":Desktop:Output:"
    	set file_extension to "_export.mp4"
    	
    	try
    		tell application "Finder"
    			make new folder at user_desktop with properties {name:"Output"}
    		end tell
    	end try
    	
    	try
    		set the_folder_list to list folder input_folder without invisibles
    		repeat with x from 1 to count of the_folder_list
    			set the_file to input_folder & item x of the_folder_list
    			set output_file to output_folder & item x of the_folder_list & file_extension
    			tell application "QuickTime Player"
    				activate
    				open the_file
    				export front document to output_file as MPEG4 using most recent settings with replacing
    				close front document
    			end tell
    		end repeat
    	on error
    		display dialog "This script requires a folder named ‘" & input_folder_name & "‘ located on the desktop." with icon stop
    	end try
    	
    	beep
    	
    end timeout
     

Diese Seite empfehlen