

Repeat until all sections of silence are exhausted Store the end of the next section of silence in a variable Write out a clip from the end of the last section of silence, until the start of the next section of silence, and store it in a list The logic for writing out clips works like so: I track when the next clip to be written out should start in the last variable, to track when the last section of silence ended. There are a few sanity checks using that to determine if a clip should be extracted yet or not. You will see there is a minimum_duration, that is because I found in testing that moviepy will crash when trying to write out a clip that is less than a second. So I want to add about half a second of padding to when the next clip is suppose to start to make it less abrupt. I noticed the jumps between the clips is kinda sudden and too abrupt. Silence_file - the file path to the file generated by the silence detectionĮase_in - a work in progress concept. Here I pass in 3 required and 1 optional argument:įile_in - the input file to work on, should be the same as the one passed into the silence detection scriptįile_out - the file path to save the final version to write_videofile ( file_out, fps = 60, preset = 'ultrafast', codec = 'libx264' ) in_handle. subclip ( float ( last ) - ease )) processed_video = concatenate_videoclips ( clips ) processed_video. That leaves us with the actual ffmpeg command:įfmpeg -hide_banner -vn -i $IN -af "silencedetect=n=$)". THRESH - the volume threshold the filter uses to determine what counts as silenceĭURATION - the length of time in seconds the audio needs to stay below the threshold to count as a section of silence

IN - the file path to the video I want to analyze I'm passing in three arguments to this script:


Enter fullscreen mode Exit fullscreen mode
