2009-07-14 2 views
3

AppleScriptのQuickTimeムービーからタイムコードを抽出します。私はタイムコードトラックを取得することができ、このスクリプトAppleScriptのQuicktimeムービーのタイムコードトラックを読み取る方法はありません

tell application "QuickTime Player" 
    set themovie to open thefile 
    set thetracks to tracks of document 1 
    repeat with thetrack in thetracks 
     if the kind of thetrack is "Timecode" then 
      get the properties of thetrack 
     end if 
    end repeat 
end tell 

を使用することにより

は、トラックのプロパティは次のとおり、真のビデオ グレースケールです:

{オーディオ変動率である偽オーディオサンプルサイズ:0, クラス:トラック、オーディオサンプルレート:0.0、 サウンドバランス:0、プリロード:偽、 ストリーミングビットレート:-1.0、 期間:960300、言語: "英語"、 音声チャネル数:0、レイヤー:0、 内容:欠損値、低音ゲイン:0、 開始時刻:0、データ形式:タイムコード、 トレブルゲイン:0、オーディオ 特性:false、音量:0 、 マスク:欠損値、ビデオの深さ:0、 位置:{0、0}、ID:4、高 品質:偽、デインタレース フィールド:false、href: ""、ナチュラル ディメンション:{0、0 }、単一フィールド:false、 種類:タイムコード、インデックス:4、データ サイズ:38412、ビジュアル 特性:false、データレート:100、 決してパージしない:false、透過率:49、 chapterlist:{} 、名前: "タイムコードトラック"、 alternate:{}、操作色:{3 タイプ: "tmcd"、ストリーミング品質:-1.0、 転送モード:転送モード不明、 サイズ:{0、0}、現在 マトリックス:{{1.0、 0.0、0.0}、{0.0、1.0、0.0 }、タイムコードを行うには何も持っていると思われた{0.0、0.0、1.0}}}

なし。私は、タイムコードは、私は何で考えている0

で起動しない場合でも、それは0を返し、ムービーの現在の時間を取得しようとした場合のコンテンツプロパティは

「値がありません」されることに注意してください私はこれまでネット上でこれが不可能であることを発見しました。私は回避策を見つけた私が間違っ

TIA -stib

答えて

2

を証明してください。オープンソースのtimecodereaderというコマンドラインアプリがありますhere

timecodereader.mの152行目で、出力をstderrからstdoutに変更する必要があり、結果をAppleScriptで読み取れるようにする必要があります。これと同じように:

fprintf(stdout,"%s\n", [timecodeString fileSystemRepresentation]); 

fprintf(stderr,"%s\n", [timecodeString fileSystemRepresentation]); 

あなたはそれを構築した後、あなたはちょうどそれが最初に文字列を返し

set theStartTC to do shell script "timecodereader /Posix/Path/To/My/Movie.mov" 

を使用することができ、あなたの実行可能ファイルのパスで結果を置きますタイムコードのフレーム。

+1

あなたはおそらく標準エラー出力をリダイレクトすることができます。シェルコマンド文字列の最後に '2>&1'を入れて、stderrがどこに行くのかをstderrにリダイレクトします。もちろん、 –

+0

ああ!ありがとう! – stib

0

あなたは一種の代わりにトラックの名前を使用できます。

on open myfiles 
repeat with thefile in myfiles 

    tell application "QuickTime Player" 
    set themovie to open thefile 
    set thetracks to tracks of document 1 
    repeat with thetrack in thetracks 
    if the name of thetrack is "Closed Caption Track" then 
    set thetrack's enabled to false 

    end if 
    end repeat 
    end tell 
end repeat 
end open 
+0

私はトラックをOKにすることができます。種類や名前を使って、そのトラック内のタイムコードにアクセスできなかっただけです。 – stib

関連する問題