{"id":18222591,"url":"https://github.com/luewh/VideoScripy","last_synced_at":"2025-10-09T06:31:07.816Z","repository":{"id":260887992,"uuid":"882070255","full_name":"luewh/VideoScripy","owner":"luewh","description":"WebUI for hardware accelerated video optimizing, upscaling, interpolating processes","archived":false,"fork":false,"pushed_at":"2025-01-24T15:58:50.000Z","size":22950,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-24T16:35:58.903Z","etag":null,"topics":["dash-plotly","ffmpeg","hardware-acceleration","python","video-interpolation","video-processing","video-upscaling","webui","windows"],"latest_commit_sha":null,"homepage":"","language":"CSS","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/luewh.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-01T20:19:45.000Z","updated_at":"2025-01-24T15:58:54.000Z","dependencies_parsed_at":"2024-11-14T12:53:16.012Z","dependency_job_id":"4c24072c-0a22-4b3f-989d-ce8a8fbe2106","html_url":"https://github.com/luewh/VideoScripy","commit_stats":null,"previous_names":["luewh/video-script","luewh/videoscripy"],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luewh%2FVideoScripy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luewh%2FVideoScripy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luewh%2FVideoScripy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luewh%2FVideoScripy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/luewh","download_url":"https://codeload.github.com/luewh/VideoScripy/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":235801792,"owners_count":19047126,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dash-plotly","ffmpeg","hardware-acceleration","python","video-interpolation","video-processing","video-upscaling","webui","windows"],"created_at":"2024-11-04T00:00:28.665Z","updated_at":"2025-10-09T06:30:57.804Z","avatar_url":"https://github.com/luewh.png","language":"CSS","readme":"# \u003cimg src=\"./assets/favicon.ico\" alt=\"drawing\" width=\"20px\"/\u003e VideoScripy \u0026 WebUI \r\n\r\nVideoScripy is a collection of video processes including video **Upscale** and video frame **Interpolation**, it uses Python to generate **FFmpeg**, **Real-ESRGAN** and **IFRNet** command line script and performes serial processing on scanned **mp4** videos with **hardware acceleration**.\r\n\r\nVideoScripyWebUI is a local web user interface developed with **Dash**, it has the goal of enhancing user experience.\r\n![demo.gif](./doc/demo_upscale.gif)\r\n\r\n\u003e \u003cspan style=\"color:red\"\u003e**⚠ Currently only compatible with Windows users who have Nvidia cards.**\u003c/span\u003e \r\n\r\n\r\n\r\n## Table of contents\r\n\r\n- [Requirements](#requirements)\r\n- [Embedded version](#embedded-version)\r\n- [Self setup version](#self-setup-version)\r\n- [Processes Description](#processes-description)\r\n- [Benchmarking](#benchmarking)\r\n- [Credits](#credits)\r\n\r\n\r\n\r\n## Requirements\r\n\r\n- Windows OS\r\n- NVIDIA GPU\r\n- Atleast 50 Go disk space free for Upscale process | 10 Go for Interpolate process\r\n- Python 3.10\r\n- [Tools](#installation-1)\r\n\r\n\r\n## Embedded version\r\n\r\nSimplest. Python, Tools are already setup.  \r\nAdvantage : **Beginner-friendly**\r\n\r\n### Installation\r\n\r\nDownload and extract the [Embedded release](https://github.com/luewh/Video-Script/releases/latest)\r\n\r\n### Usage\r\n\r\nRun the `RUN.bat`\r\n\r\n\r\n\r\n## Self setup version\r\n\r\nNeed to download the source codes, install Python and its dependencies, download tools and include them to tools folder or add them to PATH.    \r\nAdvantage : **Freedom**\r\n\r\n### Installation\r\n\r\n1. Download the source code and extract.\r\n\r\n1. Download and install Python 3.10 if you dont have.\r\n\r\n2. Install dependencies\r\n    ```shell\r\n    pip install -r requirements.txt\r\n    ```\r\n \r\n3. Download tools\r\n\r\n    [FFmpeg](https://www.gyan.dev/ffmpeg/builds/) full build for hardware acceleration.  \r\n    [Real-ESRGAN-ncnn-vulkan](https://github.com/xinntao/Real-ESRGAN-ncnn-vulkan/releases) for video upscaling.  \r\n    [Ifrnet-ncnn-vulkan](https://github.com/nihui/ifrnet-ncnn-vulkan/releases) for video frame interpolation.  \r\n\r\n4. Include tools\r\n    \r\n    Create a \"tools\" folder and place tools in like this:\r\n    ```\r\n    VideoScripy\r\n    │   ...\r\n    │   VideoScripyWebUI.py \r\n    └───tools\r\n    │   └───ffmpeg-full_build\r\n    │   │   │   ...\r\n    │   │   └───bin\r\n    │   │       │   ffmpeg.exe\r\n    │   │       │   ffprobe.exe\r\n    │   └───Real-ESRGAN\r\n    │   │   │   ...\r\n    │   │   │   realesrgan-ncnn-vulkan.exe\r\n    │   └───Ifrnet\r\n    │   │   │   ...\r\n    │   │   │   ifrnet-ncnn-vulkan.exe\r\n    ```\r\n\r\n    Or add them in the environment variable *PATH*\r\n    - `\u003cpathTo\u003e\\ffmpeg-full_build\\bin`\r\n    - `\u003cpathTo\u003e\\Real-ESRGAN`\r\n    - `\u003cpathTo\u003e\\Ifrnet`\r\n\r\n### Usage\r\n\r\nRun the `VideoScripyWebUI.py`\r\n\r\n\r\n\r\n## Processes Description\r\n\r\n- optimize  \r\n    Reduce the video biteRate in order to gain storage space.  \r\n    \u003cdetails\u003e\r\n    \u003csummary\u003eexpand more\u003c/summary\u003e\r\n        The processed videos will have a bitRate = width * height * quality, quality=3 is generally the lowest value before appearance of artifacts (bad images, blurry...). In other words, humain wont notice the visual difference between video of quality 3 and 6.\r\n    \u003c/details\u003e\r\n\r\n- resize  \r\n    Reduce the video width and height.\r\n\r\n- upscale  \r\n    Increase video size by factor of 2,3 or 4 with AI, enhance video quality.  \r\n    \u003cdetails\u003e\r\n    \u003csummary\u003eexpand more\u003c/summary\u003e\r\n        Begin with a transformation of video to image frames, then upscale each frames, finally reassemble to video.   \r\n        It has the ability to start from last upscal progress if the \"_upscaledx?_frame\" wasn't deleted.\r\n    \u003c/details\u003e\r\n\r\n    From 266x200 to 1064x800  \r\n    ![demo_upscale_s](./doc/demo_upscale_small.png)\r\n    ![demo_upscale_b](./doc/demo_upscale_big.png)\r\n\r\n- interpolate  \r\n    Increase video frame rate (FPS), smooth video.  \r\n    \u003cdetails\u003e\r\n    \u003csummary\u003eexpand more\u003c/summary\u003e\r\n        Begin with a transformation of video to image frames, then interpolate between frames, finally reassemble to video.\r\n    \u003c/details\u003e\r\n\r\n- preview  \r\n    Generate a grid of images.  \r\n    3x2 grid of 2min countdown video :\r\n    ![demo_preview](./doc/demo_preview.png)\r\n\r\n- stream  \r\n    Merge selected stream of multiple videos into one video.  \r\n    And also modify metadata as tile and language.  \r\n    Then use media player as PotPlayer to switch between video/audio/subtitle.\r\n\r\n\r\n\r\n## Benchmarking\r\n\r\n- ### x3 Faster FFprobe by running it \"asynchronously\"\r\n    ffprobe on 64 videos, ~2h long each  \r\n    ![Fast FFprobe](./doc/faster_way_to_run_ffprobe.png)\r\n\r\n\r\n\r\n## Credits\r\n\r\nThis project relies on the following software and projects :\r\n- [alive-progress](https://github.com/rsalmei/alive-progress)\r\n- [Real-ESRGAN](https://github.com/xinntao/Real-ESRGAN)\r\n- [IFRNet](https://github.com/ltkong218/IFRNet)\r\n- [FFmpeg](https://www.ffmpeg.org/)\r\n- [FFmpeg-python](https://github.com/kkroening/ffmpeg-python)\r\n- [Dash](https://dash.plotly.com/)\r\n\r\nSounds come from :\r\n- [Pixabay](https://pixabay.com/sound-effects/search/typewriter/)\r\n\r\n\r\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluewh%2FVideoScripy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fluewh%2FVideoScripy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluewh%2FVideoScripy/lists"}