AviSynth
開發者 | AviSynth開發者, Doom9社區 |
---|---|
首次發佈 | 2000年5月19日 |
當前版本 |
|
原始碼庫 | |
程式語言 | C++, 匯編 |
作業系統 | Windows, Linux, macOS |
平台 | x86和x86-64 |
類型 | 數字視頻幀伺服器 |
許可協議 | GNU GPL |
網站 | www |
AviSynth是一個跨平台的幀伺服器程序,是一個採用GNU通用公共許可證釋出的自由軟件。程序最初由Ben Rudiak-Gould、Edwin van Eggelen、Klaus Post、Richard Berg和Ian Brabham在2000年5月創建[2],後來由開源社區接手並維護,目前仍然活躍。該軟件採用了AviSynth腳本語言[3]。
AviSynth腳本語言
AviSynth腳本語言(英語:AviSynth Scripting Language)是一種數據流程編程語言[4]——一種描述操作之間數據流動的有向圖的編程範式。它缺少一些過程式編程的控制結構[5],但它包含許多對程式設計師來說很熟悉的特性,包括變量、不同的數據類型、條件語句和複雜的表達式。
該語言主要使用內置的音頻/視頻clip作為數據類型。clip是一個複雜的結構,具有許多屬性,如寬度、高度和持續時間。[6]該語言還有幾種其他更標準的數據類型,如int、float、bool和字符串。[7]可以通過使用這些類型來進行計算、決策,並向視頻中寫入文本,例如字幕。
每個腳本具有一個單一的返回值,即腳本運行時程序所看到的音頻和視頻。這通常是腳本的最後一行,但可以在任何位置插入一個return語句。
代碼示例
以下示例是一個"Hello World"程序。
BlankClip() Subtitle("Hello, world!")
如果將上述文本輸入以.avs為擴展名的文本文件中,可以在Windows Media Player或列表下的其他程序中打開它,將顯示包含文字"Hello, world!"的視頻。
參考文獻
- ^ Release 1576. 2014年1月2日 [2023年3月19日].
- ^ Avisynth Copyright. AviSynth Mediawiki. AviSynth Team. [11 September 2015]. (原始內容存檔於2023-08-09).
- ^ AviSynth腳本語言 (頁面存檔備份,存於互聯網檔案館)
- ^ The Script Execution Model: The Filter Graph. AviSynth Wiki. AviSynth Team. [25 October 2019]. (原始內容存檔於2023-06-24).
- ^ AviSynth syntax: control structures. AviSynth Wiki. Avisynth Team. [Sep 21, 2014]. (原始內容存檔於2023-11-06).
- ^ Clip Properties. AviSynth Wiki. Avisynth Team. [Oct 27, 2019]. (原始內容存檔於2023-09-29).
- ^ Script Variables. AviSynth Wiki. Avisynth Team. [Sep 14, 2017]. (原始內容存檔於2023-11-06).