Python helpers to manipulate video from vapoursynth
Project description
python-bestsource
A library helper for producing and manipulating videos with audio support in vapoursynth using bestsource
Current state
Version 1.2 bring filter range support with both ApplyRange and FrameEval in TextSub : a door to make Animations easier in vapoursynth is now open =)
Sound is working with vspreview as soon as Track1 is selected in the Playback sub panel hidden by default and play is triggered for a video that has sound. I provide a test video in test/ and two examples scripts
trim.vpy:
Shows how trim is handled with video that has sound - the player I used is a forked release of vspreview 0.7.1 is available here is for users using a still supported python 3.10 version as ubuntu 22.04 user, install it using the git way.
frame.vpy
Show frame props of a clip different ways. Under scite you can trigger vspreview with [F5] or compile - In test I let you the scite config file.
Audio and Sub Range tests support in Aegisub (.ass) / vspreview (.vpy)
This requires vapoursynth fork from Arch1t3cht and the use of peagisub for vapoursynth plugin dir configuration. Two subtitles files are provided (1+2) and a probe system (3):
(1) Open tests/VTS_01_1-trim100.ass then tests/VTS_01_1-trim100.vpy delivers video as channel 0 and audio as channel 1 this is not supported by current release that disable Open Audio from Video feature.
As I did not find a way to know which type of channel audio or video is requested. I opened thus a Request for feature Sound works fine in vspreview you can trigger with scite by opening tests/VTS_01_1-trim100.vpy and press [F5] Note you will have no sound in vsedit (vapoursynth editor) for all the tests
(2) Open tests/VTS_01_1-trim100-video-audio.ass then tests/VTS_01_1-trim100-video.vpy delivers video as channel 0 then tests/VTS_01_1-trim100-audio.vpy delivers audio as channel 0 (separately in time)
this works if you ensure plays does not goes outside boundary ie frame 101 else you will be flooded by popups. Play and seeking work fine and did not stall just before the end as in vspreview there is just a minor problem with the horizonthal zoom for audio
(3) Open tests/VTS_01_1-trim100-applyrange.ass then tests/VTS_01_1-trim100-applyrange.vpy is used for video
This will show we have a portion from 50 to 60 of VTS_01_1-trim100.ass using a mimick AVS method ApplyRange
(4) Open tests/VTS_01_1-trim100-frameval.ass then tests/VTS_01_1-trim100-frameval.vpy is used for video
This will show we have a portion from 50 to 60 of VTS_01_1-trim100.ass most similar of AVS Animate, you can grab the current frame number in the filter that ApplyRange do no handle.
(5) Open tests/VTS_01_1-trim100-range.ass then tests/VTS_01_1-trim100-frameval.vpy is used for video then tests/VTS_01_1-trim100-audio.vpy is used to restrore sound
This will show how to add a green mask from 50 to 60 in ASS
Installation
as local user
pip3 install -U python-bssource
for all
sudo pip3 install python-bssource
For those who want to bridge to arch1tech's aegisub fork, use my lua helper peagisub to get the path of the vapoursynth plugin needed by aegisub_vs.py.
History
1.2.0 - ApplyRange and FrameEval samples in tests/ 1.1.0 - Trim with video that has audio works in both aegisub and vspreview! 1.0.0 - First release
Contributing
Feel free to add other object and fixes.
Development
Compile .whl
$ ./package.sh
Upload to PyPI
- Create an API Token from the Web UI. (Edit your
~/.pypirc
with the generated token.) - Install Twine
$ python3 -m pip install --user --upgrade twine
- Build the wheel bundle (.egg no more recognized)
$ sudo rm -rf dist/&sudo rm -rf build&sudo python3 setup.py bdist_wheel
- Upload the bundle
$ python3 -m twine upload dist/*
Note: The upload to PyPI is currently assured by GitHub Actions.
Release
- Increase the version number in
setup.py
. - Commit and push.
- Create a new tag in GitHub to trigger the CI pipeline.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
File details
Details for the file python_bestsource-1.2.0-py3-none-any.whl
.
File metadata
- Download URL: python_bestsource-1.2.0-py3-none-any.whl
- Upload date:
- Size: 26.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.10.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ff44b290273c5c9028bfc4dd7cac522c1ddd81c037673c51874e23f8f3dca628 |
|
MD5 | 0ac51688a85b73095bec849b1c11a7e5 |
|
BLAKE2b-256 | 460ff3a5601b849642c971c9edccec47e25f1071b1e6ad4c8c9c5907fcd57f5d |