Show HN: Remove Silence from Videos with Ffmpeg There was recently a Show HN for a program that lets one remove silence from video files [0]. I was almost certain that ffmpeg could do this... But after searching for it, it turned out I was wrong: ffmpeg can't do this out of the box, and also can't read input from an EDL file [1]. So I set out to write a solution, as simple as possible: produce a list of select filters that are applied to video and audio, and retain only the non-silent parts. The 'silencedetect' audio filter detects silences, and produces timestamps for when silences start and end. So one can pipe the output of that to a Python script, that builds an ffmpeg command with the appropriate select filters. The resulting ffmpeg command can be run to re-encode the video without the silent parts. Hope this helps. - - - Notes: 1/ I did find something somewhat similar to what I ended up doing [2], but it's complicated, and does the video encoding inside of Python. Granted, moviepy uses ffmpeg under the hood, but it's still better if ffmpeg does all the encoding directly. 2/ This solution doesn't produce a myriad of intermediary files that it would recombine afterwards; there is just one encoding of the output video file. 'silencedetect' is very fast, so all in all running this should be pretty fast. [0] https://ift.tt/Z3rGyml [1] https://ift.tt/4Ek3ZIP [2] https://ift.tt/woEcbdH... https://ift.tt/nIL07A6 June 18, 2022 at 11:21PM
0 Comments