1. 程式人生 > >新興視訊處理工具VapourSynth壓制教程

新興視訊處理工具VapourSynth壓制教程

VapourSynth作為一個開源的非線性視訊處理frameserver,相比於已經停滯開發或者說是開發慢了點的AviSynth,有著全新的處理架構,同時使用Python作為指令碼書寫語言,處理上更為科學,原生支援多執行緒處理,支援更多的顏色空間,良好的記憶體控制,可跨平臺使用,有32bit和64bit版本,同時支援Avisynth外掛載入。

  1. VapourSynth安裝:
    以64bit安裝為例,先安裝64bit的Python3.6,並將Python的安裝路徑加入到系統PATH變數中,再安裝64bit的VapourSynth。這兩個都可以安裝再C盤根目錄下。
    64bit的Python3.6下載:
    https://www.python.org

    安裝完成之後,開啟cmd,進入Python的互動命令模式,輸入以下程式碼以測試VapouSynth是否安裝成功:

import vapoursynth as vs
core = vs.get_core()
print(core.version())
如果沒有問題,就會顯示如下內容:
VapourSynth Video Processing Library
Copyright (c) 2012-2017 Fredrik Mellbin
Core R38
API R3.5
Options: -
2. 由於VapourSynth使用的指令碼語言是Python,所以這裡有必要預先有一定的程式設計基礎,至少要有簡單的Python基礎。
VS的外掛分兩類,一類是編譯好的dll,一類是寫好的library(py)。前者預設放置位置是VapourSynth\plugins64,後者是Python\Lib\資料夾。
Mawen250的VapourSynth分享包:
https://pan.baidu.com/s/1mgGNQMc#list/path=/VapourSynth
包含了一些常用的vs dll外掛和py庫,vs的除錯工具VapourSynth Editor,VapourSynth安裝包。
安裝好vs外掛之後,我們需要安裝vs的除錯工具,vsedit:
下載:https://bitbucket.org/mystery_keeper/vapoursynth-editor/downloads
一般選擇最新的64bit版本下載。
vs指令碼一般以vpy作為結尾。這裡我們可以用這個簡單的指令碼來測試效果:
```python
import vapoursynth as vs
import sys
core = vs.get_core(accept_lowercase=True,threads=4)
core.max_cache_size = 4000
accept_lowercase=True #是指定之後用到的濾鏡允許使用小寫,因為Python區分大小寫。
#threads=4指定最大使用的執行緒數。
core.max_cache_size = 4000#指定使用的最大的記憶體
a=r"C:/Users/Administrator/Desktop/6.264"
#a="6.264"一句可以換成任何視訊都行;如果vpy檔案和視訊不在同一個資料夾,則需要用絕對路徑。#後為註釋語句。
src = core.lsmas.LWLibavSource(a,threads=1)
src = core.std.AddBorders(src,left=0,right=0,top=138,bottom=138)
#切黑邊(切黑邊的計算就不要我說了吧)
src = core.vsfm.TextSubMod(src, file=r"C:/Users/Administrator/Desktop/110.ass")
#加字幕(TextSubMod是一個濾鏡 因為有什麼要加圖片特效豐富的字幕就要加這個濾鏡才行,不然會顯示白色的)好想學習DiaosMan大大特效字幕哇~ 哈啊哈
#src = core.fmtc.resample(src, w=1920, h=1080, css="420")
#解析度
#src = core.fmtc.bitdepth (src, bits=8)
#深8位
src.set_output()
#輸出
  1. pipe到x264編碼

    完成後的vpy指令碼,輸出相應的raw視訊流來,輸出的raw視訊流通過搭橋,可以送給x264,mencoder,ffmpeg等壓制工具。使用VapourSynth安裝目錄下的core64資料夾下面vspipe.exe進行搭橋輸送到x264

    這裡我選擇x264。vs作者提供了一個vspipe.exe程式,這個程式在VapourSynth安裝目錄下的core64資料夾下面,可以單獨copy出來使用。使用方法參考vspipe –help,可以看到:

    vspipe --y4m script.vpy - | x264 --demuxer y4m - --output encoded.mp4
    這樣我們只需要寫一個簡單的bat指令碼就可以進行壓制了