Xy-VSFilter

From Avisynth wiki
(Difference between revisions)
Jump to: navigation, search
(xy-VSFilter: add documentation)
 
(New version .804)
(13 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{FilterCat5|External_filters|Plugins|Plugins_x64|Adjustment_filters|Subtitling}}
+
{{FilterCat6|External_filters|Plugins|Plugins_x64|Adjustment_filters|Subtitling|Deep_color_tools}}
 
{{Filter3
 
{{Filter3
 
| Gabest, guliverkli2, [https://github.com/Cyberbeing cyberbeing], {{Author/pinterf}}
 
| Gabest, guliverkli2, [https://github.com/Cyberbeing cyberbeing], {{Author/pinterf}}
| v3.2.0.802
+
| v3.2.0.804
| [https://github.com/pinterf/xy-VSFilter/releases xyVSFilterSubFilter-pfmod-3.2.0.802.7z ]
+
| [https://github.com/pinterf/xy-VSFilter/releases xyVSFilterSubFilter-pfmod-3.2.0.804.7z ]
 
| Subtitling
 
| Subtitling
 
| [http://www.gnu.org/licenses/gpl-2.0.txt GPLv2]
 
| [http://www.gnu.org/licenses/gpl-2.0.txt GPLv2]
Line 9: Line 9:
 
<br>
 
<br>
 
== Description ==
 
== Description ==
xy-VSFilter Project (High Performance [[VSFilter]] Compatible Subtitle Filters)
+
xy-VSFilter Project (High Performance [[VSFilter]] Compatible Subtitle Filters). Based on VSFilter 2.39 Guliverkli2 with various important changes from VSFilter 2.41 MPC-HC.
  
 
VSFilter includes the following functions:
 
VSFilter includes the following functions:
:*VobSub
+
*VobSub
:*TextSub  
+
*TextSub  
:*TextSubSwapUV
+
*TextSubSwapUV
:*MaskSub  
+
*MaskSub  
  
 
<br>
 
<br>
  
 
== Requirements ==
 
== Requirements ==
* [x86]: [[AviSynth+]] or [http://forum.doom9.org/showthread.php?t=168764 AviSynth 2.6]
+
* [x86]: [[AviSynth+]] or [https://sourceforge.net/projects/avisynth2/ AviSynth 2.6]
 
* [x64]: [[AviSynth+]]
 
* [x64]: [[AviSynth+]]
* Supported color formats: [[RGB24]], [[RGB32]], [[YV12]]
+
* Supported color formats: [[RGB24]], [[RGB32]], [[YUY2]], [[YV12]], [[YV16]], [[YV24]]
 +
**AviSynth+: <code>TextSub</code> accepts YUV420P10, YUV420P16, YUV422P10 and YUV422P16 formats
 
<br>
 
<br>
  
Line 31: Line 32:
 
<br>
 
<br>
 
<br>
 
<br>
:{{Template:FuncDef|TextSub(clip, string "file", int "charset", float "fps", string "vfr") }}
+
:{{Template:FuncDef|TextSub (clip, string "file", int "charset", float "fps", string "vfr") }}
 
<br>
 
<br>
 
::{{Par2||clip| }}
 
::{{Par2||clip| }}
Line 40: Line 41:
 
<br>
 
<br>
 
::{{Par2|charset|int|1}}
 
::{{Par2|charset|int|1}}
:::
+
:::''charset'' is the encoding to assume the file is in, if it's not Unicode UTF-8 or UTF-16. (If you need to use this you're doing something wrong.)
 
<br>
 
<br>
 
::{{Par2|fps|float|-1.0}}
 
::{{Par2|fps|float|-1.0}}
:::
+
:::''fps'' is the FPS to assume the video is at. You could just as well just use <code>AssumeFPS</code> instead of using this. VFR overrides this.
 
<br>
 
<br>
 
::{{Par2|vfr|string|""}}
 
::{{Par2|vfr|string|""}}
:::Path to timecodes V2 file.
+
:::''vfr'' is the path to the VFR timecodes file (format 1 or 2) to use for frame times. If set, overrides all other FPS specifications.
 
<br>
 
<br>
 +
 
===VobSub===
 
===VobSub===
 
Adds subtitles from a vob sequence.
 
Adds subtitles from a vob sequence.
 
<br>
 
<br>
 
<br>
 
<br>
:{{Template:FuncDef|VobSub (clip, string "file") }}
+
:{{Template:FuncDef|VobSub (clip, string) }}
 
<br>
 
<br>
 
::{{Par2||clip| }}
 
::{{Par2||clip| }}
 
:::Input clip.
 
:::Input clip.
 
<br>
 
<br>
::{{Par2|file|string|}}
+
::{{Par2| |string| }}
 
:::Path to subtitles file, only .idx and .sub files supported.
 
:::Path to subtitles file, only .idx and .sub files supported.
 
<br>
 
<br>
 
===MaskSub===
 
===MaskSub===
Creates a subtitle mask. See [https://sourceforge.net/p/guliverkli2/patches/1/ here] for more info.
+
Creates a subtitle mask. <!--See [https://sourceforge.net/p/guliverkli2/patches/1/ here] for more info.-->
 
<br>
 
<br>
 
<br>
 
<br>
:{{Template:FuncDef|TextSubMod(clip, string "file", int "width", int "height", float "fps", int "length", int "charset", string "vfr", string "pixel_type") }}
+
:{{Template:FuncDef|MaskSub (string "file", int "width", int "height", float "fps", int "length", int "charset", string "vfr", string "pixel_type") }}
 
<br>
 
<br>
::{{Par2||clip| }}
+
::{{Par2|file|string|}}
:::Input clip.
+
<br>
+
::{{Par2||string|}}
+
 
:::Path to subtitles file.
 
:::Path to subtitles file.
 
<br>
 
<br>
 
::{{Par2|width|int| }}
 
::{{Par2|width|int| }}
 
::{{Par2|height|int| }}
 
::{{Par2|height|int| }}
:::Width and height.
+
:::''width'' and ''height'' specify the size of the generated clip, in pixels.
 
<br>
 
<br>
 
::{{Par2|fps|float| }}
 
::{{Par2|fps|float| }}
:::FPS
+
:::''fps'' specifies the framerate of the generated clip.
 
<br>
 
<br>
 
::{{Par2|length|int| }}
 
::{{Par2|length|int| }}
:::Length
+
:::''length'' is the number of frames to produce in the clip.
 
<br>
 
<br>
 
::{{Par2|charset|int| }}
 
::{{Par2|charset|int| }}
:::Character set.
+
:::''charset'' is the encoding to assume the file is in, if it's not Unicode UTF-8 or UTF-16. (If you need to use this you're doing something wrong.)
 
<br>
 
<br>
 
::{{Par2|vfr|string|""}}
 
::{{Par2|vfr|string|""}}
:::Path to timecodes V2 file.
+
:::''vfr'' is the path to the VFR timecodes file (format 1 or 2) to use for frame times.
 
<br>
 
<br>
 
::{{Par2|pixel_type|string|"RGB32"}}
 
::{{Par2|pixel_type|string|"RGB32"}}
 
:::Pixel type, can be set to: <code>"RGB32", "YUV420P10" or "YUV420P16"</code>
 
:::Pixel type, can be set to: <code>"RGB32", "YUV420P10" or "YUV420P16"</code>
 +
:::'''Note:''' With "RGB32" output the mask is flipped vertically, use <code>[[FlipVertical]]()</code> to correct it.
 
<br>
 
<br>
 +
 
===TextSubSwapUV===
 
===TextSubSwapUV===
???
 
 
<br>
 
<br>
<br>
+
:{{Template:FuncDef|TextSubSwapUV (bool) }}
:{{Template:FuncDef|TextSubSwapUV (bool "invert") }}
+
 
<br>
 
<br>
 
::{{Par2||clip| }}
 
::{{Par2||clip| }}
 
:::Input clip.
 
:::Input clip.
 
<br>
 
<br>
::{{Par2|invert|bool|false}}
+
::{{Par2| |bool|false}}
:::Invert: true or false.
+
:::Toggles (globally) whether to swap assume the U and V planes are swapped in YV12 video when rendering subtitles. Default is false.
 
<br>
 
<br>
  
Line 107: Line 106:
 
  [[AviSource]]("Blah.avi")
 
  [[AviSource]]("Blah.avi")
 
  TextSub(file="subtitle.ass")
 
  TextSub(file="subtitle.ass")
 +
 +
#Assume clip is 1280x720, 24fps, and 3,000 frames total
 +
MaskSub(file="subtitle.ass", width=1280, height=720, fps=24, length=3000)
 +
<br>
 +
#or alternatively you can get the [[Clip_properties|clip properties]]
 +
video =  AviSource("Blah.avi")
 +
MaskSub(file="subtitle.ass", width=video.Width(), height=video.Height(), fps=video.FrameRate(), length=video.FrameCount())
  
 
  [[AviSource]]("Blah.avi")
 
  [[AviSource]]("Blah.avi")
  VobSub(file="subtitle.sub")
+
  VobSub("subtitle.sub")
  
 
<br>
 
<br>
Line 119: Line 125:
  
 
== External Links ==
 
== External Links ==
*[https://github.com/pinterf/xy-VSFilter GitHub] - Source code repository (latest version).
+
*[https://github.com/pinterf/xy-VSFilter GitHub] - Source code repository (latest version from pinterf).
.
+
*[https://github.com/HomeOfVapourSynthEvolution/xy-VSFilter GitHub] - xy-VSFilter with VapourSynth interface added, based on the source of pinterf's fork
 
<br>
 
<br>
 
<br>
 
<br>
 
-----------------------------------------------
 
-----------------------------------------------
 
'''Back to [[External_filters#Subtitling|External Filters]] &larr;'''
 
'''Back to [[External_filters#Subtitling|External Filters]] &larr;'''

Revision as of 01:16, 6 March 2021

Abstract
Author Gabest, guliverkli2, cyberbeing, pinterf
Version v3.2.0.804
Download xyVSFilterSubFilter-pfmod-3.2.0.804.7z
Category Subtitling
License GPLv2
Discussion Doom9 Forum


Contents

Description

xy-VSFilter Project (High Performance VSFilter Compatible Subtitle Filters). Based on VSFilter 2.39 Guliverkli2 with various important changes from VSFilter 2.41 MPC-HC.

VSFilter includes the following functions:

  • VobSub
  • TextSub
  • TextSubSwapUV
  • MaskSub


Requirements


Syntax and Parameters

TextSub

Adds subtitles from srt, sub, psb, smi, ssa, ass file formats.

TextSub (clip, string "file", int "charset", float "fps", string "vfr")


clip   =
Input clip.


string  file =
Path to subtitles file.


int  charset = 1
charset is the encoding to assume the file is in, if it's not Unicode UTF-8 or UTF-16. (If you need to use this you're doing something wrong.)


float  fps = -1.0
fps is the FPS to assume the video is at. You could just as well just use AssumeFPS instead of using this. VFR overrides this.


string  vfr = ""
vfr is the path to the VFR timecodes file (format 1 or 2) to use for frame times. If set, overrides all other FPS specifications.


VobSub

Adds subtitles from a vob sequence.

VobSub (clip, string)


clip   =
Input clip.


string   =
Path to subtitles file, only .idx and .sub files supported.


MaskSub

Creates a subtitle mask.

MaskSub (string "file", int "width", int "height", float "fps", int "length", int "charset", string "vfr", string "pixel_type")


string  file =
Path to subtitles file.


int  width =
int  height =
width and height specify the size of the generated clip, in pixels.


float  fps =
fps specifies the framerate of the generated clip.


int  length =
length is the number of frames to produce in the clip.


int  charset =
charset is the encoding to assume the file is in, if it's not Unicode UTF-8 or UTF-16. (If you need to use this you're doing something wrong.)


string  vfr = ""
vfr is the path to the VFR timecodes file (format 1 or 2) to use for frame times.


string  pixel_type = "RGB32"
Pixel type, can be set to: "RGB32", "YUV420P10" or "YUV420P16"
Note: With "RGB32" output the mask is flipped vertically, use FlipVertical() to correct it.


TextSubSwapUV


TextSubSwapUV (bool)


clip   =
Input clip.


bool   = false
Toggles (globally) whether to swap assume the U and V planes are swapped in YV12 video when rendering subtitles. Default is false.


Examples

AviSource("Blah.avi")
TextSub(file="subtitle.ass")
#Assume clip is 1280x720, 24fps, and 3,000 frames total
MaskSub(file="subtitle.ass", width=1280, height=720, fps=24, length=3000)

#or alternatively you can get the clip properties video = AviSource("Blah.avi") MaskSub(file="subtitle.ass", width=video.Width(), height=video.Height(), fps=video.FrameRate(), length=video.FrameCount())
AviSource("Blah.avi")
VobSub("subtitle.sub")


Changelog

See GitHub releases page: https://github.com/pinterf/xy-VSFilter/releases

External Links

  • GitHub - Source code repository (latest version from pinterf).
  • GitHub - xy-VSFilter with VapourSynth interface added, based on the source of pinterf's fork




Back to External Filters

Personal tools