新興視訊處理工具VapourSynth壓制教程
阿新 • • 發佈:2019-02-08
VapourSynth作為一個開源的非線性視訊處理frameserver,相比於已經停滯開發或者說是開發慢了點的AviSynth,有著全新的處理架構,同時使用Python作為指令碼書寫語言,處理上更為科學,原生支援多執行緒處理,支援更多的顏色空間,良好的記憶體控制,可跨平臺使用,有32bit和64bit版本,同時支援Avisynth外掛載入。
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() #輸出
pipe到x264編碼
完成後的vpy指令碼,輸出相應的raw視訊流來,輸出的raw視訊流通過搭橋,可以送給x264,mencoder,ffmpeg等壓制工具。使用VapourSynth安裝目錄下的core64資料夾下面vspipe.exe進行搭橋輸送到x264
這裡我選擇x264。vs作者提供了一個vspipe.exe程式,這個程式在VapourSynth安裝目錄下的core64資料夾下面,可以單獨copy出來使用。使用方法參考vspipe –help,可以看到:
這樣我們只需要寫一個簡單的bat指令碼就可以進行壓制了vspipe --y4m script.vpy - | x264 --demuxer y4m - --output encoded.mp4