vsquickview


Namevsquickview JSON
Version 1.0.0 PyPI version JSON
download
home_page
SummaryVapourSynth preview script
upload_time2023-07-20 06:39:54
maintainer
docs_urlNone
author
requires_python>=3.8
license
keywords vapoursynth
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <h1 align="center">vsquickview</h1>

vsquickview is a frame-by-frame VapourSynth preview script designed to be used together with Jupyter Notebook with these advantages:  

* Less waiting. vsquickview will run alongside Jupyter Notebook. Everytimes you make an adjustment, you can switch to the vsquickview window to view the result immediately.  
* Easier comparing between two clips with a right click. Blind comparing is also possible.  

*Thanks to*  

* Setsugen no ao for helping with VapourSynth magics.  
* witchymary and others for helping with the UX.  

**Note:**  

This project has received an surprising amount of publicity recently. Please note that vsquickview is still in rapid development and its functions may subject to change. If there were any changes that would break existing function, we will indicate it by increasing the [MINOR](https://semver.org/#summary) version instead of PATCH. Until version 1.0.0 is released, if you see the MINOR version changes, please remember to revisit this README page to confirm that your existing scripts will work.  

### Install vsquickview

Install vsquickview from pip:  

```sh
python3 -m pip install vsquickview
```

vsquickview also requires fmtc to work. Make sure you have fmtc installed or install it using the following command:  

```sh
vsrepo install fmtc
```

### Using vsquickview's Python interface

Create a new Jupyter Notebook and import vsquickview:  
```py
%gui qt5
import vsquickview as vsqv
```
`%gui qt5` is a magic command to let Jupyter Notebook integrates with the Qt event loop. Please make sure to call it before importing vsquickview.  

After this cell is executed, a fullscreen vsquickview window should be opened, showing an ARIB STD-B66 colour bar. We will be looking at the GUI in the next section, but before that, let's see how we can add clips to vsquickview:  

```py
vsqv.View(src16, 0, "Source")
vsqv.View(compare16, 1, "Compare")
```

`vsquickview.View()` is defined as below:  
```py
View(clip: vs.VideoNode, index: int, name: Optional[str]=None)
```

* The first parameter is the clip for preview.  
* Similar to vspreview, vsquickview has 10 video slots from 0 to 9. This is specifed using the second parameter `index`.  
* You can also pass a third parameter to specify a name for the clip. This will be displayed in vsquickview window alongside the clip's index.  

Clip on an index can be updated using the same `vsquickview.View()` function:  
```py
vsqv.View(new_compare16, 1, "New Compare")
```

To remove a clip with a specific index:  
```py
vsqv.RemoveView(1)
```

If you prefer a more VapourSynth-style call to vsquickview, you could call the functions like:  
```py
vsqv.View(compare16, index=1, name="Compare")
vsqv.RemoveView(None, index=1)
```

Here is a short list of functions and their definitions in vsquickview:  
```py
View(clip: vs.VideoNode, index: int, name: Optional[str]=None)
RemoveView(clip: Union[vs.VideoNode, int, None]=None, index: Optional[int]=None)
SetFrame(clip: Union[vs.VideoNode, int, None]=None, frame: Optional[int]=None)
SetIndex(clip: Union[vs.VideoNode, int, None]=None, index: Optional[int]=None)
Show(clip: Optional[vs.VideoNode]=None)
Hide(clip: Optional[vs.VideoNode]=None)
```

### Using vsquickview's GUI

On startup, vsquickview displays the first frame of the clip at index 0 on startup. Press `Alt` key and you will see a label on the bottom-left corner of the screen that reads `Index 0: [Name of the clip] / Frame 0`.  

You can switch to another frame using `G` key. Press `G` key and type in the frame number, then press `Enter` to switch to a new frame. You can also use the `Left` or `Right` key to go to previous or next frame.    

You can cycle between clips using the right mouse button. If you have more than one clip loaded and available at the specific frame number, press the right mouse button and the same frame of the next available clip will be displayed. Press `Shift` and the right mouse button and the clip will be cycled backwards.  

Other usages are listed below:  

* `Left Mouse Button` or `Middle Mouse Button`: Pan the clip preview.  
* `Scroll Wheel`: Zoom the preview.  
* `Right Mouse Button` or `Space`: Switch to the next available clip. `Shift` and `Right Mouse Button` or `Space`: Switch to the previous available clip.  
* `Alt`: Toggle the label at the bottom-left corner of the screen.  
* `0`, `1`, `2` … `9`: Switch to the clip at the specific index.  
* `G`: Press `G` key and type the frame number followed by `Enter` key to go to a specific frame.  
* `Left` Key or `Right` Key: Go to the previous or the next frame.  
* `Ctrl` and `Left` Key or `Right` Key: Jump 12 frames backwards or forwards.  
* `Up` Key or `Down` Key: Go to the next or previous clip, but not cycling the clips.  
* `F` or `F11`: Toggle fullscreen.  

vsquickview will be closed when you terminate or restart the Jupyter Notebook section. If you close the vsquickview window by accident, you can reopen it by calling function `vsquickview.Show()`.  

### Using preview group

Additionally, you can also create preview group for a selected list of frames you want to compare.  

Set preview group using the `vsquickview.SetPreviewGroup()` function:  
```py
vsqv.SetPreviewGroup([1934, 6849, 13226, 21647, 25374, 26811, 28499, 29111])
```

In the vsquickview GUI, use `Shift` Key and `Left` Key or `Right` Key to go to the previous or next frame in the set preview group.  

You can also add frame to or remove frame from the preview group using `R` Key from GUI. Afterwards, you can retrieve the current preview group using the `vsquickview.PreviewGroup()` function.  

Here is a short list of functions and their definitions for preview group:  
```py
SetPreviewGroup(clip: Union[vs.VideoNode, list, None]=None, group: Optional[list]=None)
ClearPreviewGroup(clip: Optional[vs.VideoNode]=None)
PreviewGroup(clip: Optional[vs.VideoNode]=None)
```

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "vsquickview",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "",
    "keywords": "VapourSynth",
    "author": "",
    "author_email": "Akatsumekusa <Akatsumekusa@protonmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/65/17/34284ae8c48e861bf747c05dd1947cb2751fccf0e2a23eb854048eb64afd/vsquickview-1.0.0.tar.gz",
    "platform": null,
    "description": "<h1 align=\"center\">vsquickview</h1>\n\nvsquickview is a frame-by-frame VapourSynth preview script designed to be used together with Jupyter Notebook with these advantages:  \n\n* Less waiting. vsquickview will run alongside Jupyter Notebook. Everytimes you make an adjustment, you can switch to the vsquickview window to view the result immediately.  \n* Easier comparing between two clips with a right click. Blind comparing is also possible.  \n\n*Thanks to*  \n\n* Setsugen no ao for helping with VapourSynth magics.  \n* witchymary and others for helping with the UX.  \n\n**Note:**  \n\nThis project has received an surprising amount of publicity recently. Please note that vsquickview is still in rapid development and its functions may subject to change. If there were any changes that would break existing function, we will indicate it by increasing the [MINOR](https://semver.org/#summary) version instead of PATCH. Until version 1.0.0 is released, if you see the MINOR version changes, please remember to revisit this README page to confirm that your existing scripts will work.  \n\n### Install vsquickview\n\nInstall vsquickview from pip:  \n\n```sh\npython3 -m pip install vsquickview\n```\n\nvsquickview also requires fmtc to work. Make sure you have fmtc installed or install it using the following command:  \n\n```sh\nvsrepo install fmtc\n```\n\n### Using vsquickview's Python interface\n\nCreate a new Jupyter Notebook and import vsquickview:  \n```py\n%gui qt5\nimport vsquickview as vsqv\n```\n`%gui qt5` is a magic command to let Jupyter Notebook integrates with the Qt event loop. Please make sure to call it before importing vsquickview.  \n\nAfter this cell is executed, a fullscreen vsquickview window should be opened, showing an ARIB STD-B66 colour bar. We will be looking at the GUI in the next section, but before that, let's see how we can add clips to vsquickview:  \n\n```py\nvsqv.View(src16, 0, \"Source\")\nvsqv.View(compare16, 1, \"Compare\")\n```\n\n`vsquickview.View()` is defined as below:  \n```py\nView(clip: vs.VideoNode, index: int, name: Optional[str]=None)\n```\n\n* The first parameter is the clip for preview.  \n* Similar to vspreview, vsquickview has 10 video slots from 0 to 9. This is specifed using the second parameter `index`.  \n* You can also pass a third parameter to specify a name for the clip. This will be displayed in vsquickview window alongside the clip's index.  \n\nClip on an index can be updated using the same `vsquickview.View()` function:  \n```py\nvsqv.View(new_compare16, 1, \"New Compare\")\n```\n\nTo remove a clip with a specific index:  \n```py\nvsqv.RemoveView(1)\n```\n\nIf you prefer a more VapourSynth-style call to vsquickview, you could call the functions like:  \n```py\nvsqv.View(compare16, index=1, name=\"Compare\")\nvsqv.RemoveView(None, index=1)\n```\n\nHere is a short list of functions and their definitions in vsquickview:  \n```py\nView(clip: vs.VideoNode, index: int, name: Optional[str]=None)\nRemoveView(clip: Union[vs.VideoNode, int, None]=None, index: Optional[int]=None)\nSetFrame(clip: Union[vs.VideoNode, int, None]=None, frame: Optional[int]=None)\nSetIndex(clip: Union[vs.VideoNode, int, None]=None, index: Optional[int]=None)\nShow(clip: Optional[vs.VideoNode]=None)\nHide(clip: Optional[vs.VideoNode]=None)\n```\n\n### Using vsquickview's GUI\n\nOn startup, vsquickview displays the first frame of the clip at index 0 on startup. Press `Alt` key and you will see a label on the bottom-left corner of the screen that reads `Index 0: [Name of the clip] / Frame 0`.  \n\nYou can switch to another frame using `G` key. Press `G` key and type in the frame number, then press `Enter` to switch to a new frame. You can also use the `Left` or `Right` key to go to previous or next frame.    \n\nYou can cycle between clips using the right mouse button. If you have more than one clip loaded and available at the specific frame number, press the right mouse button and the same frame of the next available clip will be displayed. Press `Shift` and the right mouse button and the clip will be cycled backwards.  \n\nOther usages are listed below:  \n\n* `Left Mouse Button` or `Middle Mouse Button`: Pan the clip preview.  \n* `Scroll Wheel`: Zoom the preview.  \n* `Right Mouse Button` or `Space`: Switch to the next available clip. `Shift` and `Right Mouse Button` or `Space`: Switch to the previous available clip.  \n* `Alt`: Toggle the label at the bottom-left corner of the screen.  \n* `0`, `1`, `2` \u2026 `9`: Switch to the clip at the specific index.  \n* `G`: Press `G` key and type the frame number followed by `Enter` key to go to a specific frame.  \n* `Left` Key or `Right` Key: Go to the previous or the next frame.  \n* `Ctrl` and `Left` Key or `Right` Key: Jump 12 frames backwards or forwards.  \n* `Up` Key or `Down` Key: Go to the next or previous clip, but not cycling the clips.  \n* `F` or `F11`: Toggle fullscreen.  \n\nvsquickview will be closed when you terminate or restart the Jupyter Notebook section. If you close the vsquickview window by accident, you can reopen it by calling function `vsquickview.Show()`.  \n\n### Using preview group\n\nAdditionally, you can also create preview group for a selected list of frames you want to compare.  \n\nSet preview group using the `vsquickview.SetPreviewGroup()` function:  \n```py\nvsqv.SetPreviewGroup([1934, 6849, 13226, 21647, 25374, 26811, 28499, 29111])\n```\n\nIn the vsquickview GUI, use `Shift` Key and `Left` Key or `Right` Key to go to the previous or next frame in the set preview group.  \n\nYou can also add frame to or remove frame from the preview group using `R` Key from GUI. Afterwards, you can retrieve the current preview group using the `vsquickview.PreviewGroup()` function.  \n\nHere is a short list of functions and their definitions for preview group:  \n```py\nSetPreviewGroup(clip: Union[vs.VideoNode, list, None]=None, group: Optional[list]=None)\nClearPreviewGroup(clip: Optional[vs.VideoNode]=None)\nPreviewGroup(clip: Optional[vs.VideoNode]=None)\n```\n",
    "bugtrack_url": null,
    "license": "",
    "summary": "VapourSynth preview script",
    "version": "1.0.0",
    "project_urls": {
        "Documentation": "https://github.com/Akatmks/vsquickview",
        "Issues": "https://github.com/Akatmks/vsquickview/issues",
        "Source": "https://github.com/Akatmks/vsquickview"
    },
    "split_keywords": [
        "vapoursynth"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4a644ec8933412905ad4b8f4e7438eee7133d5500e4ab92165fc6c15b2f0a392",
                "md5": "50855931067e909e8059643bf612a879",
                "sha256": "cb3aa84db6c9f4f1041a790db9c831c9047a501c38a433c9524f1fd261928491"
            },
            "downloads": -1,
            "filename": "vsquickview-1.0.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "50855931067e909e8059643bf612a879",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 14698,
            "upload_time": "2023-07-20T06:39:52",
            "upload_time_iso_8601": "2023-07-20T06:39:52.787848Z",
            "url": "https://files.pythonhosted.org/packages/4a/64/4ec8933412905ad4b8f4e7438eee7133d5500e4ab92165fc6c15b2f0a392/vsquickview-1.0.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "651734284ae8c48e861bf747c05dd1947cb2751fccf0e2a23eb854048eb64afd",
                "md5": "74913d2019ac1c34ff8a3a6244929042",
                "sha256": "022a516db443d6ffa8cab3b7aa5b2051dc7c93ab66cf647e5c4703ecbd99d18d"
            },
            "downloads": -1,
            "filename": "vsquickview-1.0.0.tar.gz",
            "has_sig": false,
            "md5_digest": "74913d2019ac1c34ff8a3a6244929042",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 10166,
            "upload_time": "2023-07-20T06:39:54",
            "upload_time_iso_8601": "2023-07-20T06:39:54.217827Z",
            "url": "https://files.pythonhosted.org/packages/65/17/34284ae8c48e861bf747c05dd1947cb2751fccf0e2a23eb854048eb64afd/vsquickview-1.0.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-07-20 06:39:54",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Akatmks",
    "github_project": "vsquickview",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "vsquickview"
}
        
Elapsed time: 0.11020s