分页: 1 / 4

現代版的Avisynth --> Vapoursynth 更新R22-test1 支持64bit

发表于 : 2012-10-03 5:37
manofman
雖然它還在開發階段,但都一個多月了,群內也有在討論,可這裡還是沒有相關主題,那我就做第一個吧。

Vapoursynth主頁
Doom9發布帖
開發頁

R22 test1 - 支持64bit
► 显示剧情透露 前言與Avisynth歷史

以下是Vapoursynth的一些賣點:
  1. Frame level multithreading -- 詳細就不清楚了,概念的話可以看這個作者描述,它的賣點就是開發者自己不需懂得多線程概念,他們只需要專心寫濾鏡就行了,把mt的運行全部留個vpy核心處理
  2. Memory 控制 -- 相比起avisynth,vapoursynth少很多。我測試了fft3dfilter+tnlmeans+mdegrain3,avs吃了660MB,vpy 155MB。就是說一般情況的話都會是100MB以下。
  3. Python語言編寫,支持多種操作系統,包括Windows, Mac
  4. 支持更多的顏色空間



看到這裡,若你覺得有興趣的話,可以到上面Vapoursynth的主頁下載。

安裝說明與Q&A

发表于 : 2012-10-03 5:37
manofman
懂英文的可以直接看官方:
http://www.vapoursynth.com/doc/installation.html

不懂英文的可以跟以下大概說明:
  1. 根據需要,下載python3.3 32bit或64bitVapoursynth(64bit Vapousynth需要安裝64bit Python)
  2. 先安裝Python,然後才安裝Vapoursynth,安裝程序會根據你Python的版本給出相應的Vapoursynth版本。Python默認路徑是 "C:\Python33\",vapoursynth默認路徑是 "C:\Python33\Lib\site-packages\"
  3. 確認python安裝,在 "開始-->運行" 內打上 "python" (不包括""),成功的話,python的exe會彈出來,還會顯示python版本號
  4. 確認vapoursynth安裝,運行python,然後一行一行的輸入,注意大小寫,成功的話會顯示vapoursynth版本號

    代码: 全选

    import vapoursynth as vs
    core = vs.get_core()
    print(core.version())
    

同時安裝32bit和64bit Vapoursynth:

步驟2,先安裝你想要默認的python版本,例如我主要想用64bit,那就先安裝64bit Python,然後才裝32bit,在安裝過程中的界面"Customize Python 3.xxx",下面的選項"Register Extensions",把它設為"Entire feature will be unavailable"。默認Python安裝路徑時要自定義另一個位置,就是64bit和32 bit Python各自有自己一個安裝路徑。

基本操作應用

发表于 : 2012-10-03 5:38
manofman
話說在前面,要純熟地運用Vapoursynth的話,要先學python語言。但是,對一般用戶的話,只需要記住幾個規則就可以了。懂英文的可以看官方這裡:
http://www.vapoursynth.com/doc/gettingstarted.html

Vapoursynth和Avisynth極為相似的,首先是保存一個 ".vpy" 文本,然後在裡面寫腳本。
先來的是兩行安全檢查。第一行是指定python路徑,第二行是指定python的encoding,如果你之後有用到中文的話,那uft-8就對了。然後,在保存文件時要把文本的encoding設為ANSI,一般來說,文本默認就已經是ANSI編碼的了。

注:這個對繁體中文系統無效

代码: 全选

#!/bin/env python
## coding: utf-8

之後就是在這個vpy文本導入vapoursynth。"accept_lowercase=True" 是指定之後用到的濾鏡允許用小寫,因為python本身是case sensitive。

代码: 全选

import vapoursynth as vs
import sys

core = vs.get_core(accept_lowercase=True)

之後就是導入濾鏡,方法和avisynth的loadplugin一樣。Vapoursynth有自己的核心濾鏡,用 "core.std.LoadPlugin" 呼叫,同時它也可以導入avs的濾鏡 "core.avs.LoadPlugin"。記住路徑前面要加 "r"。

代码: 全选

# 導入64bit vs濾鏡
core.std.LoadPlugin(r'C:\Program Files (x86)\VapourSynth\plugins64\ffms2.dll')

# 導入32bit avs濾鏡
core.avs.LoadPlugin(r"C:\Program Files (x86)\AviSynth 2.5\plugins\DGDecode.dll")

然後就是運用這些濾鏡,和avs不同,vpy是需要把操作過的東西保存在一個object,而且每個濾鏡function的第一個parameter都要是一個object,在這裡的意思就是視頻。

代码: 全选

src = core.ffms2.Source(r"xxx.avi")
src = core.std.trim(src, 0, 1000)
filt = core.avs.fft3dfilter(src, 10.0)

最後就是輸出,在R19版後,輸出的腳本寫法已經被統一,不再需要因應不同的輸出方法來改。

代码: 全选

src.set_output()

輸出方法有三種。

1. 第一種是透過vfw渠道,和avs一樣,可以透過vpy腳本在支持vpy的視頻編輯器或壓縮客戶端開啟/瀏覽,如virtualdub(最新版已支持vapoursynth)。



2. 第二種是VSFS文件系統的渠道。它會把你的vpy腳本mount成一個虛擬硬盤,硬盤裡有從你腳本所得出來的虛擬avi視頻。這個視頻能在播放器播放,當你滑鼠點擊選擇它時會顯示虛擬的文件容量,就有如用daemon tools虛擬iso文件一樣。這個輸出的用途是可以令到其他不支持vpy的視頻編輯軟件都能導入視頻。例如要把32bit的vpy掉進64bit的Adobe Premiere Pro裡處理。安裝說明看這裡


3. 第三種是vspipe。這是直接用命令行,配合壓縮編碼的命令直接壓縮,英文叫piping。下面是例子:

代码: 全选

vspipe "test.vpy" - -y4m | x264 --preset ultrafast --demuxer y4m --output "test.mkv" -
注意的是若沒有把vspipe.exe的路徑加到你系統的system variable的path上,那麼每次用vspipe時你都要把整個路徑寫上才能正常使用,如這樣:

代码: 全选

"c:\program files\vapoursynth\core\vspipe.exe" "test.vpy" - -y4m...
有興趣加的話可以看這個說明
http://www.howtogeek.com/118594/how-to- ... ne-access/

更新:
最新的vspipe已內置benchmark功能了,雖然還是很簡陋。空跑最後會顯示總幀數,總時間和fps。

代码: 全选

vspipe test.vpy NUL

Re: 【置顶】現代版的Avisynth --> Vapoursynth

发表于 : 2012-11-01 6:07
msg7086
不知道什么时候能跑起MCTD这样的脚本

Re: 【置顶】現代版的Avisynth --> Vapoursynth

发表于 : 2012-11-02 11:37
yabbay
目前avs用的滤镜能过渡过来的只有下面这4个么?

DGMPGDec – internal cropping ignored
MVTools – in some versions you have to delete AVSTP.dll
SangNom
UnDot

Re: 【置顶】現代版的Avisynth --> Vapoursynth

发表于 : 2012-11-07 14:48
gryphonheart
Python终于杀入压制领域了,没记错的话这个最早是葡萄牙某论坛的疯子们专门做粒子特效用的,套用Aegisub中的Automation (3)4 Lua自动化处理,貌似milkyjing编写的TCSUB(现在叫TCAX)字幕特效软件就是基于Python,感觉比AVS麻烦多了,期待ING...AVS 3.0估计下辈子也出不来了。

Re: 【置顶】現代版的Avisynth --> Vapoursynth

发表于 : 2012-11-10 10:33
akw28888
gryphonheart 写了:Python终于杀入压制领域了,没记错的话这个最早是葡萄牙某论坛的疯子们专门做粒子特效用的,套用Aegisub中的Automation (3)4 Lua自动化处理,貌似milkyjing编写的TCSUB(现在叫TCAX)字幕特效软件就是基于Python,感觉比AVS麻烦多了,期待ING...AVS 3.0估计下辈子也出不来了。
VS又不是python自己開發的 是別人開發用python平台而已
怎麼可以說是"Python终于杀入压制领域了"
根本不是Python自己做的

Re: 【置顶】現代版的Avisynth --> Vapoursynth

发表于 : 2012-11-12 2:24
gryphonheart
本来就是说这个平台杀入压制领域,当然这个平台以前还应用在LUA脚本特效生成上,从来没“特意”去指Python这个人
貌似milkyjing编写的TCSUB(现在叫TCAX)字幕特效软件就是基于Python
难道这软件不是基于平台开发的吗?或者是拿这人克隆出来的技术? 你国语学得挺好?

Re: 【置顶】現代版的Avisynth --> Vapoursynth

发表于 : 2012-11-13 18:28
akw28888
gryphonheart 写了:本来就是说这个平台杀入压制领域,当然这个平台以前还应用在LUA脚本特效生成上,从来没“特意”去指Python这个人
貌似milkyjing编写的TCSUB(现在叫TCAX)字幕特效软件就是基于Python
难道这软件不是基于平台开发的吗?或者是拿这人克隆出来的技术? 你国语学得挺好?
Python也不是叫做Python的人開發的

Re: 【置顶】現代版的Avisynth --> Vapoursynth

发表于 : 2012-11-13 19:03
cunhan
Python是一种编程语言,C++、Java、PHP跟等等一样。
@gryphonheart同学对python的认识也许比较狭窄有限,不过从语文的角度上,“Python终于杀入压制领域了”也没什么错,可以理解为“有人用python开发了VS这个平台”嘛。
在这个论坛互相考究语文也没什么意思。