Select: Difference between revisions

From Avisynth wiki
Jump to navigationJump to search
m 1 revision
add link to avs+ documentation
 
(5 intermediate revisions by 2 users not shown)
Line 1: Line 1:
__FORCETOC__
__FORCETOC__
''"Select" redirects here. For the switch-like control function, see [[Internal_functions/Select#Select|Internal Functions: Select]]''


=== SelectEven/SelectOdd ===
=== SelectEven/SelectOdd ===
<div style="max-width:62em" >
<div {{BlueBox2|40|0|3px solid purple}} >
{{AvsPlusFullname}}<br>
Up-to-date documentation: [https://avisynthplus.readthedocs.io/en/latest/avisynthdoc/corefilters/select.html https://avisynthplus.readthedocs.io]
</div>


{{Template:Func2Def|SelectEven(clip ''clip'')|SelectOdd(clip ''clip'')}}


SelectEven makes an output video stream using only the even-numbered frames from the input. SelectOdd is its odd counterpart.
{{Func2Def
|SelectEven(clip ''clip'')
|SelectOdd(clip ''clip'')
}}


Since frames are numbered starting from zero, SelectEven actually selects the first, third, fifth,... frames by human counting conventions.  
'''SelectEven''' makes an output video stream using only the even-numbered frames from the input. '''SelectOdd''' is its odd counterpart.
 
Since frames are numbered starting from zero, by human counting conventions '''SelectEven''' actually selects the first, third, fifth, etc, frames.  
</div>




=== SelectEvery ===
=== SelectEvery ===
<div style="max-width:62em" >
<div {{BlueBox2|40|0|3px solid purple}} >
{{AvsPlusFullname}}<br>
Up-to-date documentation: [https://avisynthplus.readthedocs.io/en/latest/avisynthdoc/corefilters/selectevery.html https://avisynthplus.readthedocs.io]
</div>


{{Template:FuncDef|SelectEvery(clip ''clip'', int ''step-size'', int ''offset1'' [, int ''offset2'', ...])}}


SelectEvery is a generalization of filters like SelectEven and [[Pulldown]]. The easiest way to describe it is by example:
{{FuncDef
|SelectEvery(clip ''clip'', int ''step-size'', int ''offset1'' [, int ''offset2'', ...])
}}


A generalization of filters like '''SelectEven''' and [[Pulldown]]. The easiest way to describe it is by example:
<div {{BoxWidthIndent|62|0}} >
  SelectEvery(clip, 2, 0)        # identical to SelectEven(clip)
  SelectEvery(clip, 2, 0)        # identical to SelectEven(clip)
  SelectEvery(clip, 2, 1)        # identical to SelectOdd(clip)
  SelectEvery(clip, 2, 1)        # identical to SelectOdd(clip)
  SelectEvery(clip, 10, 3, 6, 7)  # select frames 3, 6, 7, 13, 16, 17, 23, 26, 27, ... from source clip
  SelectEvery(clip, 10, 3, 6, 7)  # select frames 3, 6, 7, 13, 16, 17, 23, 26, 27, ...
  SelectEvery(clip, 9, 0)        # select frames 0, 9, 18, 27, ... from source clip
  SelectEvery(clip, 9, 0)        # select frames 0, 9, 18, 27, ...
</div>


And how about this:  
And how about this:  
 
<div {{BoxWidthIndent|62|0}} >
  # Take a 24fps progressive input clip and apply 3:2 pulldown,
  # Take a 24fps progressive input clip and apply 3:2 pulldown,
  # yielding a 30fps interlaced output clip
  # yielding a 30fps interlaced output clip
  AssumeFrameBased()
  [[AssumeFrameBased]]
  SeparateFields()
  [[SeparateFields]]
  SelectEvery(8, 0,1, 2,3,2, 5,4, 7,6,7)
  SelectEvery(8, 0,1, 2,3,2, 5,4, 7,6,7)
  Weave()
  [[Weave]]
</div>
</div>


=== SelectRangeEvery ===
=== SelectRangeEvery ===
<div style="max-width:62em" >
<div {{BlueBox2|40|0|3px solid purple}} >
{{AvsPlusFullname}}<br>
Up-to-date documentation: [https://avisynthplus.readthedocs.io/en/latest/avisynthdoc/corefilters/selectrangeevery.html https://avisynthplus.readthedocs.io]
</div>


{{Template:FuncDef|SelectRangeEvery(clip ''clip'' [, int ''every''] [, int ''length''] [, int ''offset''] [, bool ''audio''])}}
{{FuncDef|SelectRangeEvery(clip ''clip'' [, int ''every''] [, int ''length''] [, int ''offset''] [, bool ''audio''])}}


This filter is available starting from v2.5. The filter selects ''length'' number of frames ''every'' n frames, starting from frame ''offset''. Default values are: Select 50 frames every 1500 frames, starting with first selection at frame 0. (''every'' = 1500, ''length'' = 50, ''offset'' = 0).
Selects {{FuncArg|length}} number of frames {{FuncArg|every}} {{Serif|''n''}} frames, starting from frame {{FuncArg|offset}}.  


Starting from v2.55, SelectRangeEvery will also process audio. To keep the original audio, use ''audio = false''.
{{Par2|every|int|1500}}
{{Par2|length|int|50}}
{{Par2|offset|int|0}}
{{Par2|audio|bool|true}}
 
By default, select 50 frames every 1500 frames, starting with frame 0.  
 
'''SelectRangeEvery''' will normally process audio. To keep the original audio, use {{FuncArg|audio}}=false.


'''Examples:'''
'''Examples:'''
 
<div {{BoxWidthIndent|62|0}} >
  # Selects the frames 0 to 13, 280 to 293, 560 to 573, etc.
  # Selects the frames 0 to 13, 280 to 293, 560 to 573, etc.
  SelectRangeEvery(clip, 280, 14)
  SelectRangeEvery(clip, 280, 14)
</div>


<div {{BoxWidthIndent|62|0}} >
  # Selects the frames 2 to 15, 282 to 295, 562 to 575, etc.
  # Selects the frames 2 to 15, 282 to 295, 562 to 575, etc.
  SelectRangeEvery(clip, 280, 14, 2)
  SelectRangeEvery(clip, 280, 14, 2)
</div>
</div>


 
=== External Links ===
* [http://forum.doom9.org/showthread.php?t=135690 ''Deinterlacing BFF/TFF - which SelectEvery setting?''] (Doom9 Forum)
[[Category:Internal filters]]
[[Category:Internal filters]]
[[Category:Timeline_editing_filters]]

Latest revision as of 07:16, 18 September 2022

"Select" redirects here. For the switch-like control function, see Internal Functions: Select

SelectEven/SelectOdd

AviSynth+
Up-to-date documentation: https://avisynthplus.readthedocs.io


SelectEven(clip clip)
SelectOdd(clip clip)

SelectEven makes an output video stream using only the even-numbered frames from the input. SelectOdd is its odd counterpart.

Since frames are numbered starting from zero, by human counting conventions SelectEven actually selects the first, third, fifth, etc, frames.


SelectEvery

AviSynth+
Up-to-date documentation: https://avisynthplus.readthedocs.io


SelectEvery(clip clip, int step-size, int offset1 [, int offset2, ...])

A generalization of filters like SelectEven and Pulldown. The easiest way to describe it is by example:

SelectEvery(clip, 2, 0)         # identical to SelectEven(clip)
SelectEvery(clip, 2, 1)         # identical to SelectOdd(clip)
SelectEvery(clip, 10, 3, 6, 7)  # select frames 3, 6, 7, 13, 16, 17, 23, 26, 27, ...
SelectEvery(clip, 9, 0)         # select frames 0, 9, 18, 27, ...

And how about this:

# Take a 24fps progressive input clip and apply 3:2 pulldown,
# yielding a 30fps interlaced output clip
AssumeFrameBased
SeparateFields
SelectEvery(8, 0,1, 2,3,2, 5,4, 7,6,7)
Weave

SelectRangeEvery

AviSynth+
Up-to-date documentation: https://avisynthplus.readthedocs.io


SelectRangeEvery(clip clip [, int every] [, int length] [, int offset] [, bool audio])

Selects length number of frames every n frames, starting from frame offset.

int  every = 1500
int  length = 50
int  offset = 0
bool  audio = true

By default, select 50 frames every 1500 frames, starting with frame 0.

SelectRangeEvery will normally process audio. To keep the original audio, use audio=false.

Examples:

# Selects the frames 0 to 13, 280 to 293, 560 to 573, etc.
SelectRangeEvery(clip, 280, 14)
# Selects the frames 2 to 15, 282 to 295, 562 to 575, etc.
SelectRangeEvery(clip, 280, 14, 2)