24AACL05
Senior Mentor:Rohitha Tunikpati
Junior Mentor:Yellanki Ekantha Sai Sundar
Team Member 1:Charshitha Saineni
Team Member 2:Jahnavi Gummadi
Team Member 3:Kurukunda Srikari
Team Member 4:Popuri Pratima
The Video Summarizer project is designed to process and summarize MP4 video files by extracting unique frames based on frame differences 🎞️. This helps in creating a shorter version of the video by retaining only the essential frames, making it easier to review and analyze 🔍. The project leverages OpenCV and Numpy for video processing, and Streamlit to create an interactive web interface 🖥️.
1) 🎥 MP4 to NPY Conversion: Converts uploaded MP4 video files into NPY format, storing the video frames as a numpy array.
2) ✂️ Frame Summarization: Utilizes frame difference to identify and retain unique frames, removing redundant frames to create a summarized video.
3) 📊 Real-time Metrics: Displays metrics such as total frames, unique frames, common frames, and summarization ratio.
4) 🖱️ Interactive Web Interface: A user-friendly interface built with Streamlit for easy video uploading, processing, and visualization of results.
5) 🔄 Automated Video Conversion: Uses ffmpeg to convert summarized AVI files into MP4 format for easier playback and sharing.
6) 📁 NPY to Summarized AVI and MP4: Converts NPY file to a summarized AVI file and then back to MP4 format for simplified viewing and sharing.
🐍 Python: Ensure Python is installed on your system.
🎞️ OpenCV: For video processing and frame extraction.
📐 Numpy: For handling and processing video frames.
🖥️ Streamlit: For creating the interactive web interface.
🔧 ffmpeg: For video format conversion.
1️⃣ Install the required dependencies:
pip install streamlit opencv-python-headless numpy
2️⃣ Ensure ffmpeg is installed and accessible from your system's PATH.
3️⃣ Run the Streamlit application:
streamlit run video_summarizer.py
⬆️ Upload Video: Use the Streamlit web interface to upload an MP4 video file.
⚙️ Convert and Summarize: The application converts the video into NPY format and summarizes the frames based on the specified threshold.
👀 View Results: View the metrics and play the summarized video directly within the Streamlit interface.
🎞️ Total Frames: The total number of frames present in the original video.
⭐ Unique Frames: The number of unique frames retained after summarization.
🗑️ Common Frames: The number of redundant frames removed during summarization.
📉 Summarization Ratio: The ratio of unique frames to total frames, indicating the efficiency of the summarization process.
Some of the real-time applications of this project include:
🏅 Sports Highlights Generation: Automatically generate highlights of sports events by summarizing key moments, such as goals, touchdowns, or spectacular plays.
🦁 Wildlife Monitoring: Use the summarizer to condense hours of wildlife footage into clips showing significant animal behavior or rare sightings.
🚨 Disaster Response: Summarize drone footage of disaster-stricken areas to quickly identify and assess damage, aiding in relief and recovery efforts.
🔐 Security Incident Reporting: Create concise reports of security incidents by summarizing surveillance footage, making it easier for authorities to review and respond to events.
🏗️ Construction Site Monitoring: Summarize time-lapse videos of construction sites to highlight progress, identify potential safety issues, and ensure compliance with project timelines. This can help project managers and stakeholders quickly review the status and critical milestones of construction projects.
1️⃣ Advanced Frame Analysis: Developers can implement more sophisticated frame analysis techniques to improve summarization accuracy. Some of the techniques include Optical Flow Analysis, Histogram-Based Methods, Structural Similarity Index (SSIM), Keyframe Extraction Using Clustering, Scene Change Detection, etc.
2️⃣ Customizable Threshold: The application can be enhanced to allow users to adjust the frame difference threshold for summarization.
3️⃣ Batch Processing: The system can be upgraded to enable batch processing of multiple video files for large-scale video summarization.
A Streamlit-based web application that extracts YouTube video transcripts, summarizes them based on a selected percentage, translates the summary into multiple languages (including Indian languages), and converts the translated summary into audio using Text-to-Speech.
- 🔗 Extract transcripts from YouTube videos
- ✂️ Summarize transcripts using a user-defined percentage
- 🌍 Translate summaries into multiple global and Indian languages
- 🔊 Convert translated summaries into speech (MP3 format)
- 🖥️ Simple, interactive, and user-friendly Streamlit interface
- Python
- Streamlit – for building the web UI
- youtube-transcript-api – to fetch YouTube video transcripts
- NLTK – for sentence tokenization
- deep-translator – for translating text
- gTTS (Google Text-to-Speech) – for audio generation
- Open a terminal or command prompt in your project folder.
- Create a virtual environment to keep your dependencies isolated:
#Windows python -m venv .venv
macOS / Linux
python3 -m venv .venv- Activate the virtual environment:
# Windows .venv\Scripts\activate.ps1
macOS / Linux
source .venv/bin/activate- Install the required libraries:
pip install -r requirements.txt- Launch the Streamlit application:
streamlit run app.py- The application will automatically open in your default web browser. If it does not, access it at:
http://localhost:8501- English
- Spanish
- French
- German
- Hindi
- Telugu
- Tamil
- Kannada
- Malayalam
- Marathi
- Bengali
- Gujarati
- Punjabi
- Odia
- Assamese
- Urdu
- Enter a YouTube video URL
- Fetch the transcript using
youtube-transcript-api - Summarize the transcript based on the selected percentage
- Translate the summary into the chosen language
- Convert the translated summary into audio
- Play the audio directly within the application
This tool solves the "too much video, too little time" problem across various sectors:
🎓 Education & Research: Students can condense 2-hour university lectures into key bullet points for efficient exam revision, reducing study time by focusing on core academic concepts.
🗣️ Language Learning: Learners can watch content in a foreign language while generating summaries in their native tongue to compare syntax and pronunciation, supporting bilingual comprehension.
📊 Competitor Analysis: Marketers can summarize lengthy competitor webinars or product demos to extract feature updates quickly, enabling rapid market research without manual video scrubbing.
✍️ Content Repurposing: Creators can transform long-form podcasts into 10% summaries to use as drafts for LinkedIn posts, newsletters, or social media scripts.
🌍 International News Monitoring: Summarize and translate global news (e.g., French broadcasts to Hindi) to gain diverse perspectives on world events and break down information barriers.
🔊 Accessibility: The integrated Text-to-Speech (TTS) allows users with visual impairments to listen to the "gist" of visual-heavy content through descriptive audio summaries.
🚜 Social & Regional Impact: Critical information like government schemes or agricultural tips can be translated and played back in regional Indian languages like Telugu, Marathi, or Bengali, empowering non-English speakers.
- Works only for videos with publicly available transcripts
- Uses extractive summarization, not AI-based abstractive summarization
- Very long transcripts may be truncated due to API limits
- Translation and Text-to-Speech depend on external services
- AI-based abstractive summarization using BERT / GPT
- Keyword-based summaries
- Download summaries as PDF or TXT
- Improved user interface and accessibility
- Support for additional languages