This was the final project for my multimedia course, written in Java with a teammate. The goal: take a video and produce a shorter one that keeps the parts worth watching, working directly with raw RGB frames and a WAV audio track rather than a high-level video library.
Code and write-up: github.com/JackyLiu47/Video_Summarize
How it is organised
The repository splits the work into a few small programs:
VideoAnalyzerandaudioAnalyzelook at the visual and audio content.summarizecombines that analysis and writes out the summary: a new folder of selected RGB frames and a matching summarised.wavfile.videoDisplayplays the result back, keeping picture and sound in sync (PlayWaveFilehandles the audio).
Using it
javac ././*.java
# summarise: <frames folder> <audio file> <offset: 0 | 1 | 2>
java summarize.java .\concert\ .\concert.wav 0
# play the summary
java videoDisplay.java .\concertsummarize\ .\concertAudio.wav
The tool writes <name>summarize (frames) and the summarised audio next to the input, and the player is then pointed at those outputs.
What it taught me
Working with raw frames and PCM audio makes the cost of every decision visible: how many frames you touch, how you keep audio and video aligned after cutting, what “important” even means for a clip. It is a good antidote to treating video as a black box. The full project report is included in the repository as a PDF.