From 29895669cc5001bf2dacff486bf2333eabdb5956 Mon Sep 17 00:00:00 2001 From: M V Harinandan Date: Tue, 30 Dec 2025 11:28:30 +0530 Subject: [PATCH] Revise README for clarity and visual appeal Updated README to enhance clarity and organization, added emojis for better visual appeal, and improved section headings. --- README.md | 140 ++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 98 insertions(+), 42 deletions(-) diff --git a/README.md b/README.md index 07587a8..ad3edde 100644 --- a/README.md +++ b/README.md @@ -1,55 +1,111 @@ -# video-processing-distributed +# ๐ŸŽฅ Video Processing Distributed -## Master Controller +## ๐Ÿง  Master Controller -This project provides a **distributed video processing system** using: -- **Streamlit** for the UI -- **Flask** for the worker-facing API -- **FFmpeg** for merging -- **MP4Box** for video splitting -- **Multiple worker nodes** that pick up chunks, encode them, and return processed video parts. +This project implements a **distributed video processing system** using a masterโ€“worker model. +You control everything from a simple UI, while worker nodes handle video chunks in parallel. -The master automatically: -1. Accepts a large input MP4 -2. Splits it into chunks -3. Assigns each chunk to workers -4. Waits for all jobs to complete -5. Merges encoded chunks into a final MP4 -6. Deletes all temporary chunk folders (chunks + results) +### ๐Ÿ”ง Tech Stack + +* ๐Ÿ–ฅ๏ธ Streamlit for the master UI +* ๐ŸŒ Flask for worker communication +* ๐ŸŽž๏ธ FFmpeg for encoding and merging +* โœ‚๏ธ MP4Box for video splitting +* ๐Ÿงฉ Multiple worker nodes for parallel processing + +--- + +## โš™๏ธ How the System Works + +The master node performs the following steps automatically: + +1. ๐Ÿ“ฅ Accepts a large input MP4 file +2. โœ‚๏ธ Splits the video into time-based chunks +3. ๐Ÿ“ค Assigns chunks to available worker nodes +4. โณ Waits for all workers to finish processing +5. ๐Ÿ”— Merges processed chunks into a final MP4 +6. ๐Ÿงน Cleans up all temporary chunk and output folders + +--- + +## ๐Ÿ“ฆ Requirements + +### ๐Ÿ Python Libraries (Master Node) + +Install using pip: + +* flask +* werkzeug +* streamlit +* streamlit-autorefresh +* pandas +* requests + +### ๐Ÿง‘โ€๐Ÿ’ป Worker Node Requirements + +Only the following are required: + +* requests +* ffmpeg + +--- + +## ๐Ÿ› ๏ธ System Dependencies + +### โœ‚๏ธ MP4Box (Master Node Only) + +Used for splitting videos into chunks. + +* Command used: + MP4Box -split `` +* Download via official GPAC site or YouTube guides +* Ensure MP4Box is added to system PATH + +### ๐ŸŽž๏ธ FFmpeg (Master + Worker Nodes) + +Used for encoding and merging video chunks. + +Install on Windows: + +``` +winget install ffmpeg +``` + +Verify both `ffmpeg` and `MP4Box` are accessible from the terminal. --- -## Requirements - -### Python libraries (install with pip) -- flask -- werkzeug -- streamlit -- streamlit-autorefresh -- pandas -- requests - -For worker node need to install only `requests` and `ffmpeg` - -### System Dependencies (must be installed manually) -- **MP4Box (GPAC)-(Only needed in master node)** - Required for splitting video into chunks: MP4Box -split - Refer google or youtube for downloading it -- **FFmpeg(Needed both in master and worker node)** - Required for merging processed chunks. - Install in windows using - ``` - winget ffmpeg - ``` -Ensure both `ffmpeg` and `MP4Box` are available in your system PATH. - -Run the master node using streamlit +## โ–ถ๏ธ Running the Master Node + +Start the master controller UI: + ``` streamlit run master.py ``` -Ensure that the system is configured for getting inbound through the specified port. Used here is **5000**. -You can set up in windows by adding a new inbound tcp for port 5000 rule in firewall. +--- + +## ๐Ÿ” Network Configuration + +* Master node listens on port **5000** +* Ensure inbound TCP traffic is allowed on this port + +### Windows Firewall Setup + +* Add a new inbound rule +* Protocol: TCP +* Port: 5000 +* Action: Allow + +--- + +## ๐Ÿš€ Use Case +This project demonstrates: +* Distributed computing fundamentals +* Parallel video encoding +* Masterโ€“worker architecture +* Practical use of FFmpeg in Python systems +Ideal for academic experiments, demos, and learning distributed systems through multimedia processing.