Vidgear

Latest version: v0.3.3

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

Scan your dependencies

Page 2 of 4

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

0.2.3

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

----

New Features ✨
- **CamGear:**
* Added support for `4K` Streaming URLs.
- **Helper:**
* Implemented logging ColorFormatter string alignment.

Updates/Improvements ⚡️
- **CamGear:**
* Replaced `youtube-dl` with `yt-dlp` as pafy backend for YouTube videos pipelining.
+ Implemented hack to trick pafy into assuming `yt-dlp` as `youtube-dl`.
+ Replaced `youtube-dl` dependency with `yt-dlp`.
+ Replaced `youtube-dl` imports with `yt-dlp`.
- **Helper:**
* Enabled logging for `check_WriteAccess` method.
- **Maintenance:**
* Added `.gitignore` for specifying intentionally untracked files to ignore
* Added `.gitattributes` to manage how Git reads line endings.
* Introduced python short-circuiting for handling logging logic in APIs.

Breaking Updates/Changes 💥
- `check_WriteAccess` will now return as invalid path if writing directory does not exists. This will effect output file handling in WriteGear and StreamGear APIs.

Bug-fixes 🐛
- **StreamGear:**
* Fixed StreamGear Malformed URI Error with HLS Segments **[PR 243 by Vboivin]**
+ Removed the extra `'%'` character from the naming convention for segment files.
+ Used internal `stream_count` dict variable to alter template for HLS segment filenames.
- **WriteGear:**
* Fixed bug in `-disable_force_termination` attribute logic which accidentally disables force termination.
- **WebGear_RTC:**
* Fixed `name 'VideoStreamTrack' is not defined` bug.
- **Setup.py:**
* Fixed `TypeError` bug.
* Fixed invalid `latest_version` retrieval.
- **Helper:**
* Fixed `check_WriteAccess` failing to recognize correct permission for writing the output file on windows platform.
+ Implemented separate logic for `Windows` and `*nix` platforms.
* Fixed bug in `check_WriteAccess` that throws `OSError` while handling URLs.

Related Pull Requests 🔧
- PR 249
- PR 262

0.2.2

:notebook: Complete Release Notes can be found [here :arrow_upper_right:](https://abhitronix.github.io/vidgear/latest/changelog/#v022-2021-09-02)

 

New Features ✨

- **StreamGear:**
* Added native support for new [Apple HLS](https://developer.apple.com/documentation/http_live_streaming) _(HTTP Live Streaming)_ HTTP streaming format in StreamGear.
* Added seamless support for audio input from external audio devices.
- **NetGear:**
* New SSH Tunneling Mode for remote connection of ZMQ sockets across machines via SSH tunneling.
* Additional colorspace support for input frames with Frame-Compression enabled.
+ Allowed users to manually select colorspace on-the-fly with its JPEG frame compression mode.
- **NetGear_Async:**
* New exclusive Bidirectional Mode for bidirectional data transfer with pure asyncio implementation.
+ :warning: Bidirectional mode is only available with User-defined Custom Source(i.e. `source=None`)
+ :warning: NetGear_Async will throw `RuntimeError` if bidirectional mode is disabled at server or client but not both.
* Added new `disable_confirmation` used to force disable termination confirmation from client in `terminate_connection`.
* Added `task_done()` method after every `get()` call to gracefully terminate queues.
* Added new `secrets` and `string` imports.
- **WebGear:**
* Updated JPEG Frame compression with `simplejpeg`:
+ Implemented JPEG compression algorithm for 4-5% performance boost at cost of minor loss in quality.
+ Utilized `encode_jpeg` and `decode_jpeg` methods to implement turbo-JPEG transcoding with `simplejpeg`.
+ Added new options to control JPEG frames *quality*, enable fastest *dct*, fast *upsampling* to boost performance.
+ Added new `jpeg_compression`, `jpeg_compression_quality`, `jpeg_compression_fastdct`, `jpeg_compression_fastupsample` attributes.
* Added new WebGear Theme: _(Checkout at https://github.com/abhiTronix/vidgear-vitals)_
+ Added responsive image scaling according to screen aspect ratios.
+ Added responsive text scaling.
- **WebGear_RTC:**
* Added native support for middlewares:
+ Added new global `middleware` variable for easily defining Middlewares as list.
* Added new WebGear_RTC Theme: _(Checkout at https://github.com/abhiTronix/vidgear-vitals)_
+ Implemented new responsive video scaling according to screen aspect ratios.
+ Added bootstrap CSS properties to implement auto-scaling.
- **Helper:**
* New automated interpolation selection for gears:
+ Implemented `retrieve_best_interpolation` method to automatically select best available interpolation within OpenCV.
* Implemented `get_supported_demuxers` method to get list of supported demuxers.
- **Setup.py:**
* Added new `cython` and `msgpack` dependency.
* Added `msgpack` and `msgpack_numpy` to auto-install latest.

 

Updates/Improvements ⚡️
- **VidGear Core:**
* New behavior to virtually isolate optional API specific dependencies by silencing `ImportError` on all VidGear's APIs import.
* Implemented algorithm to cache all imports on startup but silence any `ImportError` on missing optional dependency.
* :warning: Now `ImportError` will be raised only any certain API specific dependency is missing during given API's initialization.
- **StreamGear:**
* Replaced depreciated `-min_seg_duration` flag with `-seg_duration`.
* Removed redundant `-re` flag from RTFM.
* Improved Live-Streaming performance by disabling SegmentTimline
* Improved DASH assets detection for removal by using filename prefixes.
- **NetGear:**
* Replaced `np.newaxis` with `np.expand_dims`.
* Replaced `random` module with `secrets` while generating system ID.
* Update array indexing with `np.copy`.
- **NetGear_Async:**
* Improved custom source handling.
* Removed deprecated `loop` parameter from asyncio methods.
* Re-implemented `skip_loop` parameter in `close()` method.
* :warning: `run_until_complete` will not used if `skip_loop` is enabled.
* :warning: `skip_loop` now will create asyncio task instead and will enable `disable_confirmation` by default.
* Replaced `create_task` with `ensure_future` to ensure backward compatibility with python-3.6 legacies.
* Simplified code for `transceive_data` method.
- **WebGear_RTC:**
* Improved handling of failed ICE connection.
* Made `is_running` variable globally available for internal use.
- **Helper:**
* Added `4320p` resolution support to `dimensions_to_resolutions` method.
* Implemented new `delete_file_safe` to safely delete files at given path.
* Replaced `os.remove` calls with `delete_file_safe`.
* Added support for filename prefixes in `delete_ext_safe` method.
* Improved and simplified `create_blank_frame` functions frame channels detection.
* Added `logging` parameter to capPropId function to forcefully discard any error(if required).
- **Setup.py:**
* Added patch for `numpy` dependency, `numpy` recently dropped support for python 3.6.x legacies. See https://github.com/numpy/numpy/releases/tag/v1.20.0
* Removed version check on certain dependencies.
* Re-added `aiortc` to auto-install latest version.
- **Asyncio:**
* Changed `asyncio.sleep` value to `0`.
+ The amount of time sleep is irrelevant; the only purpose await asyncio.sleep() serves is to force asyncio to suspend execution to the event loop, and give other tasks a chance to run. Also, `await asyncio.sleep(0)` will achieve the same effect. https://stackoverflow.com/a/55782965/10158117
- **License:**
* Dropped publication year range to avoid confusion. _(Signed and Approved by abhiTronix)_
* Updated Vidgear license's year of first publication of the work in accordance with US copyright notices defined by Title 17, Chapter 4(Visually perceptible copies): https://www.copyright.gov/title17/92chap4.html

 

Breaking Updates/Changes 💥
- :bomb: Virtually isolated all API specific dependencies, Now `ImportError` for API-specific dependencies will be raised only when any of them is missing at API's initialization.
- :bomb: Renamed `delete_safe` to `delete_ext_safe`.
- :bomb: Dropped support for `frame_jpeg_quality`, `frame_jpeg_optimize`, `frame_jpeg_progressive` attributes from WebGear.

 

Bug-fixes 🐛
- **CamGear:**
* Hot-fix for Live Camera Streams:
+ Added new event flag to keep check on stream read.
+ Implemented event wait for `read()` to block it when source stream is busy.
+ Added and Linked `THREAD_TIMEOUT` with event wait timout.
+ Improved backward compatibility of new additions.
- **NetGear:**
* Fixed Bidirectional Video-Frame Transfer broken with frame-compression:
+ Fixed `return_data` interfering with return JSON-data in receive mode.
+ Fixed logic.
* Fixed color-subsampling interfering with colorspace.
* Patched external `simplejpeg` bug. Issue: https://gitlab.com/jfolz/simplejpeg/-/issues/11
+ Added `np.squeeze` to drop grayscale frame's 3rd dimension on Client's end.
* Fixed bug that cause server end frame dimensions differ from client's end when frame compression enabled.
- **NetGear_Async:**
* Fixed bug related asyncio queue freezing on calling `join()`.
* Fixed ZMQ connection bugs in bidirectional mode.
* Fixed several critical bugs in event loop handling.
* Fixed several bugs in bidirectional mode implementation.
* Fixed missing socket termination in both server and client end.
* Fixed `timeout` parameter logic.
- **WebGear_RTC:**
* Fixed stream freezes after web-page reloading:
+ Implemented new algorithm to continue stream even when webpage is reloaded.
+ Inherit and modified `next_timestamp` VideoStreamTrack method for generating accurate timestamps.
+ Implemented `reset_connections` callable to reset all peer connections and recreate Video-Server timestamps. (Implemented by kpetrykin)
+ Added `close_connection` endpoint in JavaScript to inform server page refreshing.(Thanks to kpetrykin)
+ Added exclusive reset connection node `/close_connection` in routes.
+ Added `reset()` method to Video-Server class for manually resetting timestamp clock.
+ Added `reset_enabled` flag to keep check on reloads.
+ Fixed premature webpage auto-reloading.
* Fixed web-page reloading bug after stream ended:
+ Disable webpage reload behavior handling for Live broadcasting.
+ Disable reload CI test on Windows machines due to random failures.
+ Improved handling of failed ICE connection.
* Fixed Assertion error bug:
+ Source must raise MediaStreamError when stream ends instead of returning None-type.
- **WebGear:**
* Removed format specific OpenCV decoding and encoding support for WebGear.
- **Helper:**
* Regex bugs fixed:
+ New improved regex for discovering supported encoders in `get_supported_vencoders`.
+ Re-implemented check for extracting only valid output protocols in `is_valid_url`.
* Bugfix related to OpenCV import:
+ Bug fixed for OpenCV import comparison test failing with Legacy versions and throwing `ImportError`.
* Fixed bug with `create_blank_frame` that throws error with gray frames.
* Implemented `RSTP` protocol validation as _demuxer_, since it's not a protocol but a demuxer.
* Removed redundant `logger_handler`, `mkdir_safe`, `retrieve_best_interpolation`, `capPropId` helper functions from asyncio package. Relatively imported helper functions from non-asyncio package.
* Removed unused `aiohttp` dependency.
* Removed `asctime` formatting from logging.
- **StreamGear:**
* Fixed Multi-Bitrate HLS VOD streams:
+ Re-implemented complete workflow for Multi-Bitrate HLS VOD streams.
+ Extended support to both *Single-Source* and *Real-time Frames* Modes.
* Fixed bugs with audio-video mapping.
* Fixed master playlist not generating in output.
* Fixed improper `-seg_duration` value resulting in broken pipeline.
* Fixed expected aspect ratio not calculated correctly for additional streams.
* Fixed stream not terminating when provided input from external audio device.
* Fixed bugs related to external audio not mapped correctly in HLS format.
* Fixed OPUS audio fragments not supported with MP4 video in HLS.
* Fixed unsupported high audio bit-rate bug.
- **Setup.py:**
* Fixed `latest_version` returning incorrect version for some PYPI packages.
* Removed `latest_version` variable support from `simplejpeg`.
* Fixed `streamlink` only supporting requests==2.25.1 on Windows.
* Removed all redundant dependencies like `colorama`, `aiofiles`, `aiohttp`.
- **Setup.cfg:**
* Replaced dashes with underscores to remove warnings.

 

Related Pull Requests 🔧

* PR 210
* PR 215
* PR 222
* PR 223
* PR 227
* PR 231
* PR 233
* PR 237
* PR 239
* PR 243

0.2.1

New Features ✨
- [x] **WebGear_RTC:**
* A new API that is similar to WeGear API in all aspects but utilizes WebRTC standard instead of Motion JPEG for streaming.
* Added a flexible backend for `aiortc` - a python library for Web Real-Time Communication (WebRTC).
* Integrated all functionality and parameters of WebGear into WebGear_RTC API.
* Implemented JSON Response with a WebRTC Peer Connection of Video Server.
* Added a internal `RTC_VideoServer` server on WebGear_RTC, a inherit-class to aiortc's VideoStreamTrack API.
* New Standalone UI Default theme v0.1.1 for WebGear_RTC from scratch without using 3rd-party assets. (by abhiTronix)
* New `custom.js` and `custom.css` for custom responsive behavior.
* Added WebRTC support to `custom.js` and ensured compatibility with WebGear_RTC.
* Added example support for ICE framework and STUN protocol like WebRTC features to `custom.js`.
* Added `resize()` function to `custom.js` to automatically adjust `video` & `img` tags for smaller screens.
* Added WebGear_RTC support in main.py for easy access through terminal using `--mode` flag.
* Integrated all WebGear_RTC enhancements to WebGear Themes.
* Added CI test for WebGear_RTC.
* Added complete docs for WebGear_RTC API.
* Added bare-minimum as well as advanced examples usage code.
* Added new theme images.
* Added Reference and FAQs.
- [x] **CamGear API:**
* New Improved Pure-Python Multiple-Threaded Implementation:
+ Optimized Threaded-Queue-Mode Performance. (PR by bml1g12)
+ Replaced regular `queue.full` checks followed by sleep with implicit sleep with blocking `queue.put`.
+ Replaced regular `queue.empty` checks followed by queue.
+ Replaced `nowait_get` with a blocking `queue.get` natural empty check.
+ Up-to 2x performance boost than previous implementations.
* New `THREAD_TIMEOUT` attribute to prevent deadlocks:
+ Added support for `THREAD_TIMEOUT` attribute to its `options` parameter.
+ Updated CI Tests and docs.
- [x] **WriteGear API:**
* New more robust handling of default video-encoder in compression mode:
+ Implemented auto-switching of default video-encoder automatically based on availability.
+ API now selects Default encoder based on priority: `"libx264" > "libx265" > "libxvid" > "mpeg4"`.
+ Added `get_supported_vencoders` Helper method to enumerate Supported Video Encoders.
+ Added common handler for `-c:v` and `-vcodec` flags.
- [x] **NetGear API:**
* New Turbo-JPEG compression with simplejpeg
+ Implemented JPEG compression algorithm for 4-5% performance boost at cost of minor loss in quality.
+ Utilized `encode_jpeg` and `decode_jpeg` methods to implement turbo-JPEG transcoding with `simplejpeg`.
+ Added options to control JPEG frames quality, enable fastest dct, fast upsampling to boost performance.
+ Added new `jpeg_compression`, `jpeg_compression_quality`, `jpeg_compression_fastdct`, `jpeg_compression_fastupsample` attributes.
+ Enabled fast dct by default with JPEG frames at 90%.
+ Added Docs for JPEG Frame Compression.
- [x] **WebGear API:**
* New modular and flexible configuration for Custom Sources:
+ Implemented more convenient approach for handling custom source configuration.
+ Added new `config` global variable for this new behavior.
+ Now None-type `source` parameter value is allowed for defining own custom sources.
+ Added new Example case and Updates Docs for this feature.
+ Added new CI Tests.
* New Browser UI Updates:
+ New Standalone UI Default theme v0.1.0 for browser (by abhiTronix)
+ Completely rewritten theme from scratch with only local resources.
+ New `custom.js` and `custom.css` for custom responsive behavior.
+ New sample glow effect with css.
+ New sample click to full-screen behavior with javascript.
+ Removed all third-party theme dependencies.
+ Update links to new github server `abhiTronix/vidgear-vitals`
+ Updated docs with new theme's screenshots.
* Added `enable_infinite_frames` attribute for enabling infinite frames.
* Added New modular and flexible configuration for Custom Sources.
* Bumped WebGear Theme Version to v0.1.1.
* Updated Docs and CI tests.
- [x] **ScreenGear API:**
* Implemented Improved Pure-Python Multiple-Threaded like CamGear.
* Added support for `THREAD_TIMEOUT` attribute to its `options` parameter.
- [X] **StreamGear API:**
* Enabled pseudo live-streaming flag `re` for live content.
- [x] **Docs:**
* Added new native docs versioning to mkdocs-material.
* Added new examples and few visual tweaks.
* Updated Stylesheet for versioning.
* Added new DASH video chunks at https://github.com/abhiTronix/vidgear-docs-additionals for StreamGear and Stabilizer streams.
* Added open-sourced "Tears of Steel" * project Mango Teaser video chunks.
* Added open-sourced "Subspace Video Stabilization" http://web.cecs.pdx.edu/~fliu/project/subspace_stabilization/ video chunks.
* Added support for DASH Video Thumbnail preview in Clappr within `custom.js`.
* Added responsive clappr DASH player with bootstrap's `embed-responsive`.
* Added new permalink icon and slugify to toc.
* Added "back-to-top" button for easy navigation.
- [x] **Helper:**
* New GitHub Mirror with latest Auto-built FFmpeg Static Binaries:
+ Replaced new GitHub Mirror `abhiTronix/FFmpeg-Builds` in helper.py
+ New CI maintained Auto-built FFmpeg Static Binaries.
+ Removed all 3rd-party and old links for better compatibility and Open-Source reliability.
+ Updated Related CI tests.
- Added auto-font-scaling for `create_blank_frame` method.
* Added `c_name` parameter to `generate_webdata` and `download_webdata` to specify class.
* A more robust Implementation of Downloading Artifacts:
* Added a custom HTTP `TimeoutHTTPAdapter` Adapter with a default timeout for all HTTP calls based on [this GitHub comment]().
* Implemented http client and the `send()` method to ensure that the default timeout is used if a timeout argument isn't provided.
* Implemented Requests session`with` block to exit properly even if there are unhandled exceptions.
* Add a retry strategy to custom `TimeoutHTTPAdapter` Adapter with max 3 retries and sleep(`backoff_factor=1`) between failed requests.
* Added `create_blank_frame` method to create bland frames with suitable text.
- [x] **[CI] Continuous Integration:**
* Added new fake frame generated for fake `picamera` class with numpy.
* Added new `create_bug` parameter to fake `picamera` class for emulating various artificial bugs.
* Added float/int instance check on `time_delay` for camgear and pigear.
* Added `EXIT_CODE` to new timeout implementation for pytests to upload codecov report when no timeout.
* Added auxiliary classes to fake `picamera` for facilitating the emulation.
* Added new CI tests for PiGear Class for testing on all platforms.
* Added `shutdown()` function to gracefully terminate WebGear_RTC API.
* Added new `coreutils` brew dependency.
* Added handler for variable check on exit and codecov upload.
* Added `is_running` flag to WebGear_RTC to exit safely.
- [x] **Setup:**
* New automated latest version retriever for packages:
+ Implemented new `latest_version` method to automatically retrieve latest version for packages.
+ Added Some Dependencies.
* Added `simplejpeg` package for all platforms.

 

Updates/Improvements 🔧
- Added exception for RunTimeErrors in NetGear CI tests.
- WriteGear: Critical file write access checking method:
* Added new `check_WriteAccess` Helper method.
* Implemented a new robust algorithm to check if given directory has write-access.
* Removed old behavior which gives irregular results.
- Helper: Maintenance Updates
* Added workaround for Python bug.
* Added `safe_mkdir` to `check_WriteAccess` to automatically create non-existential parent folder in path.
* Extended `check_WriteAccess` Patch to StreamGear.
* Simplified `check_WriteAccess` to handle Windows envs easily.
* Updated FFmpeg Static Download URL for WriteGear.
* Implemented fallback option for auto-calculating bitrate from extracted audio sample-rate in `validate_audio` method.
- Docs: General UI Updates
* Updated Meta tags for og site and twitter cards.
* Replaced Custom dark theme toggle with mkdocs-material's official Color palette toggle
* Added example for external audio input and creating segmented MP4 video in WriteGear FAQ.
* Added example for YouTube streaming with WriteGear.
* Removed custom `dark-material.js` and `header.html` files from theme.
* Added blogpost link for detailed information on Stabilizer Working.
* Updated `mkdocs.yml` and `custom.css` configuration.
* Remove old hack to resize clappr DASH player with css.
* Updated Admonitions.
* Improved docs contexts.
* Updated CSS for version-selector-button.
* Adjusted files to match new themes.
* Updated welcome-bot message for typos.
* Removed redundant FAQs from NetGear Docs.
* Updated Assets Images.
* Updated spacing.
- CI:
* Removed unused `github.ref` from yaml.
* Updated OpenCV Bash Script for Linux envs.
* Added `timeout-minutes` flag to github-actions workflow.
* Added `timeout` flag to pytest.
* Replaced Threaded Gears with OpenCV VideoCapture API.
* Moved files and Removed redundant code.
* Replaced grayscale frames with color frames for WebGear tests.
* Updated pytest timeout value to 15mins.
* Removed `aiortc` automated install on Windows platform within setup.py.
* Added new timeout logic to continue to run on external timeout for GitHub Actions Workflows.
* Removed unreliable old timeout solution from WebGear_RTC.
* Removed `timeout_decorator` and `asyncio_timeout` dependencies for CI.
* Removed WebGear_RTC API exception from codecov.
* Implemented new fake `picamera` class to CI utils for emulating RPi Camera-Module Real-time capabilities.
* Implemented new `get_RTCPeer_payload` method to receive WebGear_RTC peer payload.
* Removed PiGear from Codecov exceptions.
* Disable Frame Compression in few NetGear tests failing on frame matching.
* Updated NetGear CI tests to support new attributes
* Removed warnings and updated yaml
* Added `pytest.ini` to address multiple warnings.
* Updated azure workflow condition syntax.
* Update `mike` settings for mkdocs versioning.
* Updated codecov configurations.
* Minor logging and docs updates.
* Implemented pytest timeout for azure pipelines for macOS envs.
* Added `aiortc` as external dependency in `appveyor.yml`.
* Re-implemented WebGear_RTC improper offer-answer handshake in CI tests.
* WebGear_RTC CI Updated with `VideoTransformTrack` to test stream play.
* Implemented fake `AttributeError` for fake picamera class.
* Updated PiGear CI tests to increment codecov.
* Update Tests docs and other minor tweaks to increase overall coverage.
* Enabled debugging and disabled exit 1 on error in azure pipeline.
* Removed redundant benchmark tests.
- Helper: Added missing RSTP URL scheme to `is_valid_url` method.
- NetGear_Async: Added fix for uvloop only supporting python>=3.7 legacies.
- Extended WebGear's Video-Handler scope to `https`.
- CI: Remove all redundant 32-bit Tests from Appveyor:
* Appveyor 32-bit Windows envs are actually running on 64-bit machines.
* More information here: https://help.appveyor.com/discussions/questions/20637-is-it-possible-to-force-running-tests-on-both-32-bit-and-64-bit-windows
- Setup: Removed `latest_version` behavior from some packages.
- NetGear_Async: Revised logic for handling uvloop for all platforms and legacies.
- Setup: Updated logic to install uvloop-"v0.14.0" for python-3.6 legacies.
- Removed any redundant code from webgear.
- StreamGear:
* Replaced Ordinary dict with Ordered Dict to use `move_to_end` method.
* Moved external audio input to output parameters dict.
* Added additional imports.
* Updated docs to reflect changes.
- Numerous Updates to Readme and `mkdocs.yml`.
- Updated font to `FONT_HERSHEY_SCRIPT_COMPLEX` and enabled logging in create_blank_frame.
- Separated channels for downloading and storing theme files for WebGear and WebGear_RTC APIs.
- Removed `logging` condition to always inform user in a event of FFmpeg binary download failure.
- WebGear_RTC:
* Improved auto internal termination.
* More Performance updates through `setCodecPreferences`.
* Moved default Video RTC video launcher to `__offer`.
- NetGear_Async: Added timeout to client in CI tests.
- Reimplemented and updated `changelog.md`.
- Updated code comments.
- Setup: Updated keywords and classifiers.
- Bumped codecov.

 

Breaking Updates/Changes 💥
- [x] :warning: WriteGear will automatically switch video encoder to default if specified encoder not found.
- [x] :warning: WriteGear will throw `RuntimeError` if no suitable default encoder found!
- [x] :warning: Removed format specific OpenCV decoding and encoding support for NetGear.
- [x] :warning: Dropped support for `compression_format`, `compression_param` attributes from NetGear.
- [x] Non-existent parent folder in `output_filename` value will no longer be considered as invalid in StreamGear and WriteGear APIs.
- [x] None-type `source` parameter value is allowed for WebGear and NetGear_Async for defining custom sources.

 

Bug-fixes 🐛
- CamGear: Fixed F821 undefined name 'queue' bug.
- NetGear_Async: Fixed `source` parameter missing `None` as default value.
- Fixed uvloops only supporting python>=3.7 in NetGear_Async.
- Helper:
* Fixed Zombie processes in `check_output` method due a hidden bug in python. For reference: https://bugs.python.org/issue37380
* Fixed regex in `validate_video` method.
- Docs:
* Invalid `site_url` bug patched in mkdocs.yml
* Remove redundant mike theme support and its files.
* Fixed video not centered when DASH video in fullscreen mode with clappr.
* Fixed Incompatible new mkdocs-docs theme.
* Fixed missing hyperlinks.
- CI:
* Fixed NetGear Address bug
* Fixed bugs related to termination in WebGear_RTC.
* Fixed random CI test failures and code cleanup.
* Fixed string formating bug in Helper.py.
* Fixed F821 undefined name bugs in WebGear_RTC tests.
* NetGear_Async Tests fixes.
* Fixed F821 undefined name bugs.
* Fixed typo bugs in `main.py`.
* Fixed Relative import bug in PiGear.
* Fixed regex bug in warning filter.
* Fixed WebGear_RTC frozen threads on exit.
* Fixed bugs in codecov bash uploader setting for azure pipelines.
* Fixed False-positive `picamera` import due to improper sys.module settings.
* Fixed Frozen Threads on exit in WebGear_RTC API.
* Fixed deploy error in `VidGear Docs Deployer` workflow
* Fixed low timeout bug.
* Fixed bugs in PiGear tests.
* Patched F821 undefined name bug.
- StreamGear:
* Fixed StreamGear throwing `Picture size 0x0 is invalid` bug with external audio.
* Fixed default input framerate value getting discarded in Real-time Frame Mode.
* Fixed internal list-formatting bug.
- Fixed E999 SyntaxError bug in `main.py`.
- Fixed Typo in bash script.
- Fixed WebGear freeze on reloading bug.
- Fixed anomalies in `install_opencv` bash script.
- Helper: Bug Fixed in `download_ffmpeg_binaries` method.
- Helper: Fixed OSError bug in `check_WriteAccess` method.
- Helper: Fixed Input Audio stream bitrate test failing to detect audio-bitrate in certain videos with `validate_audio` method.
- Fixed bugs in `requests` module's function arguments.
- Fixed None-type stream bug in WebGear.
- Fixed random crashes in WebGear.
- Fixed numerous CI test bugs.
- Fixed several typos.

 

Pull Requests
* PR 129
* PR 130
* PR 155
* PR 207

0.2.0

New Features

- [x] **CamGear API:**
* Support for various Live-Video-Streaming services:
+ Added seamless support for live video streaming sites like Twitch, LiveStream, Dailymotion etc.
+ Implemented flexible framework around `streamlink` python library with easy control over parameters and quality.
+ Stream Mode can now automatically detects whether `source` belong to YouTube or elsewhere, and handles it with appropriate API.
* Re-implemented YouTube URLs Handler:
+ Re-implemented CamGear's YouTube URLs Handler completely from scratch.
+ New Robust Logic to flexibly handing video and video-audio streams.
+ Intelligent stream selector for selecting best possible stream compatible with OpenCV.
+ Added support for selecting stream qualities and parameters.
+ Implemented new `get_supported_quality` helper method for handling specified qualities
+ Fixed Live-Stream URLs not supported by OpenCV's Videocapture and its FFmpeg.
* Added additional `STREAM_QUALITY` and `STREAM_PARAMS` attributes.
- [x] **ScreenGear API:**
* Multiple Backends Support:
+ Added new multiple backend support with new [`pyscreenshot`](https://github.com/ponty/pyscreenshot) python library.
+ Made `pyscreenshot` the default API for ScreenGear, replaces `mss`.
+ Added new `backend` parameter for this feature while retaining previous behavior.
+ Added native automated RGB to BGR conversion for default PIL backend.
+ Kept support for old `mss` for old compatibility and multi-screen support.
+ Added native dimensional support for multi-screen.
+ Added support all input from all multiple screens.
+ Updated ScreenGear Docs.
+ Updated ScreenGear CI tests.
- [X] **StreamGear API:**
* Changed default behaviour to support complete video transcoding.
* Added `-livestream` attribute to support live-streaming.
* Added additional parameters for `-livestream` attribute functionality.
* Updated StreamGear Tests.
* Updated StreamGear docs.
- [x] **Stabilizer Class:**
* New Robust Error Handling with Blank Frames:
+ Elegantly handles all crashes due to Empty/Blank/Dark frames.
+ Stabilizer throws Warning with this new behavior instead of crashing.
+ Updated CI test for this feature.
- [x] **Docs:**
* Automated Docs Versioning:
+ Implemented Docs versioning through `mike` API.
+ Separate new workflow steps to handle different versions.
+ Updated docs deploy worflow to support `release` and `dev` builds.
+ Added automatic version extraction from github events.
+ Added `version-select.js` and `version-select.css` files.
* Toggleable Dark-White Docs Support:
+ Toggle-button to easily switch dark, white and preferred theme.
+ New Updated Assets for dark backgrounds
+ New css, js files/content to implement this behavior.
+ New material icons for button.
+ Updated scheme to `slate` in `mkdocs.yml`.
* New Theme and assets:
+ New `purple` theme with `dark-purple` accent color.
+ New images assets with updated transparent background.
+ Support for both dark and white theme.
+ Increased `rebufferingGoal` for dash videos.
+ New updated custom 404 page for docs.
* Issue and PR automated-bots changes
+ New `need_info.yml` YAML Workflow.
+ New `needs-more-info.yml` Request-Info template.
+ Replaced Request-Info templates.
+ Improved PR and Issue welcome formatting.
* Added custom HTML pages.
* Added `show_root_heading` flag to disable headings in References.
* Added new `inserAfter` function to version-select.js.
* Adjusted hue for dark-theme for better contrast.
* New usage examples and FAQs.
* Added `gitmoji` for commits.
- [x] **Continuous Integration:**
* Maintenance Updates:
+ Added support for new `VIDGEAR_LOGFILE` environment variable in Travis CI.
+ Added missing CI tests.
+ Added logging for helper functions.
* Azure-Pipeline workflow for MacOS envs
+ Added Azure-Pipeline Workflow for testing MacOS environment.
+ Added codecov support.
* GitHub Actions workflow for Linux envs
+ Added GitHub Action work-flow for testing Linux environment.
* New YAML to implement GitHub Action workflow for python 3.6, 3.7, 3,8 & 3.9 matrices.
* Added Upload coverage to Codecov GitHub Action workflow.
* New codecov-bash uploader for Azure Pipelines.
- [x] **Logging:**
* Added file support
+ Added `VIDGEAR_LOGFILE` environment variable to manually add file/dir path.
+ Reworked `logger_handler()` Helper methods (in asyncio too).
+ Added new formatter and Filehandler for handling logger files.
* Added `restore_levelnames` auxiliary method for restoring logging levelnames.
- [x] Added auto version extraction from package `version.py` in setup.py.

Updates/Improvements

- [x] Added missing Lazy-pirate auto-reconnection support for Multi-Servers and Multi-Clients Mode in NetGear API.
- [x] Added new FFmpeg test path to Bash-Script and updated README broken links.
- [x] Asset Cleanup:
* Removed all third-party javascripts from projects.
* Linked all third-party javascript directly.
* Cleaned up necessary code from CSS and JS files.
* Removed any copyrighted material or links.
- [x] Rewritten Docs from scratch:
* Improved complete docs formatting.
* Simplified language for easier understanding.
* Fixed `mkdocstrings` showing root headings.
* Included all APIs methods to `mkdocstrings` docs.
* Removed unnecessary information from docs.
* Corrected Spelling and typos.
* Fixed context and grammar.
* Removed `motivation.md`.
* Renamed many terms.
* Fixed hyper-links.
* Reformatted missing or improper information.
* Fixed context and spellings in Docs files.
* Simplified language for easy understanding.
* Updated image sizes for better visibility.
- [x] Bash Script: Updated to Latest OpenCV Binaries version and related changes
- [x] Docs: Moved version-selector to header and changed default to alias.
- [x] Docs: Updated `deploy_docs.yml` for releasing dev, stable, and release versions.
- [x] Re-implemented overridden material theme.
- [x] Updated docs with all new additions and examples.
- [x] CamGear: CI Stream Mode test updated.
- [x] Updated ReadMe.md badges.
- [x] Updated CI tests.
- [x] Updated `setup.py` with new features.
- [x] Updated `contributing.md` and `ReadMe.md`.
- [x] Updated OpenCV version to `4.5.1-dev` in bash scripts
- [x] Updated `changelog.md`.
- [x] Moved WebGear API to Streaming Gears.
- [x] Bumped Codecov.
- [x] UI changes to version-select.js
- [x] Docs: Retitle the versions and `mkdocs.yml` formatting updated.
- [x] Docs: Version Selector UI reworked and other minor changes.

Breaking Updates/Changes

- [x] :warning: `y_tube` parameter renamed as `stream_mode` in CamGear API!
- [x] :warning: Removed Travis support and `travis.yml` deleted.

Bug-fixes

- [x] Fixed StreamGear API Limited Segments Bug
- [x] Fixed Missing links in docs and bump up version.
- [x] CI: Fixed Appveyor need newer VM image to support Python 3.9.x matrix.
- [x] ScreenGear BugFix: Fixed Error Handling and updated CI Tests.
- [x] Fixed improper `mkdocs.yml` variables.
- [x] Fixed GStreamer plugin support in bash scripts.
- [x] Fixed typos in YAMLs and docs.
- [x] Docs: Fixed Docs Deployer YAML bug for CI envs.
- [x] Fixed wrong import in YAML.
- [x] Fixed visible hyperlink on hover in dark-toggle button.
- [x] Docs: Deployer YAML bug fixed.
- [x] Docs YAML: issue jimporter/mike33 patched and fixed `fetch-depth=0`.
- [x] Docs: `version-select.js` bug fixed.
- [x] Docs: UI Bugs Fixed.
- [x] CI: Codecov bugfixes.
- [x] Azure-Pipelines Codecov BugFixes.
- [x] Fixed `version.json` not detecting properly in `version-select.js`.
- [x] Fixed images not centered inside <figure> tag.
- [x] Fixed Asset Colors.
- [x] Fixed failing CI tests.
- [x] Fixed Several logging bugs.

Pull Requests

* PR 164
* PR 170
* PR 173
* PR 181
* PR 183
* PR 184

0.1.9

New Features

- **StreamGear API:**
* [X] New API that automates transcoding workflow for generating Ultra-Low Latency, High-Quality, Dynamic & Adaptive Streaming Formats.
* [X] Implemented multi-platform , standalone, highly extensible and flexible wrapper around FFmpeg for generating chunked-encoded media segments of the media, and easily accessing almost all of its parameters.
* [X] API automatically transcodes videos/audio files & real-time frames into a sequence of multiple smaller chunks/segments and also creates a Manifest file.
* [X] Added initial support for [MPEG-DASH](https://www.encoding.com/mpeg-dash/) _(Dynamic Adaptive Streaming over HTTP, ISO/IEC 23009-1)_.
* [X] Constructed default behavior in StreamGear, for auto-creating a Primary Stream of same resolution and framerate as source.
* [X] Added [TQDM](https://github.com/tqdm/tqdm) progress bar in non-debugged output for visual representation of internal processes.
* [X] Implemented several internal methods for preprocessing FFmpeg and internal parameters for producing streams.
* [X] Several standalone internal checks to ensure robust performance.
* [X] New [`terminate()`](../bonus/reference/streamgear/vidgear.gears.streamgear.StreamGear.terminate) function to terminate StremGear Safely.
* [X] New StreamGear Dual Modes of Operation:
+ Implemented *Single-Source* and *Real-time Frames* like independent Transcoding Modes.
+ Linked `-video_source` attribute for activating these modes
+ **Single-Source Mode**, transcodes entire video/audio file _(as opposed to frames by frame)_ into a sequence of multiple smaller segments for streaming
+ **Real-time Frames Mode**, directly transcodes video-frames _(as opposed to a entire file)_, into a sequence of multiple smaller segments for streaming
+ Added separate functions, [`stream()`](../bonus/reference/streamgear/vidgear.gears.streamgear.StreamGear.stream) for Real-time Frame Mode and [`transcode_source()`](../bonus/reference/streamgear/vidgear.gears.streamgear.StreamGear.transcode_source) for Single-Source Mode for easy transcoding.
+ Included auto-colorspace detection and RGB Mode like features _(extracted from WriteGear)_, into StreamGear.
* [X] New StreamGear Parameters:
+ Developed several new parameters such as:
+ `output`: handles assets directory
+ `formats`: handles adaptive HTTP streaming format.
+ `custom_ffmpeg`: handles custom FFmpeg location.
+ `stream_params`: handles internal and FFmpeg parameter seamlessly.
+ `logging`: turns logging on or off.
+ New `stream_params` parameter allows us to exploit almost all FFmpeg parameters and flexibly change its internal settings, and seamlessly generating high-quality streams with its attributes:
+ `-streams` _(list of dictionaries)_ for building additional streams with `-resolution`, `-video_bitrate` & `-framerate` like sub-attributes.
+ `-audio` for specifying external audio.
+ `-video_source` for specifying Single-Source Mode source.
+ `-input_framerate` for handling input framerate in Real-time Frames Mode.
+ `-bpp` attribute for handling bits-per-pixels used to auto-calculate video-bitrate.
+ `-gop` to manually specify GOP length.
+ `-ffmpeg_download_path` to handle custom FFmpeg download path on windows.
+ `-clear_prev_assets` to remove any previous copies of SteamGear Assets.
* [X] New StreamGear docs, MPEG-DASH demo, and recommended DASH players list:
+ Added new StreamGear docs, usage examples, parameters, references, new FAQs.
+ Added Several StreamGear usage examples w.r.t Mode of Operation.
+ Implemented [**Clappr**](https://github.com/clappr/clappr) based on [**Shaka-Player**](https://github.com/google/shaka-player), as Demo Player.
+ Added Adaptive-dimensional behavior for Demo-player, purely in css.
+ Hosted StreamGear generated DASH chunks on GitHub and served with `raw.githack.com`.
+ Introduced variable quality level-selector plugin for Clapper Player.
+ Provide various required javascripts and implemented additional functionality for player in `extra.js`.
+ Recommended tested Online, Command-line and GUI Adaptive Stream players.
+ Implemented separate FFmpeg installation doc for StreamGear API.
+ Reduced `rebufferingGoal` for faster response.
* [X] New StreamGear CI tests:
+ Added IO and API initialization CI tests for its Modes.
+ Added various mode Streaming check CI tests.
- **NetGear_Async API:**
* [X] Added new `send_terminate_signal` internal method.
* [X] Added `WindowsSelectorEventLoopPolicy()` for windows 3.8+ envs.
* [X] Moved Client auto-termination to separate method.
* [X] Implemented graceful termination with `signal` API on UNIX machines.
* [X] Added new `timeout` attribute for controlling Timeout in Connections.
* [X] Added missing termination optimizer (`linger=0`) flag.
* [X] Several ZMQ Optimizer Flags added to boost performance.
- **WriteGear API:**
* [X] Added support for adding duplicate FFmpeg parameters to `output_params`:
+ Added new `-clones` attribute in `output_params` parameter for handing this behavior..
+ Support to pass FFmpeg parameters as list, while maintaining the exact order it was specified.
+ Built support for `zmq.REQ/zmq.REP` and `zmq.PUB/zmq.SUB` patterns in this mode.
+ Added new CI tests debugging this behavior.
+ Updated docs accordingly.
* [X] Added support for Networks URLs in Compression Mode:
+ `output_filename` parameter supports Networks URLs in compression modes only
+ Added automated handling of non path/file Networks URLs as input.
+ Implemented new `is_valid_url` helper method to easily validate assigned URLs value.
+ Validates whether the given URL value has scheme/protocol supported by assigned/installed ffmpeg or not.
+ WriteGear will throw `ValueError` if `-output_filename` is not supported.
+ Added related CI tests and docs.
* [X] Added `disable_force_termination` attribute in WriteGear to disable force-termination.
- **NetGear API:**
* [X] Added option to completely disable Native Frame-Compression:
+ Checks if any Incorrect/Invalid value is assigned on `compression_format` attribute.
+ Completely disables Native Frame-Compression.
+ Updated docs accordingly.
- **CamGear API:**
* [X] Added new and robust regex for identifying YouTube URLs.
* [X] Moved `youtube_url_validator` to Helper.
- **New `helper.py` methods:**
* [X] Added `validate_video` function to validate video_source.
* [X] Added `extract_time` Extract time from give string value.
* [X] Added `get_video_bitrate` to caliculate video birate from resolution, framerate, bits-per-pixels values.
* [X] Added `delete_safe` to safely delete files of given extension.
* [X] Added `validate_audio` to validate audio source.
* [X] Added new Helper CI tests.
+ Added new `check_valid_mpd` function to test MPD files validity.
+ Added `mpegdash` library to CI requirements.
- **Deployed New Docs Upgrades:**
* [X] Added new assets like _images, gifs, custom scripts, javascripts fonts etc._ for achieving better visual graphics in docs.
* [X] Added `clappr.min.js`, `dash-shaka-playback.js`, `clappr-level-selector.min.js` third-party javascripts locally.
* [X] Extended Overview docs Hyperlinks to include all major sub-pages _(such as Usage Examples, Reference, FAQs etc.)_.
* [X] Replaced GIF with interactive MPEG-DASH Video Example in Stabilizer Docs.
* [X] Added new `pymdownx.keys` to replace `[Ctrl+C]/[⌘+C]` formats.
* [X] Added new `custom.css` stylescripts variables for fluid animations in docs.
* [X] Overridden announce bar and added donation button.
* [X] Lossless WEBP compressed all PNG assets for faster loading.
* [X] Enabled lazy-loading for GIFS and Images for performance.
* [X] Reimplemented Admonitions contexts and added new ones.
* [X] Added StreamGear and its different modes Docs Assets.
* [X] Added patch for images & unicodes for PiP flavored markdown in `setup.py`.
- **Added `Request Info` and `Welcome` GitHub Apps to automate PR and issue workflow**
* [X] Added new `config.yml` for customizations.
* [X] Added various suitable configurations.
- Added new `-clones` attribute to handle FFmpeg parameter clones in StreamGear and WriteGear API.
- Added new Video-only and Audio-Only sources in bash script.
- Added new paths in bash script for storing StreamGear & WriteGear assets temporarily.

Updates/Improvements

- [X] Added patch for `NotImplementedError` in NetGear_Async API on Windows 3.8+ envs.
- [X] Check for valid `output` file extension according to `format` selected in StreamGear.
- [X] Completed migration to `travis.com`.
- [X] Created new `temp_write` temp directory for WriteGear Assets in bash script.
- [X] Deleted old Redundant assets and added new ones.
- [X] Employed `isort` library to sort and group imports in Vidgear APIs.
- [X] Enabled exception for `list, tuple, int, float` in WriteGear API's `output_params` dict.
- [X] Enabled missing support for frame-compression in its primary Receive Mode.
- [X] Enforced pixel formats for streams.
- [X] Improved check for valid system path detection in WriteGear API.
- [X] Overrided `pytest-asyncio` fixture in NetGear_Async API.
- [X] Quoted Gear Headline for understanding each gear easily.
- [X] Re-Positioned Gear's banner images in overview for better readability.
- [X] Reduced redundant try-except blocks in NetGear Async.
- [X] Reformatted and Simplified Docs context.
- [X] Reimplemented `return_testvideo_path` CI function with variable streams.
- [X] Reimplemented `skip_loop` in NetGear_Async to fix `asyncio.CancelledError`.
- [X] Reimplemented buggy audio handler in StreamGear.
- [X] Reimplemented images with `<figure>` and `<figurecaption>` like tags.
- [X] Removed Python < 3.8 condition from all CI tests.
- [X] Removed or Grouped redundant code for increasing codecov.
- [X] Removed redundant code and simplified algorithmic complexities in Gears.
- [X] Replaced `;nbsp` with `;thinsp` and `;emsp`.
- [X] Replaced `IOError` with more reliable `RuntimeError` in StreamGear Pipelines.
- [X] Replaced `del` with `pop` in dicts.
- [X] Replaced all Netgear CI tests with more reliable `try-except-final` blocks.
- [X] Replaced simple lists with `pymdownx.tasklist`.
- [X] Replaced subprocess `call()` with `run()` for better error handling in `execute_ffmpeg_cmd` function.
- [X] Resized over-sized docs images.
- [X] Simplified `delete_safe` Helper function.
- [X] Simplified default audio-bitrate logic in StreamGear
- [X] Updated CI tests and cleared redundant code from NetGear_Async API.
- [X] Updated CI with new tests and Bumped Codecov.
- [X] Updated Issue and PR templates.
- [X] Updated Licenses for new files and shrink images dimensions.
- [X] Updated Missing Helpful tips and increased logging.
- [X] Updated PR guidelines for more clarity.
- [X] Updated WebGear examples addresses from `0.0.0.0` to `localhost`.
- [X] Updated WriteGear and StreamGear CI tests for not supporting temp directory.
- [X] Updated `README.md` and `changelog.md` with new changes.
- [X] Updated `check_output` and added `force_retrieve_stderr` support to `**kwargs` to extract `stderr` output even on FFmpeg error.
- [X] Updated `dicts2args` to support internal repeated `coreX` FFmpeg parameters for StreamGear.
- [X] Updated `mkdocs.yml`, `changelog.md` and `README.md` with latest changes.
- [X] Updated `validate_audio` Helper function will now retrieve audio-bitrate for validation.
- [X] Updated buggy `mpegdash` dependency with custom dev fork for Windows machines.
- [X] Updated core parameters for audio handling.
- [X] Updated logging for debugging selected eventloops in NetGear_Async API.
- [X] Updated termination linger to zero at Server's end.

Breaking Updates/Changes

- [X] :warning: Changed Webgear API default address to `localhost` for cross-compatibility between different platforms.
- [X] In Netgear_Async API, `source` value can now be NoneType for a custom frame-generator at Server-end only.
- [X] Temp _(such as `/tmp` in linux)_ is now not a valid directory for WriteGear & StreamGear API outputs.
- [X] Moved vidgear docs assets _(i.e images, gifs, javascripts and stylescripts)_ to `override` directory.

Bug-fixes

- [X] Added workaround for system path not handle correctly.
- [X] Fixed Bug: URL Audio format not being handled properly.
- [X] Fixed Critical Bug in NetGear_Async throwing `ValueError` with None-type Source.
- [X] Fixed Critical StreamGear Bug: FFmpeg pipeline terminating prematurely in Single-Source Mode.
- [X] Fixed Critical external audio handler bug: moved audio-input to input_parameters.
- [X] Fixed Frozen-threads bug in CI tests.
- [X] Fixed Mkdocs only accepting Relative paths.
- [X] Fixed OSError in WriteGear's compression mode.
- [X] Fixed StreamGear CI bugs for Windows and CI envs.
- [X] Fixed Typos and Indentation bugs in NetGear API.
- [X] Fixed ZMQ throwing error on termination if all max-tries exhausted.
- [X] Fixed `NameError` bug in NetGear API.
- [X] Fixed `NameError` bugs in StreamGear CI.
- [X] Fixed `NameError` in CI functions and tests.
- [X] Fixed `TimeoutError` bug in NetGear_Async CI tests.
- [X] Fixed `get_valid_ffmpeg_path` throwing `TypeError` with non-string values.
- [X] Fixed broken links in docs.
- [X] Fixed critical duplicate logging bug.
- [X] Fixed default `gop` value not handle correctly.
- [X] Fixed handling of incorrect paths detection.
- [X] Fixed incorrect definitions in NetGear_Async.
- [X] Fixed left-over attribute bug in WriteGear.
- [X] Fixed logic and indentation bugs in CI tests.
- [X] Fixed logic for handling output parameters in WriteGear API.
- [X] Fixed missing definitions and logic bug in StreamGear.
- [X] Fixed missing import and incorrect CI definitions.
- [X] Fixed missing source dimensions from `extract_resolutions` output in StreamGear API.
- [X] Fixed missing support for compression parameters in Multi-Clients Mode.
- [X] Fixed round off error in FPS.
- [X] Fixed several CI bugs and updated `extract_resolutions` method.
- [X] Fixed several bugs from CI Bidirectional Mode tests.
- [X] Fixed several typos in docs usage examples.
- [X] Fixed various `AttributeError` with wrong attribute names and definition in CI Helper functions.
- [X] Fixed wrong and missing definitions in docs.
- [X] Fixed wrong logic for extracting OpenCV frames.
- [X] Fixed wrong type bug in StreamGear API.
- [X] Fixed wrong type error bug in WriteGear API.
- [X] Fixed wrong variable assignments bug in WriteGear API.
- [X] Fixes to CLI tests and missing docs imports.
- [X] Many minor typos and wrong definitions.

Pull Requests

* PR 129
* PR 130
* PR 155
* PR 157

Page 2 of 4

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.