Clip properties
From Avisynth wiki
(Difference between revisions)
Raffriff42 (Talk | contribs) (formatting, links, phrasing) |
|||
Line 1: | Line 1: | ||
− | You can access clip properties in | + | <div style="max-width:62em" > |
+ | You can access a variety of clip properties in AviSynth scripts. For example, if the variable ''clip'' holds a video clip, then ''clip.height'' is its height in pixels, ''clip.framecount'' is its length in frames, and so on. Clip properties can be manipulated just like [[Script_variables|script variables]], except that they are read-only (in [[wikipedia:C_(programming_language)|'''C''']] terminology, they cannot be ''L-values''). | ||
The full list of properties: | The full list of properties: | ||
− | * {{Term|Width}} | + | * ''int'' clip.{{Term|Width}} |
− | : Returns the width of the clip in pixels | + | : Returns the width of the clip in pixels. |
− | * {{Term|Height}} | + | * ''int'' clip.{{Term|Height}} |
− | : Returns the height of the clip in pixels | + | : Returns the height of the clip in pixels. |
− | * {{Term|FrameCount}} | + | * ''int'' clip.{{Term|FrameCount}} |
− | : Returns the number of frames | + | : Returns the total number of video frames contained in the clip. |
− | * {{Term|FrameRate}} | + | * ''float'' clip.{{Term|FrameRate}} |
− | : Returns | + | : Returns approximate framerate. Video framerate is actually a ratio of two 32-bit integers; |
− | * {{Term|FrameRateNumerator}} | + | : so for the precise number, use {{Term|FrameRateNumerator}} and {{Term|FrameRateDenominator}}. |
− | : Returns the numerator | + | * ''int'' clip.{{Term|FrameRateNumerator}} |
− | * {{Term|FrameRateDenominator}} | + | : Returns the framerate numerator. |
− | : Returns the denominator | + | * ''int'' clip.{{Term|FrameRateDenominator}} |
− | * {{Term|AudioRate}} | + | : Returns the framerate denominator. |
− | : Returns the sample rate | + | * ''int'' clip.{{Term|AudioRate}} |
− | * {{Term|AudioLength}} | + | : Returns the audio sample rate. |
− | : Returns the number of samples | + | * ''int'' clip.{{Term|AudioLength}} |
− | * {{Term|AudioLengthLo | + | : Returns the total number of audio samples, per audio channel. |
− | : Returns the number of samples | + | : Be aware of possible overflow on extremely long clips (with >= 2<sup>31</sup> audio samples) – see [[#Examples|Examples]] below. |
− | * {{Term|AudioLengthHi | + | * ''int'' clip.{{Term|AudioLengthLo([ int ''m'' ])}} (from v2.60) |
− | : Returns the number of | + | : Returns the total number of audio samples, modulo {{Term|''m''}}, which is 10<sup>9</sup> by default. |
− | * {{Term|AudioLengthF}} | + | * ''int'' clip.{{Term|AudioLengthHi([ int ''d'' ])}} (from v2.60) |
− | : Returns the number of | + | : Returns the total number of audio samples, divided by {{Term|''d''}}, which is 10<sup>9</sup> by default. Truncated to nearest integer. |
− | * {{Term|AudioLengthS}} ( | + | * ''float'' clip.{{Term|AudioLengthF}} |
− | : Returns the number of samples | + | : Returns the total number of audio samples as a float-point number. |
− | * {{Term|AudioDuration}} ( | + | : No overflow limit, but there is a possible ''precision'' limit – see [[#Examples|Examples]] below. |
− | : Returns the duration in seconds | + | * ''string'' clip.{{Term|AudioLengthS}} (from v2.60) |
− | * {{Term|AudioChannels}} | + | : Returns the total number of audio samples as a string. |
− | : Returns the number of audio channels | + | * ''float'' clip.{{Term|AudioDuration}} (from v2.60) |
− | * {{Term|AudioBits}} | + | : Returns the audio duration in seconds. |
− | : Returns the audio bit depth | + | * ''int'' clip.{{Term|AudioChannels}} |
− | * {{Term|IsAudioFloat}} | + | : Returns the number of audio channels. |
− | : Returns true if the audio format | + | * ''int'' clip.{{Term|AudioBits}} |
− | * {{Term|IsAudioInt}} | + | : Returns the audio bit depth, ''eg'', 8, 16, 24 or 32. |
− | : Returns true if the audio format | + | * ''bool'' clip.{{Term|IsAudioFloat}} |
− | * {{Term|IsRGB}} | + | : Returns true if the audio format is [[Float]]. |
− | : Returns true if the | + | * ''bool'' clip.{{Term|IsAudioInt}} |
− | * {{Term|IsRGB24}} | + | : Returns true if the audio format is an integer type. |
− | : Returns true if the | + | * ''bool'' clip.{{Term|IsRGB}} |
− | * {{Term|IsRGB32}} | + | : Returns true if the color format is [[RGB]], false otherwise. |
− | : Returns true if the | + | * ''bool'' clip.{{Term|IsRGB24}} |
− | * {{Term|IsYUV}} | + | : Returns true if the color format is [[RGB24]], false otherwise. |
− | : Returns true if the | + | * ''bool'' clip.{{Term|IsRGB32}} |
− | * {{Term|IsYUY2}} (clip) | + | : Returns true if the color format is [[RGB32]], false otherwise. |
− | : Returns true if the | + | * ''bool'' clip.{{Term|IsYUV}} |
− | * {{Term|IsY8}} ( | + | : Returns true if the color format is [[YUV]], false otherwise. |
− | : Returns true if the | + | * ''bool'' clip.{{Term|IsYUY2}} (clip) |
− | * {{Term|IsYV12}} | + | : Returns true if the color format is [[YUY2]], false otherwise. |
− | : Returns true if the | + | * ''bool'' clip.{{Term|IsY8}} (from v2.60) |
− | * {{Term|IsYV16}} ( | + | : Returns true if the color format is [[Y8]], false otherwise. |
− | : Returns true if the clip is [[YV16]], false otherwise | + | * ''bool'' clip.{{Term|IsYV12}} |
− | * {{Term|IsYV24}} | + | : Returns true if the color format is [[YV12]], false otherwise. |
− | : Returns true if the | + | * ''bool'' clip.{{Term|IsYV16}} (from v2.60) |
− | * {{Term|IsYV411}} ( | + | : Returns true if the clip color format is [[YV16]], false otherwise. |
− | : Returns true if the | + | * ''bool'' clip.{{Term|IsYV24}} (v2.60) |
− | * {{Term|PixelType}} ( | + | : Returns true if the color format is [[YV24]], false otherwise. |
− | : Returns the pixel type | + | * ''bool'' clip.{{Term|IsYV411}} (from v2.60) |
− | * {{Term|IsFieldBased}} | + | : Returns true if the color format is [[YV411]], false otherwise. |
− | : Returns true if the clip is field-based | + | * ''string'' clip.{{Term|PixelType}} (from v2.60) |
− | * {{Term|IsFrameBased}} | + | : Returns the pixel type as a string, ''eg'' "RGB32". |
− | : Returns true if the clip is frame-based | + | * ''bool'' clip.{{Term|IsFieldBased}} |
− | * {{Term|IsPlanar}} | + | : Returns true if the clip is ''field-based''. What this means is explained [[Interlaced_fieldbased|'''here''']]. |
− | : Returns true if the | + | * ''bool'' clip.{{Term|IsFrameBased}} |
− | * {{Term|IsInterleaved}} | + | : Returns true if the clip is ''frame-based''. What this means is explained [[Interlaced_fieldbased|'''here''']]. |
− | : Returns true if the | + | * ''bool'' clip.{{Term|IsPlanar}} |
− | * {{Term|GetParity | + | : Returns true if the color format is [[Planar]], false otherwise. |
− | : Returns true if frame | + | * ''bool'' clip.{{Term|IsInterleaved}} |
− | * {{Term|HasAudio}} | + | : Returns true if the color format is [[Interleaved]], false otherwise. |
− | : Returns true if the clip has audio, false otherwise | + | * ''bool'' clip.{{Term|GetParity([ int ''f'' ])}} |
− | * {{Term|HasVideo}} | + | : Returns true if frame {{Term|''f''}} (default 0) is the top field of a field-based clip, or if it is a full frame with top field first of a frame-based clip. |
− | : Returns true if the clip has video, false otherwise ( | + | * ''bool'' clip.{{Term|HasAudio}} |
+ | : Returns true if the clip has audio, false otherwise. | ||
+ | * ''bool'' clip.{{Term|HasVideo}} | ||
+ | : Returns true if the clip has video, false otherwise. | ||
+ | </div> | ||
+ | |||
+ | |||
+ | ====Examples==== | ||
+ | * Clip duration = 10 seconds. All {{Term|AudioLength}} forms agree. | ||
+ | <div {{BoxWidthIndent|46|2}} > | ||
+ | [[ColorBars]](width=440, height=440) | ||
+ | [[Trim]](0, 299) | ||
+ | [[Info]] | ||
+ | [[Levels]](0, 1.0, 255, 64, 255-64, coring=false) | ||
+ | [[Subtitle]]( | ||
+ | \ "\n" | ||
+ | \ + "AudioLength = " + String(AudioLength) + "\n" | ||
+ | \ + "AudioLengthS = '" + String(AudioLengthS) + "'\n" | ||
+ | \ + "AudioLengthF = " + String(AudioLengthF) + "\n" | ||
+ | \ + "AudioLengthLo= " + String(AudioLengthLo) + "\n" | ||
+ | \ + "AudioLengthHi= " + String(AudioLengthHi) + "\n" | ||
+ | \ , font="courier", text_color=$ffffff, size=32, align=4, lsp=0) | ||
+ | </div> | ||
+ | :[[File:AudioLength-10s.png]] | ||
+ | |||
+ | |||
+ | * Clip duration approximately 24 hours. Integer {{Term|AudioLength}} overloads (wraps around to a negative number), while the floating-point form has lost accuracy. | ||
+ | <div {{BoxWidthIndent|24|2}} > | ||
+ | [[ColorBars]](width=440, height=440) | ||
+ | [[Loop]](24) | ||
+ | ... | ||
+ | </div> | ||
+ | :[[File:AudioLength-24hr.png]] | ||
+ | |||
---- | ---- |
Revision as of 07:44, 12 March 2016
You can access a variety of clip properties in AviSynth scripts. For example, if the variable clip holds a video clip, then clip.height is its height in pixels, clip.framecount is its length in frames, and so on. Clip properties can be manipulated just like script variables, except that they are read-only (in C terminology, they cannot be L-values).
The full list of properties:
- int clip.Width
- Returns the width of the clip in pixels.
- int clip.Height
- Returns the height of the clip in pixels.
- int clip.FrameCount
- Returns the total number of video frames contained in the clip.
- float clip.FrameRate
- Returns approximate framerate. Video framerate is actually a ratio of two 32-bit integers;
- so for the precise number, use FrameRateNumerator and FrameRateDenominator.
- int clip.FrameRateNumerator
- Returns the framerate numerator.
- int clip.FrameRateDenominator
- Returns the framerate denominator.
- int clip.AudioRate
- Returns the audio sample rate.
- int clip.AudioLength
- Returns the total number of audio samples, per audio channel.
- Be aware of possible overflow on extremely long clips (with >= 231 audio samples) – see Examples below.
- int clip.AudioLengthLo([ int m ]) (from v2.60)
- Returns the total number of audio samples, modulo m, which is 109 by default.
- int clip.AudioLengthHi([ int d ]) (from v2.60)
- Returns the total number of audio samples, divided by d, which is 109 by default. Truncated to nearest integer.
- float clip.AudioLengthF
- Returns the total number of audio samples as a float-point number.
- No overflow limit, but there is a possible precision limit – see Examples below.
- string clip.AudioLengthS (from v2.60)
- Returns the total number of audio samples as a string.
- float clip.AudioDuration (from v2.60)
- Returns the audio duration in seconds.
- int clip.AudioChannels
- Returns the number of audio channels.
- int clip.AudioBits
- Returns the audio bit depth, eg, 8, 16, 24 or 32.
- bool clip.IsAudioFloat
- Returns true if the audio format is Float.
- bool clip.IsAudioInt
- Returns true if the audio format is an integer type.
- bool clip.IsRGB
- Returns true if the color format is RGB, false otherwise.
- bool clip.IsRGB24
- Returns true if the color format is RGB24, false otherwise.
- bool clip.IsRGB32
- Returns true if the color format is RGB32, false otherwise.
- bool clip.IsYUV
- Returns true if the color format is YUV, false otherwise.
- bool clip.IsYUY2 (clip)
- Returns true if the color format is YUY2, false otherwise.
- bool clip.IsY8 (from v2.60)
- Returns true if the color format is Y8, false otherwise.
- bool clip.IsYV12
- Returns true if the color format is YV12, false otherwise.
- bool clip.IsYV16 (from v2.60)
- Returns true if the clip color format is YV16, false otherwise.
- bool clip.IsYV24 (v2.60)
- Returns true if the color format is YV24, false otherwise.
- bool clip.IsYV411 (from v2.60)
- Returns true if the color format is YV411, false otherwise.
- string clip.PixelType (from v2.60)
- Returns the pixel type as a string, eg "RGB32".
- bool clip.IsFieldBased
- Returns true if the clip is field-based. What this means is explained here.
- bool clip.IsFrameBased
- Returns true if the clip is frame-based. What this means is explained here.
- bool clip.IsPlanar
- Returns true if the color format is Planar, false otherwise.
- bool clip.IsInterleaved
- Returns true if the color format is Interleaved, false otherwise.
- bool clip.GetParity([ int f ])
- Returns true if frame f (default 0) is the top field of a field-based clip, or if it is a full frame with top field first of a frame-based clip.
- bool clip.HasAudio
- Returns true if the clip has audio, false otherwise.
- bool clip.HasVideo
- Returns true if the clip has video, false otherwise.
Examples
- Clip duration = 10 seconds. All AudioLength forms agree.
ColorBars(width=440, height=440) Trim(0, 299) Info Levels(0, 1.0, 255, 64, 255-64, coring=false) Subtitle( \ "\n" \ + "AudioLength = " + String(AudioLength) + "\n" \ + "AudioLengthS = '" + String(AudioLengthS) + "'\n" \ + "AudioLengthF = " + String(AudioLengthF) + "\n" \ + "AudioLengthLo= " + String(AudioLengthLo) + "\n" \ + "AudioLengthHi= " + String(AudioLengthHi) + "\n" \ , font="courier", text_color=$ffffff, size=32, align=4, lsp=0)
- Clip duration approximately 24 hours. Integer AudioLength overloads (wraps around to a negative number), while the floating-point form has lost accuracy.
Back to AviSynth Syntax.