Comando de salvamento Applescript para QuickTime Player

Comando de salvamento Applescript para QuickTime Player

Eu instalei oComplemento Perianopara Quicktime para que ele possa abrir arquivos .flv e então eu possa salvá-los como .m4v ou .mov. Estou tentando fazer um Applescript para converter de .flv para .m4v automaticamente usandoeste tutoriale massacrando seusexemplo de arquivo applescript, que normalmente converte arquivos ChemDraw (.cdx, .cml, .mol) em .tiff, para que use o Quicktime para salvar os arquivos .flv como .m4v. Porém, quando tento usá-lo, recebo um erro "O QuickTime Player recebeu um erro: o documento 1 não entende a mensagem salva". Minha mensagem salva atualmente é:

salve o primeiro documento em target_path como ".m4v"

que se parece com as instruções do dicionário QuickTime:

salvarespecificador: o(s) documento(s) ou janela(s) a ser(em) salvo(s).

[comoformato de arquivo salvo]: O formato de arquivo a ser usado.

Também tentei "m4v", sem ponto final, e ainda recebo o erro.
Minha direção para salvar está errada ou provavelmente é um erro ao tentar usar o Quicktime em vez do ChemDraw original? Tentei alterar as referências de .cdx, .cml, .mol, .tiff e ChemDraw para .flv, .m4v e QuickTime respectivamente, mas talvez seja mais complicado do que isso?

Responder1

Esta resposta é muito longa porque seus comentários parecem indicar que seu principal interesse é o próprio AppleScript, e não a conversão de vídeos de FLV para MP4. Se for esse o caso, recomendo fortemente começar com um bomReferência AppleScript, lendo com atenção e aprendendo a usar as ferramentas disponíveis (especialmente Editor de Scripts e dicionários de aplicativos). Tentar aprender uma nova linguagem modificando aplicativos existentes não é bom para depuração e pode resultar em coisas muito ruins, comoprogramação de culto à carga. Dito isto,


Eu começaria abrindo o dicionário do QuickTime Player (Arquivo->Abrir Dicionário...no Editor de scripts) para ver quais comandos estão disponíveis. Na minha versão do QuickTime Player (7.6.4), existe um exportcomando no QuickTime Player Suite:

exportar v: Exportar um filme ou faixa para um arquivo

   exportarreferência: o filme ou faixa a ser exportada
   paraarquivo: o arquivo de destino
   comoAIFF/Apple TV/AVI/BMP/DV stream/Fast Start QTVR Movie/FLC/sugerido
      filme/sequência de imagens/objeto VR compactado interframe filme/iPhone/
      iPhone celular/iTunes/MuLaw/MPEG2/MPEG4/imagem/mídia QuickTime
      link/filme QuickTime/QuickTime TeXML/MIDI padrão/som System 7/
      arquivo de texto/ThreeGPP/wave : o tipo de arquivo desejado
   [usandoconfigurações padrão/configurações mais recentes]: as configurações de exportação
      usar
   [usando configurações predefinidasstring]: o nome das configurações de exportação
      predefinido para usar
   [usando configuraçõesfile]: o arquivo que contém as configurações de exportação
   [substituindoboolean] : o arquivo original deve ser excluído primeiro?

Uma pequena pesquisa no Google sugere que o tipo de arquivo “iPhone” se refere a um arquivo .m4v, portanto, um primeiro passo pode ser substituir save first document in target_path as ".m4v"por export first document to target_path as iPhone. Olhando um pouco mais o dicionário, porém, mostra que também existe um can exportcomando:

pode exportar v : Determine se um filme ou trilha pode ser exportado para o local desejado
   tipo

   pode exportarreferência: o filme ou faixa a ser exportada
      comoAIFF/Apple TV/AVI/BMP/DV stream/Fast Start QTVR Movie/FLC/sugerido
         filme/sequência de imagens/objeto VR compactado interframe filme/iPhone/
         iPhone celular/iTunes/MuLaw/MPEG2/MPEG4/imagem/mídia QuickTime
         link/filme QuickTime/QuickTime TeXML/MIDI padrão/som System 7/
         arquivo de texto/ThreeGPP/wave : o tipo de arquivo desejado
      → booleano: a exportação é suportada

Portanto, devemos verificar se é possível exportar o filme no formato iPhone/.m4v antes de fazê-lo:

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

Porém, se pararmos por aqui, poderemos notar que alguns dos arquivos de saída não são reproduzidos corretamente além de um certo ponto, porque o QuickTime pode carregar arquivos de forma assíncrona (ou seja, não todos de uma vez). Deveríamostente verificar se o QuickTime Player terminou de carregar um filmeantes de dizermos para exportar; examinando a lista completa de estados de carregamento listados no dicionário e assumindo que cada filme eventualmente termina em um estado finalizado ou em um estado de erro, podemos adicionar isso com relativa facilidade.

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

Responder2

Você sempre pode recorrer a scripts de UI. Tomando como base a resposta de @Benny, aqui está o que funciona (de certa forma):

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

Se quiser simplesmente salvar algo de TextEditacordo com seu comentário, você pode usar o seguinte 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

Se você deseja salvar um documento como um tipo de arquivo específico, parece haver um problema com o asparâmetro: não consegui salvá-lo em um dos formatos selecionáveis. Você pode contornar o problema especificando a extensão de arquivo desejada, por exemplo, filename.htmlou filename.odtparaPágina da InterneteOpenDocumentformatos respectivamente.

Responder3

O script Applescript descrito aqui pode ser útil:Droplet de exportação do QuickTime.

Embora isso não responda à sua pergunta, aqui estão dois produtos comerciais que parecem ser uma solução, com testes disponíveis:

Conversor de vídeo Wondershare iPad para Mac(US$ 25)
Conversor de vídeo para Mac(US$ 39)

Responder4

Não sei se isso funciona, mas tente,

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

Veja se isso funciona.

Se isso não funcionar, consulte esta página.http://discussions.apple.com/thread.jspa?threadID=1055811

informação relacionada