A no-nonsense screen-caster behind a QToolButton.
Project description
QScreenCast
A no-nonsense screen-caster behind a QToolButton.
A library that exposes a no-nonsense screen caster behind a QToolButton to be incorporated in any Python/Qt application.
Work in progress
Force majeure : Currently QScreenCast
only works on windows! 😭
QScreenCast
needs the Qt Multimedia module.
- On conda-forge we have a pyqt==5.12.3, which is semi-broken because for windows the Multimedia module is present, but for Linux & macOS it is not ... 🙈 🙉 🙊
- On anaconda the situation is even worse, as there the latest pyqt==5.9.2 and the Multimedia module is omitted all toghether. 😩
- On PyPi the situation is different, there one can use PyQt5==5.15.4 and there (I presume) the Multimedia module is available ... however that opens yet another can of worms ...
That being said, conda-forge/pyqt is working on a pyqt==5.15.x
with all the goodies for all platforms (including M1 😍) but the ETA for that is mid 2021.
The current implementation of QScreenCast
is a fist (granted a bit naïve) attempt, but we are gearing up to make a second iteration, this time by using GStreamer under the hood! 😎
Installation
conda/mamba (preferred)
(myenv) me@mybox:~$ conda install -c conda-forge QScreenCast
pip
Prior to installing QScreenCast
, you need to install ffmpeg on your system somehow.
me@mybox:~$ pip install QScreenCast
Example
The repo holds an example
directory where it is demonstrated how to use the QScreenCast button in your own application.
Usage
left-click on the button
A left-click on the button will start/stop the recording. Both Audio and video are recorded, but ONLY the QMainWindow
is recorded! 😇 To comply to the 'perfect YouTube Video' recommendations, the QMainWindow
is re-scaled (in the middle of the current screen) to it's maximum available size that complies to the video sizes.
Once a recording is stopped, the QScreenCast-er will put the .mp4 file on your desktop.
Notes:
- While recording, you are not able to re-size or move the
QMainWindow
. 🧐 - Anything you move in front of the
QMainWindow
will be recorded! 😱 - When you start a recording, there is a count-down displayed in the middle of your
QMainWindow
to give you the last chance to clear your throught. 🤣
right-click on the button
A right-click on the button will show all the different video sizes (the ones that your screen can't handle are grayed out) and a check box will indicate to what format your screen will re-size if you start a recording. By default this is the biggest size your screen can handle, but you can select a smaller size here, in which case your QMainWindow
will resize to that. One also can select a microphone (in case you have more than one) by default the system microphone is used.
Long story short, you shouldn't have to mess with options, just start/stop your recording!
Recording formats
- Sizes:
- 854 x 480 (aka 480p)
- 1280 x 720 (aka 720p)
- 1920 x 1080 (aka 1080p and 1K)
- 2560 x 1440 (aka 1440p and 2K)
- 3840 x 2160 (aka 2160p and 4K)
- Container: MP4
- Audio codec: AAC-LC (stereo @ 48KHz)
- Video codec: H.264
- Progressive scan
- High Profile
- 2 consecutive B frames
- Closed GOP
- CABAC
- frame rate = 15 fps
- 4:2:0 Chroma subsampling
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 Distribution
File details
Details for the file QScreenCast-0.1.41.tar.gz
.
File metadata
- Download URL: QScreenCast-0.1.41.tar.gz
- Upload date:
- Size: 66.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/0.0.0 pkginfo/1.8.2 readme-renderer/27.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.63.0 importlib-metadata/4.11.2 keyring/23.4.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.8.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a00847072b1a77a903d13d1572100fa3ac91d5665bac87d93df363a7b038cd6d |
|
MD5 | 2ecbc3ce34f80740dd6d78c3f094bd33 |
|
BLAKE2b-256 | 44440352c655fce242ccf60b45da552b6afd336c15756436d21c595d8858d391 |