• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Wir haben den Frühjahrsputz beendet, Ihr auch? Welches Foto zu dem Thema hat Euch dann am Besten gefallen? Hier geht es lang zur Abstimmung --> Klick

Quciktime: Zu Movie-Link exportieren

j33n5

Horneburger Pfannkuchenapfel
Registriert
18.12.06
Beiträge
1.407
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]
 

j33n5

Horneburger Pfannkuchenapfel
Registriert
18.12.06
Beiträge
1.407
lalala und da drück ich ma..
 

CloneOfMyself

Weigelts Zinszahler (Rotfranch)
Registriert
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.
 

CloneOfMyself

Weigelts Zinszahler (Rotfranch)
Registriert
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.
 

CloneOfMyself

Weigelts Zinszahler (Rotfranch)
Registriert
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.
 

j33n5

Horneburger Pfannkuchenapfel
Registriert
18.12.06
Beiträge
1.407
CloneOfMyself, vielen Dank für die Antowrt, ich schaue mir das gleich mal an und melde mich wieder.. :)
 

sanktmoskau

Erdapfel
Registriert
11.11.08
Beiträge
1
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.

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.
 

CloneOfMyself

Weigelts Zinszahler (Rotfranch)
Registriert
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
 
  • Like
Reaktionen: j33n5

j33n5

Horneburger Pfannkuchenapfel
Registriert
18.12.06
Beiträge
1.407
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