教程:畫幀處理合成軟件AviSynth初體驗;

在操作一些非線性的視頻編輯軟件的時候,我們完成操作后一般都會對編輯好的視頻在軟件當中進行預覽。在此期間我們并沒有真正的對編輯好后的視頻進行生成操作,卻可以實時預覽出編輯后的效果。這個過程可以簡化地描述為:(源視頻)+(編輯的各種操作)=(播放器輸出預覽效果)。那么讀取我們的編輯并且應用到源視頻再輸出給播放器的呢?答案就是畫針處理器了。

AviSynth是一款由Ben Rudiak-Gould于2000年利用C++語言編寫的一款開源畫幀處理器。它的主要功能是通過讀取你的處理操作(你創(chuàng)建的腳本文件中的代碼命令)后操作濾鏡,再通過系統(tǒng)的媒體處理api(如Win下的DirectShow)將被濾鏡實時控制的源視頻輸出給播放器的。

使用它處理數(shù)字視頻有很多優(yōu)點:

1.開源:意味著有更多的人愿意為avisynth添加版本.更新.功能.濾鏡以及維護等!;

2.快速:類似C++等高級語言語法,只要有一點兒編程語言基礎即可快速上手!代碼編輯一旦掌握效率不會比編輯軟件差。而且可移植性強,不但是平臺移植性,還可以免受傳統(tǒng)編輯程序臃腫的困擾;

3.靈活:幾乎通吃所有數(shù)字視頻格式,可以利用它輸出給本地播放器所不支持或打不開的文件。腳本鏈接無限制,你可以鏈接任意多的媒體文件和濾鏡同時進行處理。壓制無限制,x264等主流壓制程序兼容avs腳本。靈活性可見一斑;

4.輕量:軟件本體非常小巧,且在使用過程中不會產生緩存文件;

AviSynth的歷史及獲取它:

AviSynth(AVI SYNTHesizer)最早由Ben在2000年開發(fā),發(fā)布在著名的DVDRip論壇Doom9上。不過他在發(fā)布v1.0b后不再進行更新,后續(xù)版本由Edwin van Eggelen繼續(xù)開發(fā)。后來參與開發(fā)的人越來越多,最終衍生出了非常非常多的版本。

而目前最常見的版本有三個:

1.avisynth 2.6.0

2.avisynth+

3.Vapours Synth

1感覺是血統(tǒng)比較純正的版本(誤),它提供了免安裝版和安裝版兩個版本。這里我們不建議初學者在一般情況下使用免安裝版本,因為它容易引起版本沖突和各種注冊和路徑的混亂。你可以在github上找到它們。

2也是衍生版本之一,不過只有安裝版本,還有有用github空間搭建的官方站點http://www.avs-plus.net/%EF%BC%8C%E5%B0%B1%E7%94%A8%E5%AE%83%E5%90%A7%E3%80%82

3.其實嚴格說并不屬于衍生版本了,它采用了新的思想以及python寫出的新一代合成器http://www.vapoursynth.com/?,與avisynth功能一樣但并不通用,我們下次文章在討論它。

關于ST和MT版本: ST是單線程處理版本,MT是多線程處理版本。不過官方只提供了ST版本,MT版本為衍生版本。

關于32/64位的選擇以及各個平臺版本: 在這里我們建議還是裝32位版本(因為支持的濾鏡多!)。需要知道的是,選擇32位版本建議播放器和編碼器也選擇32位版本,系統(tǒng)可以是64位的(廢話)。如果想通過x264等64位編碼器讀取32位synth的話,你就需要借助avs4x264這樣的pipe工具了。

linux版本為衍生的移植版本,目前有ubuntu版,你也可以嘗試通過github獲取源碼在其它發(fā)行版中編譯一下試試。大多數(shù)都是Win版本,也有MacOS的版本。

開始使用!通過AVSP與其它編輯器:

一般編程語言或者腳本都會有衍生的IDE或者編輯器等,avisynth也是有的,它叫AVSPmod或AVSP,它可以為你提供實時預覽,語法補全等等實用功能。當然,你也可以使用notepad或者vscode等等編輯軟件書寫你的AVS腳本。

安裝好avisynth后,我們在桌面上創(chuàng)建一個名為"test.avs"的空文件,使用隨便一個編輯器編輯如下內容并保存:

Version

然后把這個avs文件通過WindowsMediaPlayer或者是MPC.Pot.KM等媒體播放軟件打開(注:win下不要用vlc,它通常會通過libvlc而不通過DS解碼..),你會發(fā)現(xiàn)播放器會預覽出一個10秒鐘宣告AVS版本號及版權信息內容的視頻片段。

現(xiàn)在把文件改成:

Version

FadeOut(10)

再次播放,你會發(fā)現(xiàn)視頻的后10秒鐘會出現(xiàn)一個淡入黑色的效果。

現(xiàn)在把文件再改成:

Version

FadeOut(10)

Trim(100,150)

再次播放你會發(fā)現(xiàn)視頻的長度縮短了,這句話的意思就是讀取Version的100幀到150幀。

你也可以把Version去掉,加入:

AVISource("d:\capture.avi")? #這里寫你實際的路徑和文件

試一試,把路徑替換成你本地的文件。

文章到此我相信你已經對AviSynth有惹初步的了解,我會在以后的文章當中陸續(xù)介紹關于我對AviSynth的更多功能,濾鏡用法,常見問題,實現(xiàn)原理以及二次開發(fā)等等相關折騰的文章,感謝你的閱讀!

感謝nmm-hd論壇,http://amefs.net以及doom9論壇在我學習DIP的期間以及折騰各種解碼器和ffmpeg時讓我無意間接觸到了DVDRip,讓我打開了新世紀的大門。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容