スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

VapourSynth

VapourSynthという、Avisynthのかわりとなりうるものが開発されているそうです。



VapourSynthは、
AviSynthのかわりとして利用できる21世紀のフレームサーバー
を目指して開発されているそうです。ありがとうございます。

VapourSynth Website http://www.vapoursynth.com/
Doom9 Thread http://forum.doom9.org/showthread.php?t=165771
http://code.google.com/p/vapoursynth/source/checkout
VapourSynth 1.0 documentation http://vapoursynth.com/doc/index.html


※注意点
開発途上のため不具合がありえます。間違った使い方をしてPC強制終了することもあるかもしれません
人柱版の意味が分かり、有益な報告者となれる人は試してみてもよいかと思います


※注意点
このページは公式英語サイトを参照しながら読むための下書きメモのようなものです
当ブログの説明内容が間違っている場合もありえます。無保証。
今後仕様変更された場合当ブログの記事の内容が古く不適切になることがありえます。




もくじ

ダウンロード&インストール
0.利用可能環境の用意(Python3.3のインストール)
1.VapourSynthのインストール
2.VapourSynthのバージョン確認


使い方
プラグインリスト
vapoursynth.com/doc/pluginlist.html


サンプル
サンプル
簡易Q&A




ダウンロード&インストール
この記事は、VapourSynthのWindows環境へのインストールを想定しています。
Minimum Requirementsは以下の通りです。最近のPCなら大丈夫でしょう。
A CPU with SSE2 support (may be disregarded if not running on an x86 CPU)
XP SP3 or later (may be disregarded if not a windows user of course)




0.利用可能環境の用意(Python3.3のインストール)
 VapourSynthを利用するために必要な環境を用意します
 Python3.3をインストールしておく必要があります(r16時点)

 Python公式サイトから、インストーラをダウンロードします。
Python 3.3.0 Windows x86 MSI Installer (Windows binary -- does not include source)
MD5 checksums and sizes of the released files:
70062e4b9a1f959f5e07555e471c5657 19980288 python-3.3.0.msi


 Python3.3(x86,32bit版)のインストールをします。
 インストールの際、Pathを通しておく設定をしておきました。

  ※ほかに、VSFS使いたいなら入れとけというものがありますが今回はスルーで。
vapoursynth.com/doc/installation.html
 




Pythonが動くかどうか確認する?
Hello world.を表示してみるのが作法だと思われるのでそうしてみる

IDLE(Python GUI)を使って確認する場合、
print ('Hello world.')と打ち込んでみると
Hello world.と表示される。

もしくは、
最初のインストール時設定でコマンドプロンプトにパスを通してある場合には、
Python HelloWorld.pyてな感じでコマンドプロンプトで入力しても確認できる
とりあえずはこんなファイルを用意した。

HelloWorld.py
print ('Hello world.')

※Pythonを使う場合、文字コードはUTF-8Nで保存しておくとよいようです。
※UTF-8といっても、BOM付のをUTF-8、BOMなしのをUTF-8Nと呼ぶ場合があるらしい。


以下のようなbatファイルに、HelloWorld.pyをドラッグアンドドロップすれば、画面にHello world.とたぶん表示される。
sample_DandD_for_Python.bat
@echo off
setlocal

if not "%~x1" == ".py" goto end
:bat_start

Python "%~1"

endlocal
pause
exit /b


:end
echo 入力されたファイルはpyファイルではありません。
endlocal
pause
exit











1.VapourSynthのインストール
インストーラーを使うだけ。

r16ならvapoursynth-r16.exe
r15ならvapoursynth-r15.exe
r14ならvapoursynth-r14.exe
r13ならvapoursynth-r13.exeというような感じで配布されている。
数字が大きい方が新しい。更新内容がどんな感じか見ておくとよいです

他のフィルタが必要ならあとでそれも用意する。

Core r16(API r3)
Core r15(API r3)
Core r14(API r2)
Core r13(API r2)



2.VapourSynthのバージョン確認
Pythonのコマンドラインで以下のを一行ずつ入力して確認するとか書いてある
>>>と表示されているところに各行を入力していき、3行目を入力してエンターキー押したらバージョンが表示されます

import vapoursynth as vs
c = vs.Core()
print(c.version())



こんな感じで表示されます。
VapourSynth Video Processing Library
Copyright (c) 2012 Fredrik Mellbin
Core r16
API r3






2-2.VapourSynthのバージョン確認(スクリプトファイルを、batファイルにドラッグアンドドロップ)
対話モードで1行ずつ入力するのは面倒…。
batファイルでやるなら下のようなファイル(version_VapourSynth.py)を
上で書いたsample_DandD_for_Python.batにDandDして放り込む。
(Pathが通っている必要があります)


version_VapourSynth.py(↓のだとlist_functionの表示もされます。)
import vapoursynth as vs
c = vs.Core()
print(c.version())
print(c.list_functions())



以下のように表示される。
VapourSynth Video Processing Library
Copyright (c) 2012 Fredrik Mellbin
Core r16
API r3

VapourSynth Avisynth Compatibility
namespace: avs
identifier: com.vapoursynth.avisynth
LoadPlugin(path:data;)
VapourSynth Resize
namespace: resize
identifier: com.vapoursynth.resize
Bicubic(clip:clip; width:int:opt; height:int:opt; format:int:opt; yuvrange:int:opt;)
Bilinear(clip:clip; width:int:opt; height:int:opt; format:int:opt; yuvrange:int:opt;)
Gauss(clip:clip; width:int:opt; height:int:opt; format:int:opt; yuvrange:int:opt;)
Lanczos(clip:clip; width:int:opt; height:int:opt; format:int:opt; yuvrange:int:opt;)
Point(clip:clip; width:int:opt; height:int:opt; format:int:opt; yuvrange:int:opt;)
Sinc(clip:clip; width:int:opt; height:int:opt; format:int:opt; yuvrange:int:opt;)
Spline(clip:clip; width:int:opt; height:int:opt; format:int:opt; yuvrange:int:opt;)
VapourSynth Core Functions
namespace: std
identifier: com.vapoursynth.std
AddBorders(clip:clip; left:int:opt; right:int:opt; top:int:opt; bottom:int:opt;)
AssumeFPS(clip:clip; src:clip:opt; fpsnum:int:opt; fpsden:int:opt;)
BlankClip(clip:clip:opt; width:int:opt; height:int:opt; format:int:opt; length:int:opt; fpsnum:int:opt; fpsden:int:opt; color:int[]:opt;)
Cache(clip:clip; size:int:opt; fixed:int:opt;)
ClipToProp(clip:clip; mclip:clip; prop:data:opt;)
CropAbs(clip:clip; width:int; height:int; x:int:opt:link; y:int:opt:link;)
CropRel(clip:clip; left:int:opt; right:int:opt; top:int:opt; bottom:int:opt;)
DoubleWeave(clip:clip; tff:int;)
FlipHorizontal(clip:clip;)
FlipVertical(clip:clip;)
Interleave(clips:clip[]; mismatch:int:opt;)
LoadPlugin(path:data; forcens:data:opt;)
Loop(clip:clip; times:int:opt;)
Lut(clip:clip; lut:int[]; planes:int[];)
Lut2(clips:clip[]; lut:int[]; planes:int[];)
MaskedMerge(clips:clip[]; mask:clip; planes:int[]:opt; first_plane:int:opt;)
Merge(clips:clip[]; weight:float[]:opt;)
ModifyFrame(clips:clip[]; selector:func;)
PEMVerifier(clip:clip; upper:int[]:opt; lower:int[]:opt;)
PlaneAverage(clip:clip; plane:int; prop:data:opt;)
PlaneDifference(clips:clip[]; plane:int; prop:data:opt;)
PropToClip(clip:clip; prop:data:opt;)
Reverse(clip:clip;)
SelectClip(clips:clip[]; src:clip[]; selector:func;)
SelectEvery(clip:clip; cycle:int; offsets:int[];)
SeparateFields(clip:clip; tff:int;)
ShufflePlanes(clips:clip[]; planes:int[]; format:int;)
Splice(clips:clip[]; mismatch:int:opt;)
StackHorizontal(clips:clip[];)
StackVertical(clips:clip[];)
Transpose(clip:clip;)
Trim(clip:clip; first:int:opt; last:int:opt; length:int:opt;)
Turn180(clip:clip;)



Function Reference
vapoursynth.com/doc/functions.html







3.VSFS (VapourSynth FileSystem)のインストール(必要な場合)
必要な場合、インストールします。ASVSみたいなやつだとか。
r14を使う場合、r13までとはパスが異なるため登録し直す必要があるとか。

※0.にてスルーしたこれ
Pismo File Mount Audit Package (only if you want to use the advanced virtual filesystem features)
をあらかじめインストールしておく必要があります。


VSFS (VapourSynth FileSystem)

VSFS is based on AVFS and shares most its source code and functionailty with it. This package has several uses, it can easily make a script file openable by any application as it appears like a real, uncompressed avi file. It can also be used to bridge the 32/64bit gap since a plain file can always be read. For instructions on how to enable it see the installation instructions.
vapoursynth.com/doc/vsfs.html




VapourSynthの使い方。
こんなこともできるよという作者さんのサンプル
import vapoursynth as vs
# needed for stdout
import sys
# create a core instance
core = vs.Core()
# load a native vapoursynth plugin
# you should use absolute paths as the working directory may not be what you think it is
core.std.LoadPlugin(path=r'c:\plugins\ffms2.dll')
# load an avisynth plugin
# the loaded functions will always end up in the avs namespace
core.avs.LoadPlugin(path=r'c:\avisynth\UnDot.dll')
# open a video file, ret is now a clip object
ret = core.ffms2.Source(source='Super Size Me.avi')
# apply the undot filter to the video
ret = core.avs.UnDot(clip=ret)
# output the clip to stdout with y4m headers (useful for encoding with x264/mplayer)
ret.output(sys.stdout, y4m=True)

vapoursynth.com/doc/gettingstarted.html
※#の行はコメントです(メモなどに利用できます)






Q.ファイルパスを書くときに\がエラーになる?(メモ帳等で見た場合、\は半角の¥です)
A.\がPythonのエスケープ文字だとかでエラーが生じるとか。下の例でrが付いているのはそのため。
正しい書き方3つが紹介されている。rをつけるのが一番簡単でミスも防げる。
①\のかわりに/をつかう
②\のまま書くにはrをつける。
③\\というようにしてもよい。
# Causes an error because \ is Python's escape character
LoadPlugin(path='c:\plugins\filter.dll') ←まちがい ↓せいかい
# The correct way(s)
LoadPlugin(path='c:/plugins/filter.dll')
LoadPlugin(path=r'c:\plugins\filter.dll')
LoadPlugin(path='c:\\plugins\\filter.dll')

vapoursynth.com/doc/functions/loadpluginavs.html



Q.TFMとTDecimate使おうとしたら、フレームごと延々とこんなのが出てこわいじぇ…
Avisynth Compat: requested frame XXX not prefetched, using slow method that may deadlock

A.エラーじゃなくて単なる警告。TDecimate使って先読みできないから。
ttp://forum.doom9.org/showthread.php?p=1593340#post1593340
ttp://forum.doom9.org/showthread.php?p=1590809#post1590809




Q.Avisynthの内蔵フィルタをつかうには?
A.作者さんのプラグインがあります。ありがとうございます
Bob()は動かないとか、ほかにも動かないフィルタがあるかもとか注意書きがあります。
http://forum.doom9.org/showthread.php?p=1594521#post1594521


内蔵フィルタ、どんなのがあるか表示する?
version_VapourSynth5(avisynthfilter).py
import vapoursynth as vs
import sys
core = vs.Core()

# Import plugins
core.avs.LoadPlugin('C:/Program Files/VapourSynth/plugins/avisynthfilters.dll')
print(core.avs.list_functions())

これを、上で書いたsample_DandD_for_Python.batにDandDして放り込むと(Pathが通っている必要があります)、
avisynthfilters.dllで利用できるフィルタ一覧が下のように表示できる

BicubicResize(c1:clip; i2:int; i3:int; b:float:opt; c:float:opt; src_left:float:opt; src_top:float:opt; src_width:float:opt; src_height:float:opt;)
BilinearResize(c1:clip; i2:int; i3:int; src_left:float:opt; src_top:float:opt; src_width:float:opt; src_height:float:opt;)
BlackmanResize(c1:clip; i2:int; i3:int; src_left:float:opt; src_top:float:opt; src_width:float:opt; src_height:float:opt; taps:int:opt;)
Blur(c1:clip; f2:float; amount:float:opt; mmx:int:opt;)
Bob(c1:clip; b:float:opt; c:float:opt; height:int:opt; tff:int:opt;)
ColorYUV(c1:clip; gain_y:float:opt; off_y:float:opt; gamma_y:float:opt; cont_y:float:opt; gain_u:float:opt; off_u:float:opt; gamma_u:float:opt; cont_u:float:opt; gain_v:float:opt; off_v:float:opt; gamma_v:float:opt; cont_v:float:opt; levels:data:opt; opt:data:opt; matrix:data:opt; showyuv:int:opt; analyze:int:opt; autowhite:int:opt; autogain:int:opt;)
Compare(c1:clip; c2:clip; channels:data:opt; logfile:data:opt; show_graph:int:opt;)
GaussResize(c1:clip; i2:int; i3:int; src_left:float:opt; src_top:float:opt; src_width:float:opt; src_height:float:opt; p:float:opt;)
Histogram(c1:clip; mode:data:opt;)
HorizontalReduceBy2(c1:clip;)
Info(c1:clip;)
Lanczos4Resize(c1:clip; i2:int; i3:int; src_left:float:opt; src_top:float:opt; src_width:float:opt; src_height:float:opt;)
LanczosResize(c1:clip; i2:int; i3:int; src_left:float:opt; src_top:float:opt; src_width:float:opt; src_height:float:opt; taps:int:opt;)
Levels(c1:clip; i2:int; f3:float; i4:int; i5:int; i6:int; coring:int:opt;)
Limiter(c1:clip; min_luma:int:opt; max_luma:int:opt; min_chroma:int:opt; max_chroma:int:opt; show:data:opt;)
LoadPlugin(path:data;)
Merge(c1:clip; c2:clip; weight:float:opt;)
MergeChroma(c1:clip; c2:clip; chromaweight:float:opt;)
MergeLuma(c1:clip; c2:clip; lumaweight:float:opt;)
Overlay(c1:clip; c2:clip; x:int:opt; y:int:opt; mask:clip:opt; opacity:float:opt; mode:data:opt; greymask:int:opt; output:data:opt; ignore_conditional:int:opt; PC_Range:int:opt;)
PointResize(c1:clip; i2:int; i3:int; src_left:float:opt; src_top:float:opt; src_width:float:opt; src_height:float:opt;)
RGBAdjust(c1:clip; r:float:opt; g:float:opt; b:float:opt; a:float:opt; rb:float:opt; gb:float:opt; bb:float:opt; ab:float:opt; rg:float:opt; gg:float:opt; bg:float:opt; ag:float:opt; analyze:int:opt;)
ReduceBy2(c1:clip;)
Sharpen(c1:clip; f2:float; amount:float:opt; mmx:int:opt;)
ShowFrameNumber(c1:clip; scroll:int:opt; offset:int:opt; x:int:opt; y:int:opt; font:data:opt; size:float:opt; text_color:int:opt; halo_color:int:opt; font_width:float:opt; font_angle:float:opt;)
ShowSMPTE(c1:clip; fps:float:opt; offset:data:opt; offset_f:int:opt; x:int:opt; y:int:opt; font:data:opt; size:float:opt; text_color:int:opt; halo_color:int:opt; font_width:float:opt; font_angle:float:opt;)
ShowTime(c1:clip; offset_f:int:opt; x:int:opt; y:int:opt; font:data:opt; size:float:opt; text_color:int:opt; halo_color:int:opt; font_width:float:opt; font_angle:float:opt;)
Spline16Resize(c1:clip; i2:int; i3:int; src_left:float:opt; src_top:float:opt; src_width:float:opt; src_height:float:opt;)
Spline36Resize(c1:clip; i2:int; i3:int; src_left:float:opt; src_top:float:opt; src_width:float:opt; src_height:float:opt;)
Spline64Resize(c1:clip; i2:int; i3:int; src_left:float:opt; src_top:float:opt; src_width:float:opt; src_height:float:opt;)
Subtitle(c1:clip; s2:data; x:int:opt; y:int:opt; first_frame:int:opt; last_frame:int:opt; font:data:opt; size:float:opt; text_color:int:opt; halo_color:int:opt; align:int:opt; spc:int:opt; lsp:int:opt; font_width:float:opt; font_angle:float:opt; interlaced:int:opt;)
TemporalSoften(c1:clip; i2:int; i3:int; i4:int; scenechange:int:opt; mode:int:opt;)
Tweak(c1:clip; hue:float:opt; sat:float:opt; bright:float:opt; cont:float:opt; coring:int:opt; sse:int:opt; startHue:float:opt; endHue:float:opt; maxSat:float:opt; minSat:float:opt; interp:float:opt;)
VerticalReduceBy2(c1:clip;)










Q.VapourSynth用のプラグイン(Native Plugins等)はありますか?
A.公開されているものの一部です。ありがとうございます。
http://vapoursynth.com/doc/pluginlist.html

AviSynth Script Reader for VapourSynth
namespace: avsr
identifier: chikuzen.does.not.have.his.own.domain.avsr
Eval(lines:data; bitdepth:int:opt;)
Import(script:data; bitdepth:int:opt;)


Image reader for VapourSynth 0.1.0
namespace: imgr
identifier: chikuzen.does.not.have.his.own.domain.imgr
Read(files:data[]; fpsnum:int:opt;fpsden:int:opt)


Raw-format file Reader for VapourSynth 0.2.0
namespace: raws
identifier: chikuzen.does.not.have.his.own.domain.raws
Source(source:data; width:int:opt; height:int:opt; fpsnum:int:opt; fpsden:int:opt; src_fmt:data:opt; header_off:int:opt; frame_off:int:opt;rowbytes_align:int:opt)


VapourSynth TemporalSoften Filter
namespace: focus
identifier: com.focus.temporalsoften
TemporalSoften(clip:clip; radius:int:opt; luma_threshold:int:opt; chroma_threshold:int:opt; scenechange:int:opt;mode:int:opt)


VapourSynth Histogram Plugin
namespace: hist
identifier: com.nodame.histogram
Classic(clip:clip;)
Color(clip:clip;)
Color2(clip:clip;)
Levels(clip:clip; factor:float:opt;)
Luma(clip:clip;)


EEDI3
namespace: eedi3
identifier: com.vapoursynth.eedi3
eedi3(clip:clip; field:int; dh:int:opt; planes:int[]:opt; alpha:float:opt; beta:float:opt; gamma:float:opt; nrad:int:opt; mdis:int:opt; hp:int:opt; ucubic:int:opt; cost3:int:opt; vcheck:int:opt; vthresh0:float:opt; vthresh1:float:opt; vthresh2:float:opt; sclip:clip:opt;)

VFM
namespace: vivtc
identifier: org.ivtc.v
VDecimate(clip:clip; cycle:int:opt; chroma:int:opt; dupthresh:float:opt; scthresh:float:opt; blockx:int:opt; blocky:int:opt; clip2:clip:opt;)
VFM(clip:clip; order:int; field:int:opt; mode:int:opt; mchroma:int:opt; cthresh:int:opt; mi:int:opt; chroma:int:opt; blockx:int:opt; blocky:int:opt; y0:int:opt; y1:int:opt; scthresh:float:opt; micmatch:int:opt; micout:int:opt; clip2:clip:opt;)







拡張子は.py(または.vpy)

sample_DandD_for_VapourSynth.bat
※Pythonインストール時にPathを通してある場合に使えます。
@echo off
setlocal

if not "%~x1" == ".py" goto end
:bat_start

rem inputfile(.py or .vpy)
python "%~1" | x264 --demuxer y4m --output encodedfile.mp4 -

rem python %~1 | x264 --demuxer y4m --crf 21 --level 4.1 --keyint 300 --min-keyint 1 --scenecut 65 --bframes 3 --8x8dct --trellis 2 --ref 3 --mixed-refs --subme 6 --no-fast-pskip --sar 1:1 --no-dct-decimate --output temp.mp4 -

endlocal
pause
exit /b


:end
echo 入力されたファイルはpyファイルではありません。
endlocal
pause
exit /b



その1
test.py
半角の¥が\と表示されています。コピペしてメモ帳でみれば半角¥だとわかります。
半角の¥をつかうため、先頭にrがついています。半角¥¥や/を使う場合はrは必要ありません。
import vapoursynth as vs
import sys
core = vs.Core()

# plugins
core.avs.LoadPlugin(r'C:\Program Files\AviSynth 2.5\plugins\DGDecode.dll')

# load source
video = core.avs.MPEG2Source(d2v=r"E:\Videos\test.d2v")

# Trim
video = core.std.Trim(video,249,543)

video = core.std.CropRel(video,0,0,0,8)
video.width,video.height
video = core.resize.Lanczos(video,1280,720)
video.output(sys.stdout,y4m=True)




その2





その5(vsavsreader利用)
test5.py
AviSynth Script Reader plugin for VapourSynth (vsavsreader.dll)
requirement:
VapourSynth-r9 or later
AviSYnth2.6alpha3 or later
sse2 capable cpu


# Core
import vapoursynth as vs
import sys
core = vs.Core(accept_lowercase=True)

# Import plugins
core.std.LoadPlugin('C:/Program Files/VapourSynth/plugins/vsavsreader.dll')

# Use "Import" to load interleaved MSB/LSB Avisynth script.
clip = core.avsr.Import('D:/encode20120916_for_VapourSynth/script.avs')

# Output to File
clip.output(sys.stdout,y4m=True)





その











簡易Q&A
Q.VapourSynthってなに?
A.21世紀版のAviSynthを目指しているようです(※ブログ管理人による雑な説明…。)
 ※AviSynthとPythonの知識が必要だと思われます

Avisyhth2.5のプラグインが使える(まだ動作しないのもあるかも…。デッドロックするのも…。)
マルチスレッドでつかえる。
※ただし、Pythonで記述…

www.vapoursynth.com
csbarn.blogspot.com/2012/09/vapoursynth.html
avisynth.info


Q.VapourSynthとAvisynthの違いは?
A.主な機能は以下のようになっています。
Multithreaded - Frame level multithreading that scales well
Generalized Colorspaces - New Colorspaces can be specified at runtime
Per Frame Properties - Additional metadata can be attached to frames
Python Based - The scripting part is implemented as a Python module so you don’t have have to learn a special language
Support for video with format changes - Some video just can’t stick to one format or frame size VapourSynth can handle any kind of change
Compatible with a large number of already existing Avisynth plugins

※現状、Vapoursynthでは音声は利用できないと思います



Q.使えるプラグインは?
A.ここにリストがあります
vapoursynth.com/doc/pluginlist.html
ここには、
VapourSynthで使えるネイティブプラグイン
Avisynth2.5プラグインのうち使えるもの
が書かれてます、


Avisynth functions and their VapourSynth equivalents
vapoursynth.com/doc/avisynthcomp.html


Installation Instructions
vapoursynth.com/doc/installation.html

Getting Started
vapoursynth.com/doc/gettingstarted.html










Q.Avisynthって?
A.Avisynthとは(以下略)avisynth.info参照。

Q.Pythonって?
A.Python(パイソン)はプログラミング言語です。

Q.AVSをつかうには?
A.AviSynth Script Reader plugin for VapourSynth があります

必要な環境
requirement:
VapourSynth-r9 or later
AviSYnth2.6alpha3 or later
sse2 capable cpu


https://github.com/chikuzen/VS_AvsReader
ありがとうございます

vpy
ttp://www.vapoursynth.com/getting-started/


Avisynth用プラグインの利用
※VapourSynthでは、Avisynth2.5xプラグインを利用可能ですが、内蔵フィルタを利用する場合など一部仕様が異なる場合があります


VapourSynth用プラグイン
■プレビューするには?(AviUtlだと失敗するとエクスプローラーごと落ちる危険あり。Ctrl+Alt+Delを忘れない
csbarn.blogspot.com/2012/09/vfw-module.html

test_preview.vpy
AviUtl 0.99k以降に放り込めばプレビューできる。TeraPadとかサクラエディタとかで文字コードUTF-8Nで保存。ANSIでも可。
import vapoursynth as vs
import sys
core = vs.Core()
core.std.LoadPlugin('C:/Program Files/AviSynth 2.5/plugins/ffms2.dll')
clip = core.ffms2.Source('D:/encode20120916_for_VapourSynth/test.mp4')
clip = core.resize.Bicubic(clip=clip, format=vs.COMPATYUY2)
last = clip





■vsavsreader(VapourSynthでavs読み込み)
csbarn.blogspot.com/2012/09/vsavsreaderdll.html
csbarn.blogspot.com/2012/10/vsavsreaderdll-5.html
https://github.com/chikuzen/VS_AvsReader
http://www.mediafire.com/download.php?su989bbxajhxfm8

■vsrawsource(Raw Video Reader for VapourSynth)
csbarn.blogspot.com/2012/10/vsrawsource.html
csbarn.blogspot.com/2012/10/vsrawsource-2.html
https://github.com/chikuzen/vsrawsource
http://www.mediafire.com/?h88jgj4zj9iyz4s

■image reader for VapourSynth
http://www.mediafire.com/download.php?jlvjdomte1h8xcy
http://www.mediafire.com/download.php?ojj9409j149s0uq
http://www.mediafire.com/download.php?45jettkhk4rhchn

source code
https://github.com/chikuzen/vsjpgreader
https://github.com/chikuzen/vsbmpreader
https://github.com/chikuzen/vspngreader


csbarn.blogspot.com/2012/10/p216p21x-vfw-reader-for-aviutl.html

VapourSynth用のプラグインも開発されているようです。ありがとうございます。



■x264
x264更新.VSのhigh bit-depth y4mに対応.
http://k4095-takuan.blogspot.jp/2012/11/x264vshigh-bit-depth-y4m.html



memo
http://forum.doom9.org/showthread.php?t=165771
http://forum.doom9.org/showthread.php?t=165957
http://forum.doom9.org/showthread.php?t=166088
https://gist.github.com/3804501
csbarn.blogspot.com/2012/09/vapoursynth_21.html
code.google.com/p/vapoursynth/source/checkout


Known broken avisynth filters:
ColorMatrix - uses env->invoke()
Quirky filters:
TIVTC package - may break with some operating modes


The easiest way to pipe to x264:
Code:

1. Import the sys module in your python script.
2. To output a clip to stdout simply add "someclip.output(sys.stdout, y4m=True)" to your script.
3. Run the script with this command: python script.py | x264 --demuxer y4m --output encodedfile.mkv -
(only works for yuv formats with an y4m header value)


Code:

known issues:
may deadlock with some avisynth plugins (set the number of threads to a bigger number, VSCore(threads=4))
compatrgb32 may be flipped when output (use FlipVertical as a workaround)
.vpy files need to be opened with file\open and then select avifile compat from the format list before selecting the .vpy script (this is a vdub limitation)

r16:
fixed a MaskedMerge reference leak under some rare conditions
added a check for CPU features on x86, will now return an error if SSE2 isn't present
fixed an issue in avisynth compatibility caused by stricter internal checks

r15:
documented all the predefined frame properties and all important python classes
fixed iterating over clips in python
allocate memory per plane instead of in one big lump, this allows planes to be copied by reference using the newVideoFrame2() function and will also reduce memory usage slightly for filters that use it
fixed infinite loop in lut and lut2 when used with 9 bit input or more
added ClipToProp and PropToClip functions, they allow one clip to be attached to another clip as frame properties
fixed a reference leak in vivtc
ported avisource from avisynth, it has been thoroughly upgraded and can understand several high bitdepth formats including v210 which many "professional" codecs use, it is also based on the latest vdub parser code now
added len() support for clips in python
fixed a bug with plugin functions having array output in python
improved the api so that a single node/filter can produce several output clips, this bumps the api version to r3 (r2 plugins are still binary compatible but the r2 abi will also be removed in a version or two)

r14:
fixed setting the pixel values in blankclip
a collection of ported/new filters are now bundled (eedi3, vivtc, histogram and temporalsoften)
all examples and headers needed to write a new filter are now included in the installer
fixed a frame data alignment issue in VSFS
added vivtc (aka tivtc lite) to the included filters
the fpu state check now only outputs a warning instead of terminating (this is until I've been able to locate why certain people trigger it)
users can now set the cache size limit over which vs aggressively starts to decrease cache size, use core.set_max_cache_size(number of MB) (the memory use is calculated from the combined size of all framebuffers allocated)
fixed memory leaks in PlaneDifference and PlaneAverage

r13:
enabled another part of the cache size adjustment, cache sizes will now be aggressively reduced to keep framebuffer memory use below 1GB
filters can now get passed zero length arrays, the rewritten parts also improves argument handling in python (integer types now get converted to float implicitly when passed as a function argument)
added right click\new\vapoursynth script shortcut to the installer
make the number of frames in progress equal the number of threads, this should always be the upper beneficial value for any script, previously it was fixed at 10
fixed a rowsize bug in avisynth compatibility and implemented the subframe functions
added PEMVerify, a function to check for out of bounds values in filter output for developers
added PlaneDifference and PlaneAverage functions for use in conditional filtering
added copy(), and get_write_ptr() to clips in python, renamed get_data() to get_read_ptr()
greatly improved the handling of SelectClip and ModifyFrame (formerly ModifyProps), conditional filtering is now something that's usable
using ModifyFrame and a bit of cleverness it is now possible to implement fairly complex filters in python

r12:
fixed a scheduling error for fmParallelRequests filters (all avisynth filters and several internal ones)
added a bit more documentation, this time a bit about python and the classes found there
added vsfs, a port of avfs
v210 output support, add enable_v210=True to use it
removed support for clips with unknown length from vfw
can now open files with unicode filenames in vfw
fixed some minor bugs and compiler warnings



known issues:
absolute paths usually needed to load plugins
may deadlock with some avisynth plugins (set the number of threads, VSCore(threads=4))

r3:
fixes even more threading and performance issues
adds special support for yuy2 and rgb32 so most avisynth filters should work
added hacks to make mvtools2 work

r2:
fixes a large number of threading issues
removed the stupid clip.vi.width thing in python, now it's simply clip.width
fixed the frame reordering in the python bindings, now frames pop out in the expected order

r1:
buggy first version






----
avs(AviSynth script file)
y4m(yuv4mpegpipe)
YUV4MPEG (*.y4m)


csbarn.blogspot.com/2011/07/avs2yuv_09.html

lavf
avisynth demuxer




AmazonベストセラーTOP5
アニメ(BD/DVD)
ライトノベル
コミック
フィギュア・ドール
アニメゲームmusic

コメントの投稿

非公開コメント

プロフィール

空に架かる橋

Author:空に架かる橋
FC2ブログへようこそ!
このブログについて(プライバシーポリシー)
Amazon.co.jpアソシエイト
こちらのブログはたまに各種実験会場となるため、デザイン変更等により表示が遅くなったり、文字が読みにくかったりする場合があります。 そのうちなおりますm(_ _)m
記事の内容に問題がある場合は、ただちに記事内容の利用をやめてください。

カウンター

現在の閲覧者数:

DTV研究
検索フォーム
カテゴリ
PT3 (3)
最新記事
最新コメント
最新トラックバック
月別アーカイブ
Amazonランキングテスト3.2
内容:

カテゴリー:

ノード:

アダルトを
選択しない 表示しない
※カテゴリー変更後に有効
RSSへのリンク
TGテストエリア
テストエリアb
AmazonベストセラーTOP5
アニメ(BD/DVD)
ライトノベル
コミック
フィギュア・ドール
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。