VideoScripy


NameVideoScripy JSON
Version 0.0.1 PyPI version JSON
download
home_pageNone
SummaryCollection of video processes such as Optimize, Upscale and Interpolation.
upload_time2024-11-13 21:07:59
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseNone
keywords ffmpeg upscale interpolate video process
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            
# VideoScripy

VideoScripy is a collection of video processes including video Optimization, Upscale and frame Interpolation.

It uses Python to generate **FFmpeg**, **Real-ESRGAN** and **IFRNet** command line script to performes serial processing on scanned mp4 and mkv videos.

**⚠ Only compatible with Windows users who have Nvidia cards.**



## Requirements

- Windows OS

- NVIDIA card

Following tools in the environment variable **PATH** :

- [FFmpeg](https://www.gyan.dev/ffmpeg/builds/), full build for hardware acceleration.

- [Real-ESRGAN-ncnn-vulkan](https://github.com/xinntao/Real-ESRGAN-ncnn-vulkan/releases) for video upscaling.

- [Ifrnet-ncnn-vulkan](https://github.com/nihui/ifrnet-ncnn-vulkan/releases) for video frame interpolation.  



## Usage

```python
from videoscripy import VideoScripy

vs = VideoScripy(__file__)

# get current folder video(s)
vs.getVideo(folderDepthLimit=0)
vs.getVideoInfo()

# run process(es)
vs.optimize()
# vs.resize()
# vs.upscale()
# vs.interpolate()
# vs.merge()
```

Or directly call vscli.exe




## Processes Description

- optimize

    Reduce the video biteRate in order to gain storage space.  
    The processed videos will have a bitRate = width * height * quality, which 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.

- resize

    Reduce the video width and height.

- upscale

    Recover old video from 360p to 4K, enhance video quality.  
    Begin with a transformation of video to image frames, then upscale each frames, finally reassemble to video.   
    It has the ability to start from last upscal progress if the "_upscaled_frame" wasn't deleted.

- interpolate

    Increase video frame rate (FPS), smooth video motions.  
    Begin with a transformation of video to image frames, then interpolate between frames, finally reassemble to video.

- merge

    Merge all video, including each of its audio and subtitle by option, into mkv. Then use media player as PotPlayer to switch between video/audio/subtitle.



## Credits

This project relies on the following software and projects.
- [alive-progress](https://github.com/rsalmei/alive-progress)
- [Real-ESRGAN](https://github.com/xinntao/Real-ESRGAN)
- [IFRNet](https://github.com/ltkong218/IFRNet)
- [FFmpeg](https://www.ffmpeg.org/)



## TODO list

- ✅ Stop upscale and interpolate process
- ✅ Get video walk optimize
- [ ] Check tools
- [ ] Sort by name
- [ ] replace "&" by "x" in video name
- [ ] Add FFmpeg visual quality metrics (PSNR, SSIM, VMAF)
- [ ] Better hevc_nvenc parameters
- [ ] Better upscale recovery



            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "VideoScripy",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "ffmpeg, upscale, interpolate, video process",
    "author": null,
    "author_email": "luezhi <sunluezhi520@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/f0/99/c3b99bc03df5c1a595bb4373c611e8409f3c1be4a75e7f9e84df83889f06/videoscripy-0.0.1.tar.gz",
    "platform": null,
    "description": "\r\n# VideoScripy\r\n\r\nVideoScripy is a collection of video processes including video Optimization, Upscale and frame Interpolation.\r\n\r\nIt uses Python to generate **FFmpeg**, **Real-ESRGAN** and **IFRNet** command line script to performes serial processing on scanned mp4 and mkv videos.\r\n\r\n**\u26a0 Only compatible with Windows users who have Nvidia cards.**\r\n\r\n\r\n\r\n## Requirements\r\n\r\n- Windows OS\r\n\r\n- NVIDIA card\r\n\r\nFollowing tools in the environment variable **PATH** :\r\n\r\n- [FFmpeg](https://www.gyan.dev/ffmpeg/builds/), full build for hardware acceleration.\r\n\r\n- [Real-ESRGAN-ncnn-vulkan](https://github.com/xinntao/Real-ESRGAN-ncnn-vulkan/releases) for video upscaling.\r\n\r\n- [Ifrnet-ncnn-vulkan](https://github.com/nihui/ifrnet-ncnn-vulkan/releases) for video frame interpolation.  \r\n\r\n\r\n\r\n## Usage\r\n\r\n```python\r\nfrom videoscripy import VideoScripy\r\n\r\nvs = VideoScripy(__file__)\r\n\r\n# get current folder video(s)\r\nvs.getVideo(folderDepthLimit=0)\r\nvs.getVideoInfo()\r\n\r\n# run process(es)\r\nvs.optimize()\r\n# vs.resize()\r\n# vs.upscale()\r\n# vs.interpolate()\r\n# vs.merge()\r\n```\r\n\r\nOr directly call vscli.exe\r\n\r\n\r\n\r\n\r\n## Processes Description\r\n\r\n- optimize\r\n\r\n    Reduce the video biteRate in order to gain storage space.  \r\n    The processed videos will have a bitRate = width * height * quality, which 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\r\n- resize\r\n\r\n    Reduce the video width and height.\r\n\r\n- upscale\r\n\r\n    Recover old video from 360p to 4K, enhance video quality.  \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 \"_upscaled_frame\" wasn't deleted.\r\n\r\n- interpolate\r\n\r\n    Increase video frame rate (FPS), smooth video motions.  \r\n    Begin with a transformation of video to image frames, then interpolate between frames, finally reassemble to video.\r\n\r\n- merge\r\n\r\n    Merge all video, including each of its audio and subtitle by option, into mkv. Then use media player as PotPlayer to switch between video/audio/subtitle.\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\r\n\r\n\r\n## TODO list\r\n\r\n- \u2705 Stop upscale and interpolate process\r\n- \u2705 Get video walk optimize\r\n- [ ] Check tools\r\n- [ ] Sort by name\r\n- [ ] replace \"&\" by \"x\" in video name\r\n- [ ] Add FFmpeg visual quality metrics (PSNR, SSIM, VMAF)\r\n- [ ] Better hevc_nvenc parameters\r\n- [ ] Better upscale recovery\r\n\r\n\r\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Collection of video processes such as Optimize, Upscale and Interpolation.",
    "version": "0.0.1",
    "project_urls": {
        "Homepage": "https://github.com/luewh/Video-Script",
        "Issues": "https://github.com/luewh/Video-Script/issues"
    },
    "split_keywords": [
        "ffmpeg",
        " upscale",
        " interpolate",
        " video process"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6818d949ba2fe31280fc819923f858ef27012809a4d1b844c2821a0189d4b304",
                "md5": "4f05a4dc94ec9586237ccb36960e19da",
                "sha256": "d8e92188ab2d9f2081b51624330894af1bcf7c17cd19a2b6e01daa3b4c96a540"
            },
            "downloads": -1,
            "filename": "VideoScripy-0.0.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "4f05a4dc94ec9586237ccb36960e19da",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 10649,
            "upload_time": "2024-11-13T21:07:58",
            "upload_time_iso_8601": "2024-11-13T21:07:58.776949Z",
            "url": "https://files.pythonhosted.org/packages/68/18/d949ba2fe31280fc819923f858ef27012809a4d1b844c2821a0189d4b304/VideoScripy-0.0.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f099c3b99bc03df5c1a595bb4373c611e8409f3c1be4a75e7f9e84df83889f06",
                "md5": "bba12df89d85d01cb564841411c1227d",
                "sha256": "0cf0ac9063f3a01e52a672f4eb6e2cb971f3aa4c1868a05a831ba428d451c2f6"
            },
            "downloads": -1,
            "filename": "videoscripy-0.0.1.tar.gz",
            "has_sig": false,
            "md5_digest": "bba12df89d85d01cb564841411c1227d",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 10053,
            "upload_time": "2024-11-13T21:07:59",
            "upload_time_iso_8601": "2024-11-13T21:07:59.891165Z",
            "url": "https://files.pythonhosted.org/packages/f0/99/c3b99bc03df5c1a595bb4373c611e8409f3c1be4a75e7f9e84df83889f06/videoscripy-0.0.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-11-13 21:07:59",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "luewh",
    "github_project": "Video-Script",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [],
    "lcname": "videoscripy"
}
        
Elapsed time: 1.13919s