0

QuickTime Player 7 v7.6.6 で次のスクリプトを使用して、AVI コンテナ ファイルを MOV コンテナ ファイルにバッチ変換しようとしています。

tell application "Finder"

    try
        set myFolder to (the folder of the front window) as alias
    on error
        beep
    end try

    -- get list of .avi files
    set aviFiles to files of myFolder whose name contains ".avi"
end tell

tell application "QuickTime Player 7" to activate

repeat with aviFile in aviFiles
    set aviName to name of aviFile as text
    set dispName to (text 1 thru ((length of aviName) - 4)) of aviName
    set movName to dispName & ".mov"
    set movPath to (POSIX path of myFolder & movName)

    tell application "QuickTime Player 7"
        open aviFile
        save front document in movPath
        close front document
    end tell

end repeat

Finder でフォルダーを選択してこのスクリプトを実行すると、次のエラーが表示されます。

QuickTime Player 7 got an error: Can’t get document 1. Invalid index.

スクリプトを実行すると、QuickTime Player X と QuickTime Player 7 の両方が有効になります (開かれます)。

ムービー ファイルaviFileは、QuickTime Player 7 ではなく、QuickTime Player X で実際に開くように見えます。これは、QTP7 がドキュメント 1 を取得できないというエラー メッセージが表示される理由を説明しています。

このスクリプトを修正して、AVI ムービーを QuickTime Player X ではなく QuickTime Player 7 で開くようにする方法はありますか? コマンドラインから QuickTime Player 7 を制御する方法はありますか?

ffmpegX (または同様のもの) のようなトランスコーダーを使用したくないことに注意してください。これにより、AVI の品質が低下します (また、ファイル サイズが大きくなります)。新しい MOV コンテナで AVI の再保存を自動化して、既にインストールしたコーデックで iTunes を再生できるようにしたいだけです。アドバイスありがとうございます。

4

1 に答える 1

1

ここで「間違った質問に答える」わけではありませんが、ffmpeg はトランスコードせずにコンテナーを変換できます (したがって、ファイル サイズを大幅に変更したり、品質を低下させたりすることはありません)。

ffmpeg -vcodec copy -acodec copy -i inputFile.avi outputFile.mov
于 2011-10-17T08:16:12.470 に答える