Category:Home/library/pixels (Total 1 items)

Categories - library/pixels

Quicktime

注)本家の解説の適当な訳です。

Description

Nodebox QuicktimeライブラリはNodeBoxへムービー(と音声)サポートを追加する。
ムービーから画像イメージフレームを掴むことに利用でき、それをNodeboxで表示したり、Core Imageで扱ったりできる。
さらに、このライブラリはNodeBoxでの音声の再生に利用出来、オーディオセクションを作ったり、スクリプトから音量やレートをコントロール出来る。

Documentation

How to get the library up and running

ダウンロードしたquicktimeフォルダを~/Library/Application Support/NodeBox/ もしくは(あなたのスクリプトと同じように)Nodeboxがライブラリを探せるように同じフォルダ内に入れる。
それであなたのスクリプトへライブラリがimportされる。

quicktime = ximport("quicktime")

Movie frames

Quicktime ライブラリはmovie()コマンドをもっている。
これは、与えられたロケーションからムービーを開く。
QuickTimeアプリケーションから通常開くことの出来るムービーならばどのようなtypeでも開くことが可能である。

movie(path)

コマンドはいくつかの有用なプロパティーと共にMovie objectを返す。

  • movie.path:ソースのパス
  • movie.duration:ムービーの長さ(秒)
  • movie.has_video:ムービーがビデオトラックを持っていればTrue
  • movie.has_audio:ムービーがオーディオトラックを持っていればTrue
  • movie.width:ムービーの幅(ピクセル)
  • movie.height:ムービーの高さ(ピクセル)

返されたmovie objectはイメージフレームを掴む為の二つのmethodを持つ。

movie.frame(time)
movie.frames(n=10, start=0, stop=None)

frame()メソッドは与えられた時間(秒)でのムービー内の画像データのMovieFrame objectを返す。
frames()メソッドは与えられた開始、終了時間(秒)の間のMovieFrame objectとリストを返す。
start stopパラメータはオプションである。

movie frame objectは次のプロパティーを持つ。

  • frame.data:イメージデータをimage()コマンドへ渡すことが出来る。
  • frame.time:frameがムービーのどこにあるかの時間。
  • frame.src:このframeが属するムービーのソースパス
  • frame.width
  • frame.height

NodeBoxへフレームを表示するのは、本当にとても簡単です。
次のスクリプトは全てのフレームをアニメーションでループします。

movie = quicktime.movie("twisted_world.mp4")
size(movie.width, movie.height)
speed(50)
def draw():
    frame = movie.frame(FRAME*0.1)
    image(None, 0, 0, data=frame.data, width=frame.width)

Movie frames in Core Image

Quicktime ライブラリと、Core Imageライブラリは、本当に一緒によく使う。
movie.frame()もしくはmovie.frames()リストから得られたMovieFrame object はCore Imageで、canvas.layer()オブジェクトを通すことが出来る。
それによって、あなたは色々なフィルターやエフェクトを使うことが出来る。

coreimage = ximport("coreimage")
quicktime = ximport("quicktime")

movie = quicktime.movie("twisted_world.mp4")
frame = movie.frame(1.0)

canvas = coreimage.canvas(movie.width, movie.height)
l = canvas.layer(frame)
l.filter_zoomblur()
canvas.draw()

Audio playback

Quicktime ライブラリはaudio()コマンドをもっている。
これは与えられたロケーションから音声ファイルを開くことが出来る。 QuickTimeアプリケーションから通常開くことの出来る音声ファイルならばどのようなtypeでも開くことが可能である。

audio(path)

このコマンドはいくつかの有用なプロパティーと共にAudio objectを返す。

  • audio.path:ソースパス
  • audio.duration:音声ファイルの長さ(秒)
  • audio.has_video: ビデオトラックがあればTrue
  • audo.has_audio: 音声ファイルがあればTrue
  • audio.volume:音声再生時の音量(0.0から2.0)
  • audio.time: 音声ファイルの現在の再生時間(秒)
  • audio.rate: オーディオの再生レートもしくはスピード(0.25から5.0)
  • audio.paused: オーディオがポーズされる(停止ではなくて)とTrue

返されたaudio objectは再生をコントロールするいくつかのメソッドを持つ。

audio.play()
audio.stop()
audio.pause()
audio.is_playing()
audio.reset()

audio.is_playing() methodはNodeBoxで音声が再生中な限り、Trueを返す。
再生中の音声はvolumeとrateを調節出来る。
それはtimeプロパティーで再生し始めるであろう。
audio.reset()メソッドはvolumeと、timeと、rateをデフォルトに戻す。(それぞれ0,0,1)

このライブラリはNodeBoxから音声を書き出しする機能は無い。

Copying and pasting selections

時々、ムービー全体の代りに、ムービーの選択部分で動作させたいとか、一秒のサンプルをループさせたいとか思うかもしれない。
movieとaudioどちらのオブジェクトもselection()メソッドを持つ。

media.selection(start=0, stop=None)

与えられたstart stop time間の新しいmovieもしくはaudioオブジェクトを返す。
例えば、これは音声の断片からショートループを作る方法である。

audio = quicktime.audio("modron_cube.mp3")
audio = audio.selection(start=0, stop=7.2)
speed(100)
def draw():
    if not audio.is_playing:
        audio.play()
  • Comments (Close): 0
  • TrackBack (Close): 0

Category:Home/library/pixels (Total 1 items)

Entries in this Category
Tutorial
Library
Syndicate this site

RSS 1.0 Feed

Return to page top