I spent a few hours writing this program that analyses the sound from a movie, finds the points of highest sound intensity (supposedly during climax) and automatically plays the video from those points. It uses some simple hand-written digital signal filters and peak finding algorithms; no external libraries.
When running it, it will take some time (seconds to minutes depending on your computer and the size of the video) before anything happens since FFmpeg has to convert the movie audio to WAV before sending it to the program. VLC will then start. It will jump to a time a little before the highest audio intensity (orgasm?), play for 30 seconds and then switch to the time of next-highest audio intensity and so on, up to 5 different points. The program works as expected if you give it several movies, processing and showing them in-order.
Extract all the files from the .zip archive to a folder. Then do either (A) or (B):
(A) Find a movie to analyze and drag-and-drop it onto the audiointensity.bat file. Done.
OR:
(B) Open a command line prompt (Windows-button -> Run -> Cmd.exe) and navigate to the correct folder. Suppose the movie you want to analyze is called Movie1.wmv. In that case, enter
audiointensity.bat Movie1.wmv
and press Enter.
Extract all the files from the .zip archive to a folder. Then do either (A) or (B):
(A) Find a movie to analyze and drag-and-drop it onto the audiointensity.sh file. Done.
OR
(B) Open a terminal window and navigate to the correct folder. Suppose the movie you want to analyze is called Movie1.wmv. In that case, enter
./audiointensity.sh Movie1.wmv
and press Enter.
In the same directory as the .c file simply run:
gcc audiointensity.c -o audiointensity.exe
Compiling and archiving can be done in one command using the create-release-windows.sh script. Observe that this requires a Bash shell to run, which is included in Cygwin or Msysgit, for example.
In the same directory as the .c file simply run:
gcc audiointensity.c -o audiointensity
Compiling and archiving can be done in one command using the create-release-unix.sh script.