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.
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.
Q1/2022 is more than half way now, and eventhough the whole qt 5.15.4
has been pre-chewed by @andfoy (aka Edgar Margffoy) the conda-forge community only managed to publish the qt-main package ... there are 5 more packages to publish !!! 👎😭😤🤬
After waiting more than ONE YEAR on the conda-forge community, we are moving forward regardless, so we published the other packages on the Semi-ATE channel.
If you are installing conda with the maxiconda installer, the Semi-ATE
channel is readily available, and you have access to qt 5.15.4 out of the box ! 😛
Here is the status at the time of writing :
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! 😎
(myenv) me@mybox:~$ conda install -c conda-forge QScreenCast
Prior to installing QScreenCast
, you need to install ffmpeg on your system somehow.
me@mybox:~$ pip install QScreenCast
The repo holds an example
directory where it is demonstrated how to use the QScreenCast button in your own application.
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. 🤣
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!
- 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