AviSynth

維基百科,自由的百科全書

AviSynth是一個跨平台的幀伺服器程序,是一個採用GNU通用公共許可證釋出的自由軟件。程序最初由Ben Rudiak-Gould、Edwin van Eggelen、Klaus Post、Richard Berg和Ian Brabham在2000年5月創建[1],後來由開源社區接手並維護,目前仍然活躍。該軟件採用了AviSynth腳本語言頁面存檔備份,存於互聯網檔案館)。

AviSynth腳本語言[編輯]

AviSynth腳本語言(英語:AviSynth Scripting Language)是一種數據流語言[2]——一種描述操作之間數據流動的有向圖編程範式。它缺少一些過程式編程的控制結構[3],但它包含許多對程式設計師來說很熟悉的特性,包括變量、不同的數據類型、條件語句和複雜的表達式

該語言主要使用內置的音頻/視頻clip作為數據類型。clip是一個複雜的結構,具有許多屬性,如寬度、高度和持續時間。[4]該語言還有幾種其他更標準的數據類型,如int、float、bool和字符串[5]可以通過使用這些類型來進行計算、決策,並向視頻中寫入文本,例如字幕

每個腳本具有一個單一的返回值,即腳本運行時程序所看到的音頻和視頻。這通常是腳本的最後一行,但可以在任何位置插入一個return語句

代碼示例[編輯]

以下示例是一個"Hello World"程序

 BlankClip()
 Subtitle("Hello, world!")

如果將上述文本輸入以.avs為擴展名的文本文件中,可以在Windows Media Player或列表下的其他程序中打開它,將顯示包含文字"Hello, world!"的視頻。

參考文獻[編輯]

  1. ^ Avisynth Copyright. AviSynth Mediawiki. AviSynth Team. [11 September 2015]. (原始內容存檔於2023-08-09). 
  2. ^ The Script Execution Model: The Filter Graph. AviSynth Wiki. AviSynth Team. [25 October 2019]. (原始內容存檔於2023-06-24). 
  3. ^ AviSynth syntax: control structures. AviSynth Wiki. Avisynth Team. [Sep 21, 2014]. (原始內容存檔於2023-11-06). 
  4. ^ Clip Properties. AviSynth Wiki. Avisynth Team. [Oct 27, 2019]. (原始內容存檔於2023-09-29). 
  5. ^ Script Variables. AviSynth Wiki. Avisynth Team. [Sep 14, 2017]. (原始內容存檔於2023-11-06).