Is there any audio/video player that can skip over the parts in which the sound is below a certain level automatically? Watching lectures with uninteresting bits is horrendous!
5 Answers
There are a few python scripts, mostly working with ffmpeg about that could help:
- Video Grep can either look for specific words in the subtitles of videos
- MoviePy can be used to extract the audio from the video, you can then process it to identify the time periods when the sound is below a given level and generate a set of clips when there is some sound and reassemble them into a new video.
- I did see a blog post that covered using IIRC OpenCV that detected the audio levels in football matches so as to create a highlights video but I can't currently locate it.
A specific example that I found was doing the reverse, i.e. using the times with the audio volume peaking to detect the goals being scored in a football/soccer game this can be found here it should be relatively easy to convert this to what you need.
-
Can you add an example code with moviepy, or opencv ,etc? Thanks May 8, 2021 at 21:01
-
2@hosseinhayati I have added a link to some code that does the reverse selecting peak audio times. May 11, 2021 at 8:23
Right now, the only (low-effort) solution that I know it's to upload the video to youtube and watch it on NewPipe with fast-forward over silence on.
NewPipe uses ExoPlayer by Google, which is a video player that offers this utility in the API.
-
1
-
1
-
-
1@hosseinhayati try this dranger.com/ffmpeg or read this code github.com/TeamNewPipe/NewPipe– RainbMay 10, 2021 at 16:50
Since you have the video files on your machine, one approach is to edit the video files themselves, instead of having it be a feature of the video player.
jumpcutter
The best software to do this that I was able to find is jumpcutter. There is a nice video explaining the theory behind how it works.
If you have some basic Python knowledge, the GitHub link above is all you need to get started. If not, you can check the guide here for the steps.
unsilence
Another Python tool I found is unsilence. I have not used it personally, but it seems to be pretty good. There is an example posted where they were able to reduce the length of a lecture video by 20%. The command-line installation and usage instructions on the link I posted seem to be pretty clear.
-
1I've tested most of the methods: @Steve Barnes's new edit has a great example using
MoviePy
for writing a code to do it as you want, (as I am busy right now, I just read the article but didn't have time to try it myself). @Rainb:Newpipe
is a great app, the advantage is it is real time , and disadvantage is the app is online, you have to upload your video first. And finally the methods @hb20007 mentioned:jumpcutter
uses too much storage while processing, and the most straight forward method wasunsilence
which is simple, gives great results and can be adjusted. thank you all May 15, 2021 at 7:44
There are browser extensions that can do this:
In general they work on any website, with varying efficiency. You can also open local files in the browser. Also mobile browsers are now beginning to support web extensions more and more.