silenceremove
Remove silence from the beginning, middle or end of the audio.
The filter accepts the following options:
- start_periods
This value is used to indicate if audio should be trimmed at beginning of the audio. A value of zero indicates no silence should be trimmed from the beginning. When specifying a non-zero value, it trims audio up until it finds non-silence. Normally, when trimming silence from beginning of audio the start_periods will be
1
but it can be increased to higher values to trim all audio up to specific count of non-silence periods. Default value is0
.- start_duration
Specify the amount of time that non-silence must be detected before it stops trimming audio. By increasing the duration, bursts of noises can be treated as silence and trimmed off. Default value is
0
.- start_threshold
This indicates what sample value should be treated as silence. For digital audio, a value of
0
may be fine but for audio recorded from analog, you may wish to increase the value to account for background noise. Can be specified in dB (in case "dB" is appended to the specified value) or amplitude ratio. Default value is0
.- start_silence
Specify max duration of silence at beginning that will be kept after trimming. Default is 0, which is equal to trimming all samples detected as silence.
- start_mode
Specify mode of detection of silence end at start of multi-channel audio. Can be any or all. Default is any. With any, any sample from any channel that is detected as non-silence will trigger end of silence trimming at start of audio stream. With all, only if every sample from every channel is detected as non-silence will trigger end of silence trimming at start of audio stream, limited usage.
- stop_periods
Set the count for trimming silence from the end of audio. When specifying a positive value, it trims audio after it finds specified silence period. To remove silence from the middle of a file, specify a stop_periods that is negative. This value is then treated as a positive value and is used to indicate the effect should restart processing as specified by stop_periods, making it suitable for removing periods of silence in the middle of the audio. Default value is
0
.- stop_duration
Specify a duration of silence that must exist before audio is not copied any more. By specifying a higher duration, silence that is wanted can be left in the audio. Default value is
0
.- stop_threshold
This is the same as start_threshold but for trimming silence from the end of audio. Can be specified in dB (in case "dB" is appended to the specified value) or amplitude ratio. Default value is
0
.- stop_silence
Specify max duration of silence at end that will be kept after trimming. Default is 0, which is equal to trimming all samples detected as silence.
- stop_mode
Specify mode of detection of silence start after start of multi-channel audio. Can be any or all. Default is all. With any, any sample from any channel that is detected as silence will trigger start of silence trimming after start of audio stream, limited usage. With all, only if every sample from every channel is detected as silence will trigger start of silence trimming after start of audio stream.
- detection
Set how is silence detected.
- avg
Mean of absolute values of samples in moving window.
- rms
Root squared mean of absolute values of samples in moving window.
- peak
Maximum of absolute values of samples in moving window.
- median
Median of absolute values of samples in moving window.
- ptp
Absolute of max peak to min peak difference of samples in moving window.
- dev
Standard deviation of values of samples in moving window.
Default value is
rms
.- window
Set duration in number of seconds used to calculate size of window in number of samples for detecting silence. Using
0
will effectively disable any windowing and use only single sample per channel for silence detection. In that case it may be needed to also set start_silence and/or stop_silence to nonzero values with also start_duration and/or stop_duration to nonzero values. Default value is0.02
. Allowed range is from0
to10
.- timestamp
Set processing mode of every audio frame output timestamp.
- write
Full timestamps rewrite, keep only the start time for the first output frame.
- copy
Non-dropped frames are left with same timestamp as input audio frame.
Defaults value is
write
.
Examples
- The following example shows how this filter can be used to start a recording
that does not contain the delay at the start which usually occurs between
pressing the record button and the start of the performance:
silenceremove=start_periods=1:start_duration=5:start_threshold=0.02
- Trim all silence encountered from beginning to end where there is more than 1
second of silence in audio:
silenceremove=stop_periods=-1:stop_duration=1:stop_threshold=-90dB
- Trim all digital silence samples, using peak detection, from beginning to end
where there is more than 0 samples of digital silence in audio and digital
silence is detected in all channels at same positions in stream:
silenceremove=window=0:detection=peak:stop_mode=all:start_mode=all:stop_periods=-1:stop_threshold=0
- Trim every 2nd encountered silence period from beginning to end where there is
more than 1 second of silence per silence period in audio:
silenceremove=stop_periods=-2:stop_duration=1:stop_threshold=-90dB
- Similar as above, but keep maximum of 0.5 seconds of silence from each trimmed period:
silenceremove=stop_periods=-2:stop_duration=1:stop_threshold=-90dB:stop_silence=0.5
- Similar as above, but keep maximum of 1.5 seconds of silence from start of audio:
silenceremove=stop_periods=-2:stop_duration=1:stop_threshold=-90dB:stop_silence=0.5:start_periods=1:start_duration=1:start_silence=1.5:stop_threshold=-90dB