Skip to main content

QScreenCast

A no-nonsense screen-caster behind a QToolButton.

GitHub Conda Supported Python versions

CI CD

GitHub release (latest SemVer) GitHub commits since latest release (by date) PyPI Conda (channel only) conda-forge feedstock

PyPI - Downloads Conda

GitHub issues GitHub pull requests

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:

  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:
    • 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

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.41.tar.gz (66.0 kB view details)

Uploaded Source

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

Hashes for QScreenCast-0.1.41.tar.gz
Algorithm Hash digest
SHA256 a00847072b1a77a903d13d1572100fa3ac91d5665bac87d93df363a7b038cd6d
MD5 2ecbc3ce34f80740dd6d78c3f094bd33
BLAKE2b-256 44440352c655fce242ccf60b45da552b6afd336c15756436d21c595d8858d391

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.41 This release

1 file

0.1.39

1 file

0.1.38

1 file

0.1.37

1 file

0.1.36

1 file

0.1.35

1 file

0.1.34

1 file

0.1.32

1 file

0.1.31

1 file

0.1.30

1 file

0.1.28

1 file

0.1.27

1 file

0.1.26

1 file

0.1.25

1 file

0.1.24

1 file

0.1.23

1 file

0.1.22

1 file

0.1.21

1 file

0.1.20

1 file

0.1.19

1 file

0.1.18

1 file

0.1.17

1 file

0.1.16

1 file

0.1.15

1 file

0.1.14

1 file

0.1.13

1 file

0.1.12

1 file

0.1.11

1 file

0.1.10

1 file

0.1.9

1 file

0.1.8

1 file

0.1.7

1 file

0.1.0

1 file

0.0.0

1 file

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page