クリップのプロパティを外部ファイルに書き出す
概要 †
クリッププロパティ取得用の関数と Write 関数を利用することによって、クリップの情報をテキストファイルに書き出すことが可能です。
スクリプトのサンプル †
Detect AVS Script Number of frames - Doom9's Forum を元に再構成。
# ソースの読み込みやその他のフィルタの設定など(省略) # ログファイルの指定 Logfile="C:\foo\bar.log" # 保存先のログファイルのパスに変更 # ここからログファイルの書き出し(引用+コメント追加) WriteFile(Logfile, """ "Width : " """, "Width()") # クリップの幅 WriteFile(Logfile, """ "Height : " """, "Height()") # クリップの高さ WriteFile(Logfile, """ "FrameCount : " """, "Framecount()") # フレーム数 WriteFile(Logfile, """ "FrameRate : " """, "Framerate()") # フレームレート WriteFile(Logfile, """ "FramerateNumerator : " """, "FramerateNumerator()") # フレームレートの分子 WriteFile(Logfile, """ "FramerateDenominator : " """, "FramerateDenominator()") # フレームレートの分母 WriteFile(Logfile, """ "Audiorate : " """, "Audiorate()") # 音声のレート WriteFile(Logfile, """ "Audiolength : " """, "Audiolength()") # 音声の長さ WriteFile(Logfile, """ "AudiolengthF : " """, "AudiolengthF()") # 音声の長さ(浮動小数点数) WriteFile(Logfile, """ "Audiochannels : " """, "Audiochannels()") # 音声のチャンネル数 WriteFile(Logfile, """ "Audiobits : " """, "Audiobits()") # 音声のビット数 WriteFile(Logfile, """ "IsAudioFloat : " """, "IsAudioFloat()") # 音声のビット深度が浮動小数点数なら true WriteFile(Logfile, """ "IsAudioInt : " """, "IsAudioInt()") # 音声のビット深度が整数なら true WriteFile(Logfile, """ "IsRGB : " """, "IsRGB()") # RGB なら true WriteFile(Logfile, """ "IsRGB24 : " """, "IsRGB24()") # RGB24 なら true WriteFile(Logfile, """ "IsRGB32 : " """, "IsRGB32()") # RGB32 なら true WriteFile(Logfile, """ "IsYUY2 : " """, "IsYUY2()") # YUY2 なら true WriteFile(Logfile, """ "IsYV12 : " """, "IsYV12()") # YV12 なら true WriteFile(Logfile, """ "IsYUV : " """, "IsYUV()") # YUV なら true WriteFile(Logfile, """ "IsPlanar : " """, "IsPlanar()") # Planar なら true WriteFile(Logfile, """ "IsInterleaved : " """, "IsInterleaved()") # Interleaved なら true WriteFile(Logfile, """ "IsFieldBased : " """, "IsFieldBased()") # フィールドベースなら true WriteFile(Logfile, """ "IsFrameBased : " """, "IsFrameBased()") # フレームベースなら true WriteFile(Logfile, """ "GetParity : " """, "GetParity()") # トップフィールド(フィールドベース)かトップフィールドファースト(フレームベース)なら true # 追加 WriteFile(Logfile, """ "HasAudio : " """, "HasAudio()") # 音声があれば true(v2.56 以降) WriteFile(Logfile, """ "HasVideo : " """, "HasVideo()") # 映像があれば true(v2.56 以降) # フレーム 0 のみを選択 Trim(0,-1) # シークするごとに出力されるため。
使用上の注意 †
- WriteFile 入力用のクリップは、last であるものとします。
- 上記のサンプルは、ログファイルのパスを変更してから利用してください。
- 最後の「Trim(0,-1)」を省略すると、プレビュー中にフレーム移動するごとにログが追記されることになります。WriteFile の代わりに WriteFileStart または WriteFileEnd を使用すれば、この行は不要になります(スクリプトのオープン/クローズ時にのみ出力されるため)。
- クリッププロパティ取得関数の詳細は、ClipProperties を参照。
関数版(InfoToFile) †
How to print contents from "info()" to text file - Doom9's Forum より。
ユーザー定義関数化されているため、たびたび使用するような場合はこちらの方が便利でしょう。上記のサンプルより書き出される数は少ないですが、カスタマイズすれば他の情報も書き出すことが可能になります。
function InfoToFile(clip c, string filename) { endl = Chr(10) colorspaceStr = "Colorspace: " \ + (c.IsYUY2() \ ? "YUY2" \ : (c.IsYV12() \ ? "YV12" \ : (c.isRGB32() \ ? "RGB32" \ : (c.IsRGB24() \ ? "RGB24" \ : "Unknown")))) \ + endl frameSizeStr = "Frame size: " \ + String(c.Width()) + "x" + String(c.Height()) \ + endl fpsStr = "FPS: " + String(c.FrameRate()) + endl fieldBasedStr = (c.IsFieldBased() \ ? "field-based (separated)" \ : "frame-based") \ + endl audioStr = "Audio: " \ + ((c.AudioRate() == 0) \ ? "none" \ : (String(c.AudioRate()) + " Hz, " \ + String(c.AudioBits()) + "-bit, " \ + String(c.AudioChannels()) + " channels")) \ + endl return c.WriteFileStart(filename, "colorspaceStr", \ "frameSizeStr", "fpsStr", \ "fieldBasedStr", "audioStr") }
関連ページ †
外部 †
- Detect AVS Script Number of frames - Doom9's Forum
- How to print contents from "info()" to text file - Doom9's Forum
サイト内 †
最終更新日時: 2014-03-11 (火) 03:50:49 (3900d)