Vidgear

Latest version: v0.3.2

Safety actively analyzes 625610 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 3

0.3.2

📓 Complete Release Notes can be found [here ↗️](https://abhitronix.github.io/vidgear/latest/changelog/#v032-2023-09-10)

----

New Features ✨
- **NetGear:**
* Added new `kill` parameter to `close()` method to forcefully kill ZMQ context instead of graceful exit only in the `receive` mode.
* Added new `subscriber_timeout` integer optional parameter to support timeout with `pattern=2` _(or Publisher-Subscriber)_ pattern.
+ Receiver will exit safely if timeout defined(any value(in milliseconds) > 0), and timeout occurs in Receiver Mode with `pattern=2`.
+ 💬 Note: Default behavior still is to block the thread till infinite time.
- **WriteGear:**
* Added new `-disable_ffmpeg_window` optional Boolean flag to enable patch that prevents FFmpeg creation window from opening when building `.exe` files on Windows OS. _(PR by ibtsam3301)_
+ 💬 Note: `-disable_ffmpeg_window` optional Boolean flag is only available on Windows OS with logging disabled(`logging=False`) in compression mode.
+ 💬 Use Case: This flag can be useful while creating an `.exe` file for a python script that uses WriteGear API. On windows even after creating the `.exe` file in windowed mode or no-console mode, the `ffmpeg.exe` command line window would pop up while its being used by WriteGear API.
- **Setup.py**
* Added official support for python `3.11.x` legacies.


Updates/Improvements ⚡️
- Asyncio:
* Formatted TemplateResponse class parameters w.r.t new changes in backend Starlette API.
- Setup.py:
* Readded latest patch to `uvicorn`, `starlette`, `pyzmq` dependencies.
* Removed `3.7` legacy from Programming Language metadata.
- Maintenance:
* Added GitHub sponsors and dropped liberapay from `Funding.yml`.
- Docs:
* Updated information related to Supported Dimensional Attributes in ScreenGear docs.
* Updated minimum python to version `3.8` while installing vidgear in docs.
* Updated API-specific dependencies in docs.


Breaking Updates/Changes 💥
- Setup.py:
* 💣 Removed support for python-3.7 legacies
+ 💬 Raised `python_requires` to `>=3.8`. Thereby python `3.7` and any before legacy are no longer supported.

Bug-fixes 🐛
- ScreenGear:
* Fixed swapped region dimensions bug with dxcam backend.
* Fixed "mss" backend disabled when `monitor` parameter is not defined.
- Docs:
* Fixed missing `compression_mode` flags in WriteGear API docs.

0.3.1

📓 Complete Release Notes can be found [here ↗️](https://abhitronix.github.io/vidgear/latest/changelog/#v031-2023-07-22)

----

New Features ✨
- **WebGear:**
* Added an option to add a custom video endpoint path.
+ Users can now change the video endpoint path from `"/video"` to any alphanumeric string.
+ Added the `custom_video_endpoint` optional string attribute for this purpose.
+ Only alphanumeric strings with no spaces in between are allowed as its value.
- **ScreenGear:**
* Added `dxcam` backend support for Windows machines.
+ `dxcam` is now the default backend for Windows machines when no backend is defined.
+ Added support for variable screen dimensions to capture an area from the screen.
+ Added the optional flag `dxcam_target_fps` to control the target fps in `dxcam`. Defaults to `0` (disabled).
* Added support for tuple values in the monitor parameter to specify device and output indexes as `(int[device_idx], int[output_idx])` in the `dxcam` backend only.
+ Default `int` index is also allowed as a value for selecting device index.
- **Helper**
* Added multiple servers support for downloading assets.
+ Added GitHub server to the `generate_webdata` method to make it more robust for rate limits and other shortcomings.
+ Now, the `generate_webdata` method will retry a different server when one fails.
- **Setup.py**
* Added `dxcam` dependency in `core` and `asyncio` extra requires for Windows machines.


Updates/Improvements ⚡️
- WebGear:
* Improved the conditions logic to check if non-empty values are assigned to optional parameters.
- WebGear_RTC:
* Improved the handling of the `format` parameter when constructing a `VideoFrame` from ndarray frames.
- ScreenGear:
* Enforced `dxcam` backend (if installed) when `monitor` is defined on Windows machines.
* Refactored code blocks to ensure backward compatibility.

Breaking Updates/Changes 💥
- ScreenGear:
* 💣 Previously enforced threaded queue mode is now completely removed, resulting in a potential performance boost.
+ 💬 Reason: The IO is automatically blocked by the screen refresh rate, so adding the overhead of maintaining a separate queue is pointless.
* 💣 Removed the `THREAD_TIMEOUT` optional flag.

Bug-fixes 🐛
- WebGear_RTC:
* Fixed a bug caused by PyAV's error when `ndim==3` grayscale frames are encountered.
+ The API will now drop the third dimension if `ndim==3` grayscale frames are detected.
- Setup.py:
* Starting from version `8.0.0`, the python-mss library dropped support for Python `3.7`, so as a temporary measure, `mss` dependency has been pinned to version `7.0.1`.

0.3.0

📓 Complete Release Notes can be found [here ↗️](https://abhitronix.github.io/vidgear/latest/changelog/#v030-2023-01-26)

----

New Features ✨
- **WriteGear:**
* Added support for higher than 8-bit depth frames with datatypes of unsigned integer(`uint`) kind and element size `2`.
* Added new `-input_pixfmt` attribute to `output_params` dictionary parameter for easily specifying custom input pixel-format.
* Added support for Context Managers `__enter__()` and `__exit__()` methods for proper handling of resources via `with` statement for allocating and releasing resources precisely. (Suggested by sueskind)
- **StreamGear:**
* Added support for Context Managers `__enter__()` and `__exit__()` methods for proper handling of resources via `with` statement for allocating and releasing resources precisely. (Suggested by sueskind)
- **WebGear:**
* Added new `skip_generate_webdata` boolean optional attribute(`False` by default) to completely disable Data-Files Auto-Generation WorkFlow.
+ This flag enables only `/video` route for disabled Data-Files Auto-Generation WorkFlow.
- **Helper:**
* Added more robust implementation of validate_audio method with more robust regex pattern for extracting audio-samplerate.
* Added support for Linux video device path _(such as `/dev/video0`)_.
- **Maintenance:**
* Logging current vidgear version when vidgear APIs are called, not at import.
+ Current version can only be logged by VidGear APIs with the logging turned on _(i.e. `logging=True`)_.


Updates/Improvements ⚡️
- WriteGear:
* Updated comments, description, and logging messages to more sensible and developer friendly.
+ Renamed `startFFmpeg_Process` internal class method to `start_FFProcess`.
+ Renamed `Preprocess` internal class method to `PreprocessFFParams`.
+ Renamed `startCV_Process` internal class method to `start_CVProcess`.
+ Renamed `initiate` internal class parameter to `initiate_process`.
+ Renamed `force_termination` internal class parameter to `forced_termination`.
- Helper:
* Updated `validate_audio` method with improved and more robust regex patterns for identifying audio bitrate in ay audio file.
- Setup.py:
* Replaced `distutils.version.LooseVersion` with `pkg_resources.parse_version`.
- Maintenance:
* Replaced depreciated `LooseVersion` with `parse_version`.
* Updated `Retry` package to be imported from `requests.adapters`.
- Bash Scripts:
* Updated FFmpeg Static Binaries links to latest date/version tag to `12-07-2022`.

Breaking Updates/Changes 💥
- WriteGear:
* 💣 Renamed `output_filename` string parameter to `output`.
* 💣 Renamed `cmd` parameter in `execute_ffmpeg_cmd()` class method to more sensible `command`.
* 💣 `ValueError` will be raised if datatype of input frames mismatches.

Bug-fixes 🐛
- Camgear:
* Fixed `CamGear.read()` blocked unnecessarily.
* Fixed deadlock on termination.
- ScreenGear:
* Fixed `ScreenGear.read()` blocked during startup.
+ 💬 During startup, `ScreenGear.read()` doesn't checks if queue is empty before continuing.
- WriteGear:
* Fixed gstpipeline_mode not activating when wrongly assuming `output` value as valid path.
* Fixed name 'compression' is not defined bug.
- Helper:
* Fixed `fltp` keyword in regex pattern causing non-ftlp streams to be not recognized.
* Fixed response.headers returning `content-length` as Nonetype since it may not necessarily have the Content-Length header set.
- Setup:
* Pinned `pyzmq==24.0.1` working version.

0.2.6

📓 Complete Release Notes can be found [here ↗️](https://abhitronix.github.io/vidgear/latest/changelog/#v026-2022-07-05)

----

New Features ✨
- **Docs:**
* Added new bonus example for RSTP/RTP Live-Streaming using WriteGear's Compression Mode.
* Added "How to resolve zmq.error.ZMQError" FAQ for NetGear API.(PR by iandol)
- **Maintenance:**
* Added new patterns to `.gitignore` to ignore pypi's `build` directory and `egg-info` files.
- **CI:**
* Switched to new Issue GitHub's form schema using YAMLs.

Updates/Improvements ⚡️
- Setup.py:
* Replaced `distutils.version.LooseVersion` with `pkg_resources.parse_version`.
- Docs:
* Updated Site Navigation.
+ Added new notices to inform users more effectively about bonus examples.
+ Added new `Bonus` section to navigation and moved suitable pages under it.
* Redesigned and Rewritten Donation and Contribution section to README.md.
- API:
* Updated depreciated `tostring()` to `tobytes()` for the purposes for clarity in Python 3.2.
- CI:
* Added more paths and files to skip commits.

Breaking Updates/Changes 💥
- `-input_framerate` parameter now accepts any positive value for WriteGear and StreamGear APIs.

Bug-fixes 🐛
- API: Fixed `-input_framerate` less than 5 does not get used in WriteGear and StreamGear APIs.(PR by freol35241)
- CamGear: Fixed Yt-dlp generated HTTP DASH Segments URLs not supported by OpenCV's VideoCapture(PR by DynamiteC)
- StreamGear:
* Fixed `hls_segment_type` not working bug. (PR by enarche-ahn)
* Fixed critical logging parameter bug
+ Fixed debug logs even when `logging=False` in StreamGear's Real-time Mode. (patch suggested by enarche-ahn)
+ Added length check to `-video_source` attribute to correctly infers it as empty(or invalid).
- CI:
* Fixed pinned version syntax bug in docs_deployer workflow.
* Fixed typos in Github forms and its context.
- Docs:
* Fixed jinja2 `3.1.0` or above breaks mkdocs.
+ `jinja2>=3.1.0` breaks mkdocs (mkdocs/mkdocs2799), therefore pinned jinja2 version to `<3.1.0`.
* Fixed support for new `mkdocstring` versions
* Fixed Netgear+Webgear bonus example code bugs.(PR by iandol)
* Fixed external bug that causing "Home" tab not responsive randomly when accessed from other tabs.

0.2.5

📓 Complete Release Notes can be found [here ↗️](https://abhitronix.github.io/vidgear/v0.2.5-stable/changelog/#v025-2021-02-11)

----

New Features ✨
- **WriteGear:**
* Added support for GStreamer pipeline in WriteGear API's Non-Compression mode:
+ Implemented GStreamer Pipeline Mode to accept GStreamer pipeline formatted as string to its `output_filename` parameter.
+ Added new special `-gst_pipeline_mode` attribute to its `output_params` dictionary parameter to enable this mode.
+ This feature provides flexible way to directly write video frames into custom GStreamer Pipeline with controlled bitrate.
* Added new `-ffpreheaders` special attribute to WriteGear's `output_params` dictionary parameter in Compression mode:
+ This attribute is specifically required to set special FFmpeg parameters in Compression Mode that are present at the starting of command(such as `-re`).
+ This attribute only accepts **list** datatype as value.
- **NetGear:**
* Added bidirectional data transfer support to existing exclusive Multi-Clients and Multi-Servers exclusive modes:
+ Users will now able to send data bidirectionally in both Multi-Clients and Multi-Servers exclusive modes.
+ Bidirectional mode will no longer disables automatically when enabled along with Multi-Clients and Multi-Servers exclusive modes.
- **Maintenance:**
* **🌟 Added official support for **Python-3.10** legacies. 🌟**
* Added `float` value support to `THREAD_TIMEOUT` optional attributes in threaded gears.

Updates/Improvements ⚡️
- Setup.py:
* Dropped support for Python-3.6 and below legacies.
* Updated logging formating.
* Updated python_requires to `>=3.7`.
- Helper:
* Vidgear will now report current version on every run.

Breaking Updates/Changes 💥
- ***:warning: Dropped support for Python-3.6 legacies from vidgear.***

Bug-fixes 🐛
- NetGear: Fixed bidirectional mode forcefully overriding multi-clients mode's payload.
- Setup: Fixed uvicorn and aiortc dropped support for Python-3.6 legacies.

0.2.4

📓 Complete Release Notes can be found [here ↗️](https://abhitronix.github.io/vidgear/v0.2.4-stable/changelog/#v024-2021-12-05)

----

New Features ✨
- **CamGear:**
* **Added a new YT_backend Internal Class with YT-DLP backend:**
+ Implemented `YT_backend` a new CamGear's Internal YT-DLP backend class for extracting metadata from Streaming URLs.
+ Added support for pipeling (live) video-frames from all yt-dlp supported streaming sites: https://github.com/yt-dlp/yt-dlp/blob/master/supportedsites.md#supported-sites
+ Implemented algorithm from scratch for auto-extracting resolution specific streamable URLs for pipelineing.
+ Added new `ytv_metadata` global parameter to CamGear for accessing video's metadata(such as duration, title, description) on-the-go.
+ ⚠️ Playlists are still unsupported.
- **WebGear_RTC:**
* **Implemented a new easy way of defining Custom Streaming Class with suitable source(such as OpenCV):**
+ Added new `custom_stream` attribute with WebGear_RTC `options` parameter that allows you to easily define your own Custom Streaming Class with suitable source(such as OpenCV).
+ This implementation supports repeated Auto-Reconnection or Auto-Refresh out-of-the-box.
+ This implementation is more user-friendly and easy to integrate within complex APIs.
+ This implementation supports all vidgear's VideoCapture APIs readily as input.

Updates/Improvements ⚡️
- **CamGear:**
* Added `is_livestream` global YT_backend parameters.
* Added default options for yt-dlp for extracting info_dict(metadata) of the video as a single JSON line.
* Removed all dead code related to streamlink backend.
- **Setup.py:**
* **Moved all API specific dependencies to `extra_requires` under the name `"core"`. [PR 268 by zpapakipos]**
* Added rule to replace GitHub heading links in description.
* Updated `extra_require` dependencies.
* Removed `streamlink` dependency.
* Removed `pafy` dependency.

Breaking Updates/Changes 💥
- **⚠️ Installation command with `pip` has been changed in `v0.2.4`:**
* The legacy `pip install vidgear` command now installs critical bare-minimum dependencies only. Therefore in order to automatically install all the API specific dependencies as previous versions, use `pip install vidgear[core]` command instead.
- **CamGear:**
* ⚠️ Removed `streamlink` backend support from `stream_mode` in favor of more reliable CamGear's Internal YT-DLP backend class for extracting metadata from Streaming URLs.
+ CamGear will raise `ValueError` if streaming site URL is unsupported by yt-dlp backend.
+ CamGear will raise `ValueError` if `yt-dlp` isn't installed and `stream_mode` is enabled.
* ⚠️ Removed automatic enforcing of GStreamer backend for YouTube-livestreams and made it optional.
+ The CamGear will not raise ValueError if GStreamer support is missing in OpenCV backends.
- **WebGear_RTC:**
* ⚠️ Removed support for assigning Custom Media Server Class(inherited from aiortc's VideoStreamTrack) in WebGear_RTC through its `config` global parameter.
* ⚠️ WebGear_RTC API will now throws ValueError if `source` parameter is NoneType as well as `custom_stream` attribute is undefined.
- **Helper:**
* ⚠️ Removed `restore_levelnames` method.
* ⚠️ Removed `youtube_url_validator` method.


Bug-fixes 🐛
- **CamGear:**
* Fixed KeyError Bug for missing attributed in meta_data json in some streaming sites.
- **Helper:**
* Removed unused imports.


Related Pull Requests 🔧
- PR 268
- PR 272
- PR 274

Page 1 of 3

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.