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:

  • VideoAnalyzer and audioAnalyze look at the visual and audio content.
  • summarize combines that analysis and writes out the summary: a new folder of selected RGB frames and a matching summarised .wav file.
  • videoDisplay plays the result back, keeping picture and sound in sync (PlayWaveFile handles 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.