Skip to content

mr-pylin/video-processing-workshop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

16 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“· Video Processing Workshop

License Python Version FFmpeg Code Style Repo Size Last Updated PRs Welcome Telegram

A comprehensive resource for diving deep into the fascinating world of digital video processing. Whether you're starting from the basics or looking to refine your advanced skills, this workshop provides hands-on guidance and clear explanations.

πŸ“– Table of Contents

  1. Introduction to Digital Video

πŸ“‹ Prerequisites

Note

The mathematics requirements below are not mandatory but will significantly deepen your understanding of machine learning concepts.

βš™οΈ Setup

Important

This project requires Python v3.10 or higher. For optimal compatibility and to avoid potential issues with dependencies, it is strongly advised that you use the Python version specified in the .python-version file.

πŸ“ List of Dependencies

av ImageIO ipykernel ipympl ipywidgets matplotlib numpy opencv-python scipy

πŸ“¦ Installing Dependencies

1️⃣ Method 1: uv (Recommended βœ…)

  • Use uv for dependency management. It handles dependencies, virtual environments, and locking versions more efficiently.

  • To install exact dependency versions specified in uv.lock for consistent environments without installing the current project as a package:

    uv sync --no-install-project

2️⃣ Method 2: pip

  • Install all dependencies listed in requirements.txt using pip:

    pip install -r requirements.txt

Caution

pip does not lock dependency versions as strictly as uv. You may encounter version conflicts or reproducibility issues. Only use this method if you know what you are doing.

πŸ› οΈ Usage Instructions

  1. Open the root folder in VS Code (Ctrl/Cmd + K then Ctrl/Cmd + O).
  2. Open .ipynb files using the Jupyter extension integrated within VS Code.
  3. Allow VS Code to install any recommended dependencies for working with Jupyter Notebooks.
  4. Select the correct Python kernel and virtual environment in which the dependencies were installed.

Note

  • Stick with the exact dependency versions specified in uv.lock or requirements.txt. The repository has been tested with these versions to ensure compatibility and stability.
  • This repository is actively maintained, and dependencies are updated regularly to the latest stable versions.
  • The table of contents embedded within notebooks (.ipynb files) may not function correctly on GitHub.
  • For an improved experience, open the notebooks locally or view them via nbviewer, rather than directly on GitHub.

πŸ”— Usefull Links

Tools

Benchmark Files

Codecs

  • Codecs are algorithms used to compress and decompress signals, ensuring efficient storage and transmission of high-quality signals e.g. videos.
  • For detailed information on popular video codecs, refer to the ./codecs/README.md.

NumPy

  • A fundamental package for scientific computing in Python, providing support for arrays, matrices, and a large collection of mathematical functions.
  • Official site: numpy.org

Data Visualization

OpenCV (Open Source Computer Vision)

  • A powerful open-source library (primarily written in C++) for computer vision and image processing tasks.
  • Supports a wide range of functionalities, including image and video processing, object detection, facial recognition, and more.
  • Compatible with multiple programming languages, including Python, C++, and Java.
  • Official sites: opencv.org

🀝 Contributions & Feedback

  • Found an issue, have a suggestion, or wish to contribute? Your input is highly valued.
  • Reach out to me via linktr.ee/mr_pylin.

πŸ“„ License

This project's code is licensed under the Apache License 2.0. This license grants you the freedom to use, modify, and distribute the code. However, any distribution of the code must include copies of both the LICENSE and NOTICE files.

©️ Copyright Information

  • βœ… Original Assets:

    • The assets located in the ./assets/original/ folder are licensed under the CC BY-ND 4.0.
    • Note: This license restricts derivative works, meaning you may share these assets but cannot modify them.
  • 🌐 External Assets:

    • The assets located in the ./assets/external/ folder are collected from multiple third-party sources.
    • Each subfolder within ./assets/external/ contains its own ATTRIBUTION.md file detailing the relevant copyright, license, and attribution information for the assets within that specific subfolder.
    • Users must review the applicable ATTRIBUTION.md file before using, redistributing, or modifying any external asset.

⚠️ Concerns & Reporting

  • If you are a copyright holder and believe that any asset in this repository has been included improperly or without appropriate attribution, please contact the repository maintainer.
  • Upon verification, the content will be promptly corrected or removed as necessary.

About

A comprehensive resource for diving deep into the fascinating world of digital video processing.

Topics

Resources

License

Stars

Watchers

Forks

Contributors