Skip to main content

A no-nonsense screen-caster behind a QToolButton.

Project description

QScreenCast

A no-nonsense screen-caster behind a QToolButton.

GitHub Conda Supported Python versions

CI codecov CD

GitHub release (latest SemVer) GitHub commits since latest release (by date) PyPI Conda (channel only)

GitHub issues GitHub pull requests

A library that exposes a no-nonsense screen caster behind a QToolButton to be incorporated in any application.

Installation

conda/mamba (preferred)

(myenv) me@mybox:~$ conda install -c conda-forge QScreenCast 

Note: that QScreenCast needs pyqt >= 5.12, conda-forge has this (eventhough semi-broken) hence the -c conda-forge as the anaconda channel still only has the 5.9.2, but that version doesn't have the Qt Multimedia backend, and QScreenCast needs that, so until pyqt 5.15.3 is out (and adopted by anaconda), pure anaconda users are left in the cold 😭

pip

me@mybox:~$ pip install QScreenCast

Note: The pip installation is not tested so much, we test the conda installation, but as the project is released to PyPi and a conda-forge feedstock 'monitors' the Python Package Index, it should work (if pip can resolve the dependencies that is) Also worth noting is that the PyPi version depends on PyQt5 whereas the conda version depends on pyqt.

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:

  1. While recording, you are not able to re-size or move the QMainWindow. 🧐
  2. Anything you move in front of the QMainWindow will be recorded! 😱
  3. 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:
    • 462 x 240 (aka 240p)
    • 640 x 360 (aka 360p)
    • 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

Work in progress

The current implementation is a fist (granted a bit naive) attempt, but we are gearing up to make a second iteration, this time by using GStreamer under the hood! 😎

There is of course the topic pyqt 5.15.3 via conda-forge, as well as Windows/Linux/MacOS version differences ... 🙈 🙉 🙊

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

QScreenCast-0.1.25.tar.gz (66.0 kB view details)

Uploaded Source

File details

Details for the file QScreenCast-0.1.25.tar.gz.

File metadata

  • Download URL: QScreenCast-0.1.25.tar.gz
  • Upload date:
  • Size: 66.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.8.8

File hashes

Hashes for QScreenCast-0.1.25.tar.gz
Algorithm Hash digest
SHA256 300f49d4a65f640b83c9117fca46767ad3396b6686a2a1ba011d2927e8ae3132
MD5 a00f1c6abbc22d3f7c24b4855b4ce01c
BLAKE2b-256 37b253bfb4b51d008a06b6c179b30e029f4b208619691204edc4ac5236533361

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page