お知らせ: にーやんのブログ 2 に移転しました。こちらのブログは、2009 年末までに削除します。

スポンサード リンク

ShowTimeCode 関数を更新

タイムコード表示用関数の ShowTimeCodeShowTimeCodeEx を更新しました。最新版では「オフセット指定」と「表示形式の選択」が可能になっています。

AviSynth スクリプト・ファイルは、にーやんのブログ :: ShowTimeCode - タイムコードを表示する関数からダウンロードすることができます。

オフセット指定

新たに追加された offset パラメータにより、オフセットを指定することができます。また、nowtime=true とすることで、システム時間をオフセットとして利用することも可能です。これらは、DigitalClock24 関数 の機能を移植したものです。

使用例: オフセットを指定
# offset は小数で指定可能
ShowTimeCode(font="7barP", size=20, text_color=$ffffff, offset=60*59+59+0.99)

!使用例: オフセットを指定

使用例: システム時間の取得
# nowtime=true でシステム時間を取得
ShowTimeCode(font="7barP", size=20, text_color=$ffffff, nowtime=true)

!使用例: システム時間の取得

表示形式の選択

mode パラメータと ms_digit パラメータを利用することによって、表示形式を選択することができます。

mode パラメータで指定可能な形式は、以下の通りです:

  • "ts"
  • "ts.ms" または "ts:ms"
  • "ss"
  • "ss.ms" または "ss:ms"
  • "mm:ss.ms" または "mm:ss:ms"
  • "hh:mm:ss.ms" または "hh:mm:ss:ms"
  • "mm:ss"
  • "hh:mm:ss"

hh は「時間」、mm は「分」、ss は「秒」、ms は「ミリ秒」を表します。また、ts を指定すると、総経過時間を秒数で表します。ミリ秒の左の記号は「.(ドット)」か「:(コロン)」のいずれか指定したほうが使用されます。

ms_digit は、ミリ秒単位を表示する場合に、その表示する桁数を指定するためのパラメータです。1 から 3 までの整数が指定可能です。

使用例: 表示モードの選択
# mode="mm:ss"(分:秒)
ShowTimeCode(font="7barP", size=20, text_color=$ffffff, mode="mm:ss")

!使用例: 表示モードの選択

使用例: ミリ秒単位の桁数を指定
# ms_digit=3 なら 1000 分の 1 秒まで表示
ShowTimeCode(font="7barP", size=20, text_color=$ffffff, mode="hh:mm:ss.ms", ms_digit=3)

!使用例: ミリ秒単位の桁数を指定

DigitalClock24: デジタル時計風の字幕を追加する関数

DigitalClock24 は、ビデオクリップ上にデジタル時計風の字幕を追加する AviSynth 用の関数です。

再生すると、1 秒進むごとに字幕の時間も 1 秒ずつ増えていき、24 時間ごとに 0 にリセットされます。オフセット(秒単位)を指定して任意の時間からカウントを開始したり、システム時間からカウントするように設定することも可能です。

サンプル画像

フォントを調整すれば、このように海外ドラマ「24」みたいな感じにすることもできます。

(2006-02-11 追記)ShowTimeCode 関数にも、オフセットとシステム時間の取得機能を追加しています。これにより、ShowTimeCodeでも、DigitalClock24 と同等のことが実現可能になりました。

ダウンロード

DigitalClock24.avs(ZIP 形式で圧縮)

(2007-10-23 追記)ZIP 形式で圧縮したものに差し替えました。内容に変更はありません。

使用例

基本的な使い方は Subtitle フィルタと同じです。

ここでは、Subtitle にはない offset と nowtimeという 2 つのオプションの使用例のみ紹介しておきます。

offset, nowtime 指定なし
Import("DigitalClock24.avs") # AVSのインポート
BlankClip(150,320,240,fps=29.97) # ソースクリップ
DigitalClock24(80, 130, "7barP", 48, $ffcc33)

サンプル動画 1 (MPEG-1, 5秒, 254KB)

offset のみ指定
Import("DigitalClock24.avs") # AVSのインポート
BlankClip(150,320,240,fps=29.97) # ソースクリップ
DigitalClock24(80, 130, "7barP", 48, $ffcc33, offset=60*60*23+60*59+56)

サンプル動画 2 (MPEG-1, 5秒, 254KB)

offset は秒単位で指定します。この場合、60*60*23+60*59+56 秒、つまり 23 時間 59 分 56 秒を追加した状態から、カウントが開始されます。

nowtime のみ指定
Import("DigitalClock24.avs") # AVSのインポート
BlankClip(150,320,240,fps=29.97) # ソースクリップ
DigitalClock24(80, 130, "7barP", 48, $ffcc33, nowtime=true)

サンプル動画 3 (MPEG-1, 5秒, 254KB)

nowtime=true に設定すると、システム時間が開始時間として設定されます。MediaPlayerで再生すれば、デジタル時計としても使えるかもしれません。

使用上の注意

  • AviSynth がインストールされている必要があります(AviSynth 2.5.6a で動作確認)。
  • 使用するときは、DigitalClock24.avs をメインの AVS ファイルにインポートしてください(上記の使用例を参照。DigitalClock24.avs と メインの AVS を同じディレクトリに置けば、パス指定の必要はありません)。
  • 動作無保証。

謝辞

サンプル動画とサンプル画像用に、TRO庵7セグメントフォント SEVENBAR を使わせていただいています。

ShowCountDown関数: ビデオクリップ上にカウントダウンを表示

すっかり放置気味のブログですが、2005年の最後に小ネタを 1 つ行っときます。

概要

ShowCountDown は、ビデオクリップ上にカウントダウンを表示する関数です。

大晦日のカウントダウンイベントにご利用ください。嘘です。

ダウンロード

関数定義ファイル(ShowCountDown.avs)(ZIP 形式で圧縮)

使用上の注意

  • AviSynth がインストールされている必要があります(AviSynth 2.5.6a で動作確認)。
  • ShowCountDown.avs をメインのスクリプトにインポートして使用してください。
  • メインの ShowCountDown 関数と、_ShowCountDown 、SetCDStart 、SetCDEnd の3つのサブ関数から構成されています。ShowCountDown 関数単体では動作しません。
  • 再帰(Recursive)関数を使用しています。直接メディアプレイヤーで再生するのではなく、別の動画形式に変換してから再生することをおすすめします。
  • 例によって動作無保証。

書式

ShowCountDown(clip c, int n, int "x", int "y", int "start", int "end",
\ string "font", int "size", int "text_color", int "halo_color", bool "show_zero")

引数

  • n : カウントを開始する数。(例)n=5なら、5,4,3 ... とカウントする。
  • x , y : 数字を表示する位置。
  • start : 表示開始フレーム(デフォルト 0)。
  • end : show_zero=true のとき、0 の表示を終了するフレーム。
  • font : フォント(デフォルト "Arial")。
  • size : フォントの大きさ(デフォルト 18)。
  • text_color : フォントの色(デフォルト $FFFF00)。
  • halo_color : フォントの縁の色(デフォルト $000000)。
  • show_zero : 0 を表示するかどうかの選択(デフォルト true)。

n 以外の引数は省略可能です。

使用例

Import("ShowCountDown.avs")
BlankClip(180, 320, 240, fps=29.97)
ShowCountDown(5, x=135, y=70, font="7barP", size=96, text_color=$ffffff)
return last

サンプル動画

サンプル動画のスクリーンショット

サンプル動画(MPEG-1, 880KB)

サンプル動画のスクリプト(ZIP 形式で圧縮)

example_showcountdown.avs と ShowCountDown.avsを同じディレクトリに置いてください。mojimoji関数も必要です。

謝辞

サンプル動画では、TRO庵7セグメントフォント SEVENBAR を使わせていただいています。

(2007-10-23 追記)AVS ファイルは、すべて ZIP 形式で圧縮したものに差し替えました。内容に変更はありません。

ShowTimeCodeEx: SubtitleExプラグインを使用したタイムコード表示関数

AviSynth Wiki - ShowTimeCode にページを設置しました。最新の情報およびダウンロードは、AviSynth Wiki - ShowTimeCode を参照してください。


ShowTimeCode.avsを更新しました。今回から、SubtitleExプラグインを使用するバージョンの ShowTimeCodeEx 関数を追加しています(そのほかの変更点は、前のエントリを参照)。

ダウンロード

にーやんのブログ :: ShowTimeCode - タイムコードを表示する関数からダウンロードしてください。

基本的な使用方法は、ShowTimeCode 関数と同じです。ダウンロードしたら、ShowTimeCode.avs にリネームして、メインのスクリプトにインポートして使用してください。

別途、SubtitleExプラグインが必要となります。SubtitleExプラグインは、AviSynth Filter Collection からダウンロードできます。

ShowTimeCode との違い

  • SubtitleExプラグインを使用。
    • これにより、文字をイタリック体にしたり、ぼかしやエンボス加工などの効果を与えることができます。
  • align, spcは使用不可能。
    • SubtitleEx プラグインには、Subtitleフィルタのalign, spcが存在しません。そのため、ShowTimeCodeEx でも、これらの引数は指定できません。

書式

ShowTimeCodeEx(clip c, int "x", int "y", string "font",
\ string "effects", int "size", int "textcolor", int "halocolor")

引数

  • x, y: 文字の x, y 座標(デフォルト: x = -cの幅 * 0.11, y = -cの高さ * 0.17)。
  • font: フォント(デフォルト: "Arial")。
  • effects: SubtitleEx の effects(デフォルト: "b")。
    • "b" - 太字
    • "i" - イタリック体
    • "u" - アンダーライン
    • "c" - 中央寄せ
    • "s" - ソフトぼかし
    • "g" - ガウシアンぼかし
    • "e" - エンボスフィルタ
    • "l" - ラプラシアンフィルタ(エッジ検出)
  • size: 文字のサイズ(デフォルト: 36)
  • textcolor: 文字の色。Subtitle の text_color(デフォルト: $00FFFFFF)。
  • halocolor: 文字の縁の色。Subtitle の halo_color(デフォルト: $00000000)。

ShowTimeCodeEx では、SubtitleEx の "f", "m" は利用できません。

使用例1: イタリック体

スクリプト
LoadPlugin("SubtitleEx.dll") # オートローディング時、不要
Import("ShowTimeCode.avs")
ColorBars(320,240)
ShowTimeCodeEx(effects="i") # i: イタリック体

SubtitleEx.dll を読み込む必要があります。

サンプル画像

ShowTimeCodeExの使用例1: イタリック体

使用例2: 太字+イタリック体

スクリプト
LoadPlugin("SubtitleEx.dll") # オートローディング時、不要
Import("ShowTimeCode.avs")
ColorBars(320,240)
ShowTimeCodeEx(effects="bi") # b: 太字, i: イタリック体
サンプル画像

ShowTimeCodeExの使用例2: 太字+イタリック体

使用例3: 太字+イタリック体+エンボス加工

スクリプト
LoadPlugin("SubtitleEx.dll") # オートローディング時、不要
Import("ShowTimeCode.avs")
ColorBars(320,240)
ShowTimeCodeEx(effects="bie") # b: 太字, i: イタリック体, e: エンボスフィルタ
サンプル画像

ShowTimeCodeExの使用例3: 太字+イタリック体+エンボス加工

備考

  • AviSynth 2.5.6aで動作確認。
  • 動作無保証。

(2006-02-11 追記)ShowTimeCodeEx 関数を更新しました。変更点については、にーやんのブログ :: ShowTimeCode 関数を更新を参照。

(2008-03-22 追記)

  • 2008-03-22: AviSynth Wiki - ShowTimeCode にページを設置しました。これにともない、このページのダウンロードリンクを削除しました。

ShowTimeCode - タイムコードを表示する関数

AviSynth Wiki - ShowTimeCode にページを設置しました。最新の情報およびダウンロードは、AviSynth Wiki - ShowTimeCode を参照してください。


2ちゃんねるの AviSynth スレッド Part 20 で「動画にタイマーをつけた」いという話が出ていました。そういえば、以前、そのような関数を書いたなと思って過去ログを漁ってみたらありました。

Avisynthを絶賛ιょぅょ Part15
228 名前: ◆NIiYaNiQWc :03/12/16 23:41
>>197
# ShoboInfo()(仮)
#
# 別件で考えていたものを手直し。一応動く程度

別件というのが何なのかは書いた本人にもわかりませんが、この関数を少し手直したものを作ってみました。

(2006-02-11 追記)タイムコードの表示には、AviSynth 内蔵の ShowSMPTE フィルタを利用することもできます。ShowSMPTE フィルタの方が動作が軽く、AviSynth 2.5.6 以降なら Subtitle フィルタのオプションを使用することも可能です。

概要

ShowTimeCode は、タイムコードを表示する関数です。フレームレートと現在のフレーム番号から時間を計算して、クリップ上に表示します。実際のタイムコードとは、若干の誤差が生じる可能性があります。

2005-11-09 版から、ShowTimeCodeEx 関数を同梱しています。ShowTimeCodeEx については、にーやんのブログ :: ShowTimeCodeEx: SubtitleExプラグインを使用したタイムコード表示関数を参照。

また、2006-02-11 版での変更点については、にーやんのブログ :: ShowTimeCode 関数を更新を参照。

ダウンロード

AviSynth Wiki - ShowTimeCode を参照。

使用方法

ShowTimeCode.avs をメインのスクリプトにインポートして、使用してください。詳しくは、下記の使用例を参考にしてください。

なお、ShowTimeCode.avs の中には ShowTimeCode の補助関数 GetTimeCode が含まれていますが、GetTimeCode は単独では使用できません。

書式

ShowTimeCode(clip c, int "x", int "y", string "font", int "size",
\ int "text_color", int "halo_color", int "align", int "spc",
\ float "offset", bool "nowtime", string "mode", int "ms_digit")

引数

  • x, y: タイムコードの表示位置(x-y 座標)。
  • font: フォント。
  • size: フォントの大きさ。
  • text_color: フォントの色。
  • halo_color: フォントの縁の色。
  • align: デフォルトの表示位置。Subtitle フィルタの align。
  • spc: フォントの間隔。Subtitle フィルタの spc。
  • offset: オフセット。
  • nowtime: システム時間の取得。
  • mode: 表示モード。
  • ms_digit: ミリ秒単位において表示する桁の数。

offset、nowtime、mode、ms_digit については、にーやんのブログ :: ShowTimeCode 関数を更新を参照。それ以外は、AviSynth 内蔵の Subtitle フィルタの引数と同じです。

使用例1: 引数を省略した場合

スクリプト
Import("ShowTimeCode.avs")
ColorBars(320,240)
ShowTimeCode()
サンプル画像

ShowTimeCodeの使用例1

使用例2: 引数を指定した場合

スクリプト
Import("ShowTimeCode.avs")
ColorBars(320,240)
ShowTimeCode(60,240,"Digital Number",30,$ffffff,$000000,1,30)
サンプル画像

ShowTimeCodeの使用例2

備考

  • AviSynth 2.5.6aで動作確認。
  • 動作無保証。
  • 動作に問題がないようなら、AviSynth Wiki に転載するかもしれません。

(追記) ShowTimeCode.avs と Subtitle フィルタのリンクが間違っていたのを修正しました。


(2005-11-09 追記)

新しいバージョンに差し替えました。変更点は、以下のとおり:

  • ShowTimeCode: 引数の順番を「..., int "size", string "font", ...」から「..., string "font", int "size", ...」に変更(Subtitleフィルタに合わせるため)。
  • ShowTimeCode: 内部の変数を「ts_*」から「stc__*」に変更。
  • ShowTimeCodeEx 関数を追加。SubtitleEx プラグインを使用するバージョンです。

(2006-02-11 追記)

(2007-10-01 追記)

  • 2007-10-01: FTP アップロード時に改行コードが変更されるため、ZIP 形式での配布に変更した(バッチファイルの内容に変更はありません)。

(2008-03-22 追記)

  • 2008-03-22: AviSynth Wiki - ShowTimeCode にページを設置しました。これにともない、このページのダウンロードリンクを削除しました。

Page 7 of 28: « 3 4 5 6 7 8 9 10 11 »