Trim
Raffriff42 (Talk | contribs) m (one more touch-up) |
Raffriff42 (Talk | contribs) (revert names) |
||
Line 1: | Line 1: | ||
== Trim == | == Trim == | ||
− | {{Template: | + | {{Template:Func4Def |
− | |Trim(clip, int '' | + | |Trim(clip, int ''first_frame'', int ''last_frame'' [, bool ''"pad"'']) |
− | |Trim(clip, int '' | + | |Trim(clip, int ''first_frame'', int -''num_frames'' [, bool ''"pad"'']) |
− | |Trim(clip, int '' | + | |Trim(clip, int ''first_frame'', [int ''"end"'' , bool ''"pad"'']) |
+ | |Trim(clip, int ''first_frame'', [int ''"length"'' , bool ''"pad"'']) | ||
}} | }} | ||
− | '''Trim''' trims a clip so that it includes only the frames {{FuncArg| | + | '''Trim''' trims a clip so that it includes only the frames {{FuncArg|first_frame}} up to and including {{FuncArg|last_frame}}. The audio is similarly trimmed so that it stays synchronized (see {{FuncDef|pad}} below). Remember AviSynth starts counting at frame 0. |
− | If you set a negative value for the second argument, that is '''-'''{{FuncArg| | + | If you set a negative value for the second argument, that is '''-'''{{FuncArg|num_frames}}, you will get a clip starting at {{FuncArg|first_frame}} and running for {{FuncArg|num_frames}} frames. If you set {{FuncArg|last_frame}} to zero, you will get a clip starting at {{FuncArg|first_frame}} and running to the end of the clip. |
{{Par2|end|int|0}} | {{Par2|end|int|0}} | ||
Line 15: | Line 16: | ||
:* <tt>Trim(3, 7) </tt> → <tt> Trim(3, end=7)</tt> | :* <tt>Trim(3, 7) </tt> → <tt> Trim(3, end=7)</tt> | ||
:* <tt>Trim(3, -5)</tt> → <tt> Trim(3, length=5)</tt> | :* <tt>Trim(3, -5)</tt> → <tt> Trim(3, length=5)</tt> | ||
− | :Unlike the | + | :Unlike the first_frame syntax, the alternate syntax has no discontinuous boundary values: {{FuncArg|end}}=0 means end at frame 0; {{FuncArg|length}}=0 means return a zero length clip. These are most useful in avoiding unexpected boundary conditions in your user functions. |
{{Par2|pad|bool|true}} | {{Par2|pad|bool|true}} | ||
Line 25: | Line 26: | ||
== AudioTrim == | == AudioTrim == | ||
− | {{Template: | + | {{Template:Func4Def |
− | |AudioTrim(clip, float '' | + | |AudioTrim(clip, float ''start_time'', float ''end_time'') |
− | |AudioTrim(clip, float '' | + | |AudioTrim(clip, float ''start_time'', float -''duration'') |
− | |AudioTrim(clip, float '' | + | |AudioTrim(clip, float ''start_time'' [, float ''"end"'']) |
+ | |AudioTrim(clip, float ''start_time'' [, float ''"length"'']) | ||
}} | }} | ||
− | '''AudioTrim''' (in Avisynth v2.60) trims a clip based on ''time'', not on ''frames''. This is most useful for audio-only clips, where "frames" have no meaning anyway, and you may want to edit with finer precision than whole frames (at 30fps, 1 frame=33.3ms). The returned clip includes only the audio (or video+audio) from time {{FuncArg| | + | '''AudioTrim''' (in Avisynth v2.60) trims a clip based on ''time'', not on ''frames''. This is most useful for audio-only clips, where "frames" have no meaning anyway, and you may want to edit with finer precision than whole frames (at 30fps, 1 frame=33.3ms). The returned clip includes only the audio (or video+audio) from time {{FuncArg|start_time}} up to and including time {{FuncArg|end_time}}. All time arguments are in seconds. |
− | If you set a negative value for the second argument, that is '''-'''{{FuncArg| | + | If you set a negative value for the second argument, that is '''-'''{{FuncArg|duration}}, you will get a clip starting at {{FuncArg|start_time}} seconds and running for {{FuncArg|duration}} seconds. If you set {{FuncArg|end_time}} to zero, you will get a clip starting at {{FuncArg|start_time}} seconds and running to the end of the clip. |
{{Par2|end|float|0.0}} | {{Par2|end|float|0.0}} |
Revision as of 01:36, 8 January 2016
Contents |
Trim
Trim(clip, int first_frame, int last_frame [, bool "pad"])
Trim(clip, int first_frame, int -num_frames [, bool "pad"])
Trim(clip, int first_frame, [int "end" , bool "pad"])
Trim(clip, int first_frame, [int "length" , bool "pad"])
Trim trims a clip so that it includes only the frames first_frame up to and including last_frame. The audio is similarly trimmed so that it stays synchronized (see pad below). Remember AviSynth starts counting at frame 0.
If you set a negative value for the second argument, that is -num_frames, you will get a clip starting at first_frame and running for num_frames frames. If you set last_frame to zero, you will get a clip starting at first_frame and running to the end of the clip.
int end = 0
int length = 0
- In Avisynth v2.60, you may use the alternate syntax with named arguments; for example,
- Trim(3, 7) → Trim(3, end=7)
- Trim(3, -5) → Trim(3, length=5)
- Unlike the first_frame syntax, the alternate syntax has no discontinuous boundary values: end=0 means end at frame 0; length=0 means return a zero length clip. These are most useful in avoiding unexpected boundary conditions in your user functions.
bool pad = true
- Causes the audio stream to be padded to align with the video stream. Otherwise the tail of a short audio stream is left so. You should use pad=false when the soundtracks being joined were originally contiguous (see Splice)
- Trim with audio-only clips
In AviSynth v2.60, to trim an audio-only clip, you simply set a fake frame rate with AssumeFPS. In earlier versions you cannot do this: you must make a BlankClip, use AudioDub, trim that, and then KillVideo. Otherwise, AviSynth returns the error message "cannot trim if there is no video".
AudioTrim
AudioTrim(clip, float start_time, float end_time)
AudioTrim(clip, float start_time, float -duration)
AudioTrim(clip, float start_time [, float "end"])
AudioTrim(clip, float start_time [, float "length"])
AudioTrim (in Avisynth v2.60) trims a clip based on time, not on frames. This is most useful for audio-only clips, where "frames" have no meaning anyway, and you may want to edit with finer precision than whole frames (at 30fps, 1 frame=33.3ms). The returned clip includes only the audio (or video+audio) from time start_time up to and including time end_time. All time arguments are in seconds.
If you set a negative value for the second argument, that is -duration, you will get a clip starting at start_time seconds and running for duration seconds. If you set end_time to zero, you will get a clip starting at start_time seconds and running to the end of the clip.
float end = 0.0
float length = 0.0
- You may prefer the alternate syntax with named arguments; for example,
- AudioTrim(3.0, 7.0) → AudioTrim(3.0, end=7.0)
- AudioTrim(3.0, -4.0) → AudioTrim(3.0, length=4.0)
Examples
Trim(100,0) # delete the first 100 frames, audio padded # or trimmed to match the video length.
Trim(100,0,false) # delete the first 100 frames of audio and video, # the resulting stream lengths remain independent.
Trim(100,-100) # is the same as trim(100,199) ie, start=100, duration=100
Trim(100,199,false) # audio will be trimmed if longer but not # padded if shorter to frame 199
Trim(0,-1) # returns only the first frame Trim(0,end=0) # Trim(0,length=1) #
AudioTrim(1,5.5) # keeps the audio samples between 1 and 5.5 seconds AudioTrim(1,end=5.5) #
AudioTrim(1,-5.5) # cuts the first second and keeps the following 5.5 seconds AudioTrim(1,length=5.5) #
Changes
v2.60 | Added AudioTrim. Added length and end parameters. |
v2.56 | Added pad audio. |