Comando de guardar Applescript para QuickTime Player

Comando de guardar Applescript para QuickTime Player

He instalado elcomplemento perianopara Quicktime para que pueda abrir archivos .flv y luego guardarlos como .m4v o .mov. Estoy intentando crear un Applescript para convertir de .flv a .m4v automáticamente usandoeste tutorialy masacrando a susejemplo de archivo AppleScript, que normalmente convierte archivos ChemDraw (.cdx, .cml, .mol) a .tiff, de modo que en su lugar utiliza Quicktime para guardar los archivos .flv como .m4v. Sin embargo, cuando intento usarlo, aparece el error "QuickTime Player recibió un error: el documento 1 no comprende el mensaje de guardado". Mi mensaje guardado es actualmente:

guarde el primer documento en target_path como ".m4v"

que se parece a las instrucciones del diccionario QuickTime:

ahorrarespecificador: Los documentos o ventanas que se guardarán.

[comoformato de archivo guardable]: el formato de archivo que se utilizará.

También probé "m4v", sin el punto, y sigo apareciendo el error.
¿Mi dirección de guardado es incorrecta o probablemente se trata de un error al intentar utilizar Quicktime en lugar del ChemDraw original? Intenté cambiar las referencias a .cdx, .cml, .mol, .tiff y ChemDraw a .flv, .m4v y QuickTime respectivamente, pero ¿tal vez sea más complicado que eso?

Respuesta1

Esta respuesta es muy larga porque sus comentarios parecen indicar que su principal interés es AppleScript, no convertir videos de FLV a MP4. Si este es el caso, recomiendo encarecidamente comenzar con una buenaReferencia de AppleScript, leyendo atentamente y aprendiendo a utilizar las herramientas disponibles (especialmente el Editor de scripts y los diccionarios de aplicaciones). Intentar aprender un nuevo idioma modificando aplicaciones existentes no es bueno para la depuración y puede terminar en cosas muy malas comoprogramación de culto de carga. Dicho eso,


Empezaría abriendo el diccionario de QuickTime Player (Archivo->Abrir diccionario...en Script Editor) para ver qué comandos están disponibles. En mi versión de QuickTime Player (7.6.4), hay un exportcomando en QuickTime Player Suite:

exportar v: Exportar una película o pista a un archivo

   exportarreferencia: la película o pista a exportar
   aarchivo: el archivo de destino
   comoAIFF/Apple TV/AVI/BMP/transmisión DV/Inicio rápido de película QTVR/FLC/insinuado
      película/secuencia de imágenes/película de objeto VR comprimido entre fotogramas/iPhone/
      iPhone celular/iTunes/MuLaw/MPEG2/MPEG4/imagen/medios QuickTime
      enlace/película QuickTime/QuickTime TeXML/MIDI estándar/sonido System 7/
      archivo de texto/ThreeGPP/wave: el tipo de archivo deseado
   [usandoconfiguración predeterminada/configuración más reciente]: la configuración de exportación
      usar
   [usando la configuración preestablecidastring] : el nombre de la configuración de exportación
      preestablecido para usar
   [usando la configuraciónfile] : el archivo que contiene la configuración de exportación
   [reemplazandobooleano]: ¿debería eliminarse primero el archivo original?

Una pequeña búsqueda en Google sugiere que el tipo de archivo "iPhone" se refiere a un archivo .m4v, por lo que un primer paso podría ser reemplazarlo save first document in target_path as ".m4v"con export first document to target_path as iPhone. Sin embargo, mirar un poco más el diccionario muestra que también hay un can exportcomando:

puede exportar v: determina si una película o pista se puede exportar al destino deseado.
   tipo

   puede exportarreferencia: la película o pista a exportar
      comoAIFF/Apple TV/AVI/BMP/transmisión DV/Inicio rápido de película QTVR/FLC/insinuado
         película/secuencia de imágenes/película de objeto VR comprimido entre fotogramas/iPhone/
         iPhone celular/iTunes/MuLaw/MPEG2/MPEG4/imagen/medios QuickTime
         enlace/película QuickTime/QuickTime TeXML/MIDI estándar/sonido System 7/
         archivo de texto/ThreeGPP/wave: el tipo de archivo deseado
      → booleano: ¿se admite la exportación?

Así que deberíamos comprobar que es posible exportar la película en formato iPhone/.m4v antes de hacerlo:

if (can export first document as iPhone) then
   export first document to target_path as iPhone
else
   error "Cannot export " & (source_file as string) & " in .m4v (iPhone) format."
end if

Sin embargo, si nos detenemos aquí, podemos notar que algunos de los archivos de salida no se reproducen correctamente más allá de cierto punto, porque QuickTime puede cargar archivos de forma asincrónica (es decir, no todos a la vez). Deberíamosintenta comprobar que QuickTime Player haya terminado de cargar una películaantes de que le digamos que exporte; Al examinar la lista completa de estados de carga que figuran en el diccionario y asumiendo que cada película eventualmente termina en un estado terminado o en un estado de error, podemos agregar esto con relativa facilidad.

set error_states to {load state unknown, load error}
set successful_states to {loaded, complete}
repeat until load state of first document is in (error_states & successful_states)
   delay 0.1
end repeat

if (load state of first document is in successful_states) then
   if (can export first document as iPhone) then
      export first document to target_path as iPhone
   else
      error "Cannot export " & (source_file as string) & " in .m4v (iPhone) format."
   end if
else
   error "File is not in a successful load state: " & (load state of first document as string)
end if

Respuesta2

Siempre puedes recurrir a las secuencias de comandos de la interfaz de usuario. Tomando como base la respuesta de @Benny, esto es lo que funciona (en cierto modo):

set infile to choose file with prompt "select file:"
set outfile to "filename"

try
    tell application "QuickTime Player"
        activate
        close every window
        open infile
        delay 2 # wait for the document to open
        tell application "System Events"
            keystroke "s" using {command down, shift down} # press Cmd-Shift-S
            delay 1 # wait for the sheet
            keystroke outfile # the filename
            key code 36 # press enter
        end tell
        close document 1 saving no
    end tell
end try

Si simplemente desea guardar algo TextEditsegún su comentario, puede utilizar lo siguiente como base:

set infile to choose file with prompt "select file:"
set outfile to choose file name with prompt "Save altered file here:"

tell application "TextEdit"
    activate
    open infile
    tell application "System Events" # just some keystrokes for edits
        keystroke "AppleScript was here!"
        key code 36 # press enter
    end tell
    tell document 1 to save in outfile
    close every document saving no
end tell

Si desea guardar un documento como un tipo de archivo específico, parece haber un problema con el asparámetro: no pude guardarlo en uno de los formatos seleccionables. Puede evitar el problema especificando la extensión de archivo deseada, por ejemplo, filename.htmlo filename.odtparaPágina webyDocumento abiertoformatos respectivamente.

Respuesta3

El script Applescript que se describe aquí puede resultar útil:Droplet de exportación QuickTime.

Aunque esto no responde a su pregunta, aquí hay dos productos comerciales que parecen ser una solución, con pruebas disponibles:

Wondershare iPad Video Converter para Mac($25)
Convertidor de vídeo para Mac($39)

Respuesta4

No sé si esto funciona, pero inténtalo.

set infile to choose file with prompt "select file:"
set outfile to choose file name with prompt "Save altered file here:"

try
tell application "QuickTime Player"
activate
close every window
open infile
set dimensions of document 1 to {720, 400}
tell document 1
save self contained file outfile
end tell
-- save document 1 given «class dfil»:file outfile, «class savk»:self contained
close document 1 saving no
end tell
end try

Vea si eso funciona.

Si eso no funciona, consulte esta página.http://discussions.apple.com/thread.jspa?threadID=1055811

información relacionada