A High-performance cross-platform Video Processing Python framework powerpacked with unique trailblazing features
APACHE-2.0 License
Bot releases are visible (Hide)
This update significantly enhances Vidgear's capabilities, ensuring better performance, broader compatibility, and improved user experience. The introduction of the Picamera2 API support, enhanced error handling, and detailed documentation updates are pivotal in making Vidgear more robust and user-friendly.
📓 Complete Release Notes can be found here ↗️
It is something I am doing with my own free time. But so much more needs to be done, and I need your help to do this. For just the price of a cup of coffee, you can make a difference 🙂
picamera
and newer picamera2
backends for clarity.-enable_force_termination
attribute for immediate FFmpeg process termination.is_valid_url
function:
on_shutdown
parameter with an async context manager lifespan
in WebGear and WebGear_RTC APIs.self.loop.create_task()
instead of asyncio.ensure_future()
WindowsSelectorEventLoop
policy.close()
methods for handling gracefully signal interruptions based on different operating systems with device audio streams.recv_handler
.execute_ffmpeg_cmd
method.picamera
dependency in setup.py
.pyzmq
version to address installation issues.extract_time
helper function regex to handle milliseconds.terminate()
method and introduce close()
method.
terminate()
method in StreamGear is now deprecated and will be removed in a future release. Developers should use the new close()
method instead, which provides a more descriptive name like in WriteGear API for terminating StreamGear processes safely.rgb_mode
parameter in stream()
method.
-livestream
parameter to Real-time Frames Mode only.
enforce_legacy_picamera=True
on unsupported system.msg_json
undefined when terminating context in the recv_handler
method.Published by abhiTronix about 1 year ago
📓 Complete Release Notes can be found here ↗️
kill
parameter to close()
method to forcefully kill ZMQ context instead of graceful exit only in the receive
mode.subscriber_timeout
integer optional parameter to support timeout with pattern=2
(or Publisher-Subscriber) pattern.
pattern=2
.-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)
-disable_ffmpeg_window
optional Boolean flag is only available on Windows OS with logging disabled(logging=False
) in compression mode..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.3.11.x
legacies.uvicorn
, starlette
, pyzmq
dependencies.3.7
legacy from Programming Language metadata.Funding.yml
.3.8
while installing vidgear in docs.python_requires
to >=3.8
. Thereby python 3.7
and any before legacy are no longer supported.monitor
parameter is not defined.compression_mode
flags in WriteGear API docs.Published by abhiTronix about 1 year ago
📓 Complete Release Notes can be found here ↗️
"/video"
to any alphanumeric string.custom_video_endpoint
optional string attribute for this purpose.dxcam
backend support for Windows machines.
dxcam
is now the default backend for Windows machines when no backend is defined.dxcam_target_fps
to control the target fps in dxcam
. Defaults to 0
(disabled).(int[device_idx], int[output_idx])
in the dxcam
backend only.
int
index is also allowed as a value for selecting device index.generate_webdata
method to make it more robust for rate limits and other shortcomings.generate_webdata
method will retry a different server when one fails.dxcam
dependency in core
and asyncio
extra requires for Windows machines.format
parameter when constructing a VideoFrame
from ndarray frames.dxcam
backend (if installed) when monitor
is defined on Windows machines.THREAD_TIMEOUT
optional flag.ndim==3
grayscale frames are encountered.
ndim==3
grayscale frames are detected.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
.Published by abhiTronix over 1 year ago
📓 Complete Release Notes can be found here ↗️
uint
) kind and element size 2
.-input_pixfmt
attribute to output_params
dictionary parameter for easily specifying custom input pixel-format.__enter__()
and __exit__()
methods for proper handling of resources via with
statement for allocating and releasing resources precisely. (Suggested by @sueskind)__enter__()
and __exit__()
methods for proper handling of resources via with
statement for allocating and releasing resources precisely. (Suggested by @sueskind)skip_generate_webdata
boolean optional attribute(False
by default) to completely disable Data-Files Auto-Generation WorkFlow.
/video
route for disabled Data-Files Auto-Generation WorkFlow./dev/video0
).logging=True
).startFFmpeg_Process
internal class method to start_FFProcess
.Preprocess
internal class method to PreprocessFFParams
.startCV_Process
internal class method to start_CVProcess
.initiate
internal class parameter to initiate_process
.force_termination
internal class parameter to forced_termination
.validate_audio
method with improved and more robust regex patterns for identifying audio bitrate in ay audio file.distutils.version.LooseVersion
with pkg_resources.parse_version
.LooseVersion
with parse_version
.Retry
package to be imported from requests.adapters
.12-07-2022
.output_filename
string parameter to output
.cmd
parameter in execute_ffmpeg_cmd()
class method to more sensible command
.ValueError
will be raised if datatype of input frames mismatches.CamGear.read()
blocked unnecessarily.ScreenGear.read()
blocked during startup.
ScreenGear.read()
doesn't checks if queue is empty before continuing.output
value as valid path.fltp
keyword in regex pattern causing non-ftlp streams to be not recognized.content-length
as Nonetype since it may not necessarily have the Content-Length header set.pyzmq==24.0.1
working version.Published by abhiTronix over 2 years ago
📓 Complete Release Notes can be found here ↗️
.gitignore
to ignore pypi's build
directory and egg-info
files.distutils.version.LooseVersion
with pkg_resources.parse_version
.Bonus
section to navigation and moved suitable pages under it.tostring()
to tobytes()
for the purposes for clarity in Python 3.2.-input_framerate
parameter now accepts any positive value for WriteGear and StreamGear APIs.-input_framerate
less than 5 does not get used in WriteGear and StreamGear APIs.(PR by @freol35241)hls_segment_type
not working bug. (PR by @enarche-ahn)logging=False
in StreamGear's Real-time Mode. (patch suggested by @enarche-ahn)-video_source
attribute to correctly infers it as empty(or invalid).3.1.0
or above breaks mkdocs.
jinja2>=3.1.0
breaks mkdocs (mkdocs/mkdocs#2799), therefore pinned jinja2 version to <3.1.0
.mkdocstring
versionsPublished by abhiTronix over 2 years ago
📓 Complete Release Notes can be found here ↗️
output_filename
parameter.-gst_pipeline_mode
attribute to its output_params
dictionary parameter to enable this mode.-ffpreheaders
special attribute to WriteGear's output_params
dictionary parameter in Compression mode:
-re
).float
value support to THREAD_TIMEOUT
optional attributes in threaded gears.>=3.7
.Published by abhiTronix almost 3 years ago
📓 Complete Release Notes can be found here ↗️
YT_backend
a new CamGear's Internal YT-DLP backend class for extracting metadata from Streaming URLs.ytv_metadata
global parameter to CamGear for accessing video's metadata(such as duration, title, description) on-the-go.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).is_livestream
global YT_backend parameters.extra_requires
under the name "core"
. [PR #268 by @zpapakipos]extra_require
dependencies.streamlink
dependency.pafy
dependency.pip
has been changed in v0.2.4
:
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.streamlink
backend support from stream_mode
in favor of more reliable CamGear's Internal YT-DLP backend class for extracting metadata from Streaming URLs.
ValueError
if streaming site URL is unsupported by yt-dlp backend.ValueError
if yt-dlp
isn't installed and stream_mode
is enabled.config
global parameter.source
parameter is NoneType as well as custom_stream
attribute is undefined.restore_levelnames
method.youtube_url_validator
method.Published by abhiTronix almost 3 years ago
📓 Complete Release Notes can be found here ↗️
4K
Streaming URLs.youtube-dl
with yt-dlp
as pafy backend for YouTube videos pipelining.
yt-dlp
as youtube-dl
.youtube-dl
dependency with yt-dlp
.youtube-dl
imports with yt-dlp
.check_WriteAccess
method..gitignore
for specifying intentionally untracked files to ignore.gitattributes
to manage how Git reads line endings.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.'%'
character from the naming convention for segment files.stream_count
dict variable to alter template for HLS segment filenames.-disable_force_termination
attribute logic which accidentally disables force termination.name 'VideoStreamTrack' is not defined
bug.TypeError
bug.latest_version
retrieval.check_WriteAccess
failing to recognize correct permission for writing the output file on windows platform.
Windows
and *nix
platforms.check_WriteAccess
that throws OSError
while handling URLs.Published by abhiTronix about 3 years ago
source=None
)RuntimeError
if bidirectional mode is disabled at server or client but not both.disable_confirmation
used to force disable termination confirmation from client in terminate_connection
.task_done()
method after every get()
call to gracefully terminate queues.secrets
and string
imports.simplejpeg
:
encode_jpeg
and decode_jpeg
methods to implement turbo-JPEG transcoding with simplejpeg
.jpeg_compression
, jpeg_compression_quality
, jpeg_compression_fastdct
, jpeg_compression_fastupsample
attributes.middleware
variable for easily defining Middlewares as list.retrieve_best_interpolation
method to automatically select best available interpolation within OpenCV.get_supported_demuxers
method to get list of supported demuxers.cython
and msgpack
dependency.msgpack
and msgpack_numpy
to auto-install latest.
ImportError
on all VidGear's APIs import.ImportError
on missing optional dependency.ImportError
will be raised only any certain API specific dependency is missing during given API's initialization.-min_seg_duration
flag with -seg_duration
.-re
flag from RTFM.np.newaxis
with np.expand_dims
.random
module with secrets
while generating system ID.np.copy
.loop
parameter from asyncio methods.skip_loop
parameter in close()
method.run_until_complete
will not used if skip_loop
is enabled.skip_loop
now will create asyncio task instead and will enable disable_confirmation
by default.create_task
with ensure_future
to ensure backward compatibility with python-3.6 legacies.transceive_data
method.is_running
variable globally available for internal use.4320p
resolution support to dimensions_to_resolutions
method.delete_file_safe
to safely delete files at given path.os.remove
calls with delete_file_safe
.delete_ext_safe
method.create_blank_frame
functions frame channels detection.logging
parameter to capPropId function to forcefully discard any error(if required).numpy
dependency, numpy
recently dropped support for python 3.6.x legacies. See https://github.com/numpy/numpy/releases/tag/v1.20.0
aiortc
to auto-install latest version.asyncio.sleep
value to 0
.
await asyncio.sleep(0)
will achieve the same effect. https://stackoverflow.com/a/55782965/10158117
ImportError
for API-specific dependencies will be raised only when any of them is missing at API's initialization.delete_safe
to delete_ext_safe
.frame_jpeg_quality
, frame_jpeg_optimize
, frame_jpeg_progressive
attributes from WebGear.
read()
to block it when source stream is busy.THREAD_TIMEOUT
with event wait timout.return_data
interfering with return JSON-data in receive mode.simplejpeg
bug. Issue: https://gitlab.com/jfolz/simplejpeg/-/issues/11
np.squeeze
to drop grayscale frame's 3rd dimension on Client's end.join()
.timeout
parameter logic.next_timestamp
VideoStreamTrack method for generating accurate timestamps.reset_connections
callable to reset all peer connections and recreate Video-Server timestamps. (Implemented by @kpetrykin)close_connection
endpoint in JavaScript to inform server page refreshing.(Thanks to @kpetrykin)/close_connection
in routes.reset()
method to Video-Server class for manually resetting timestamp clock.reset_enabled
flag to keep check on reloads.get_supported_vencoders
.is_valid_url
.ImportError
.create_blank_frame
that throws error with gray frames.RSTP
protocol validation as demuxer, since it's not a protocol but a demuxer.logger_handler
, mkdir_safe
, retrieve_best_interpolation
, capPropId
helper functions from asyncio package. Relatively imported helper functions from non-asyncio package.aiohttp
dependency.asctime
formatting from logging.-seg_duration
value resulting in broken pipeline.latest_version
returning incorrect version for some PYPI packages.latest_version
variable support from simplejpeg
.streamlink
only supporting requests==2.25.1 on Windows.colorama
, aiofiles
, aiohttp
.
Published by abhiTronix over 3 years ago
aiortc
- a python library for Web Real-Time Communication (WebRTC).RTC_VideoServer
server on WebGear_RTC, a inherit-class to aiortc's VideoStreamTrack API.custom.js
and custom.css
for custom responsive behavior.custom.js
and ensured compatibility with WebGear_RTC.custom.js
.resize()
function to custom.js
to automatically adjust video
& img
tags for smaller screens.--mode
flag.queue.full
checks followed by sleep with implicit sleep with blocking queue.put
.queue.empty
checks followed by queue.nowait_get
with a blocking queue.get
natural empty check.THREAD_TIMEOUT
attribute to prevent deadlocks:
THREAD_TIMEOUT
attribute to its options
parameter."libx264" > "libx265" > "libxvid" > "mpeg4"
.get_supported_vencoders
Helper method to enumerate Supported Video Encoders.-c:v
and -vcodec
flags.encode_jpeg
and decode_jpeg
methods to implement turbo-JPEG transcoding with simplejpeg
.jpeg_compression
, jpeg_compression_quality
, jpeg_compression_fastdct
, jpeg_compression_fastupsample
attributes.config
global variable for this new behavior.source
parameter value is allowed for defining own custom sources.custom.js
and custom.css
for custom responsive behavior.abhiTronix/vidgear-vitals
enable_infinite_frames
attribute for enabling infinite frames.THREAD_TIMEOUT
attribute to its options
parameter.re
for live content.custom.js
.embed-responsive
.abhiTronix/FFmpeg-Builds
in helper.pycreate_blank_frame
method.c_name
parameter to generate_webdata
and download_webdata
to specify class.TimeoutHTTPAdapter
Adapter with a default timeout for all HTTP calls based on this GitHub comment.send()
method to ensure that the default timeout is used if a timeout argument isn't provided.with
block to exit properly even if there are unhandled exceptions.TimeoutHTTPAdapter
Adapter with max 3 retries and sleep(backoff_factor=1
) between failed requests.create_blank_frame
method to create bland frames with suitable text.picamera
class with numpy.create_bug
parameter to fake picamera
class for emulating various artificial bugs.time_delay
for camgear and pigear.EXIT_CODE
to new timeout implementation for pytests to upload codecov report when no timeout.picamera
for facilitating the emulation.shutdown()
function to gracefully terminate WebGear_RTC API.coreutils
brew dependency.is_running
flag to WebGear_RTC to exit safely.latest_version
method to automatically retrieve latest version for packages.simplejpeg
package for all platforms.
check_WriteAccess
Helper method.safe_mkdir
to check_WriteAccess
to automatically create non-existential parent folder in path.check_WriteAccess
Patch to StreamGear.check_WriteAccess
to handle Windows envs easily.validate_audio
method.dark-material.js
and header.html
files from theme.mkdocs.yml
and custom.css
configuration.github.ref
from yaml.timeout-minutes
flag to github-actions workflow.timeout
flag to pytest.aiortc
automated install on Windows platform within setup.py.timeout_decorator
and asyncio_timeout
dependencies for CI.picamera
class to CI utils for emulating RPi Camera-Module Real-time capabilities.get_RTCPeer_payload
method to receive WebGear_RTC peer payload.pytest.ini
to address multiple warnings.mike
settings for mkdocs versioning.aiortc
as external dependency in appveyor.yml
.VideoTransformTrack
to test stream play.AttributeError
for fake picamera class.is_valid_url
method.https
.latest_version
behavior from some packages.move_to_end
method.mkdocs.yml
.FONT_HERSHEY_SCRIPT_COMPLEX
and enabled logging in create_blank_frame.logging
condition to always inform user in a event of FFmpeg binary download failure.setCodecPreferences
.__offer
.changelog.md
.
RuntimeError
if no suitable default encoder found!compression_format
, compression_param
attributes from NetGear.output_filename
value will no longer be considered as invalid in StreamGear and WriteGear APIs.source
parameter value is allowed for WebGear and NetGear_Async for defining custom sources.
source
parameter missing None
as default value.check_output
method due a hidden bug in python. For reference: https://bugs.python.org/issue37380
validate_video
method.site_url
bug patched in mkdocs.ymlmain.py
.picamera
import due to improper sys.module settings.VidGear Docs Deployer
workflowPicture size 0x0 is invalid
bug with external audio.main.py
.install_opencv
bash script.download_ffmpeg_binaries
method.check_WriteAccess
method.validate_audio
method.requests
module's function arguments.
Published by abhiTronix almost 4 years ago
streamlink
python library with easy control over parameters and quality.source
belong to YouTube or elsewhere, and handles it with appropriate API.get_supported_quality
helper method for handling specified qualitiesSTREAM_QUALITY
and STREAM_PARAMS
attributes.pyscreenshot
python library.pyscreenshot
the default API for ScreenGear, replaces mss
.backend
parameter for this feature while retaining previous behavior.mss
for old compatibility and multi-screen support.-livestream
attribute to support live-streaming.-livestream
attribute functionality.mike
API.release
and dev
builds.version-select.js
and version-select.css
files.slate
in mkdocs.yml
.purple
theme with dark-purple
accent color.rebufferingGoal
for dash videos.need_info.yml
YAML Workflow.needs-more-info.yml
Request-Info template.show_root_heading
flag to disable headings in References.inserAfter
function to version-select.js.gitmoji
for commits.VIDGEAR_LOGFILE
environment variable in Travis CI.VIDGEAR_LOGFILE
environment variable to manually add file/dir path.logger_handler()
Helper methods (in asyncio too).restore_levelnames
auxiliary method for restoring logging levelnames.version.py
in setup.py.mkdocstrings
showing root headings.mkdocstrings
docs.motivation.md
.deploy_docs.yml
for releasing dev, stable, and release versions.setup.py
with new features.contributing.md
and ReadMe.md
.4.5.1-dev
in bash scriptschangelog.md
.mkdocs.yml
formatting updated.y_tube
parameter renamed as stream_mode
in CamGear API!travis.yml
deleted.mkdocs.yml
variables.fetch-depth=0
.version-select.js
bug fixed.version.json
not detecting properly in version-select.js
.Published by abhiTronix about 4 years ago
terminate()
function to terminate StremGear Safely.-video_source
attribute for activating these modesstream()
for Real-time Frame Mode and transcode_source()
for Single-Source Mode for easy transcoding.output
: handles assets directoryformats
: 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.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.raw.githack.com
.extra.js
.rebufferingGoal
for faster response.send_terminate_signal
internal method.WindowsSelectorEventLoopPolicy()
for windows 3.8+ envs.signal
API on UNIX machines.timeout
attribute for controlling Timeout in Connections.linger=0
) flag.output_params
:
-clones
attribute in output_params
parameter for handing this behavior..zmq.REQ/zmq.REP
and zmq.PUB/zmq.SUB
patterns in this mode.output_filename
parameter supports Networks URLs in compression modes onlyis_valid_url
helper method to easily validate assigned URLs value.ValueError
if -output_filename
is not supported.disable_force_termination
attribute in WriteGear to disable force-termination.compression_format
attribute.youtube_url_validator
to Helper.helper.py
methods:
validate_video
function to validate video_source.extract_time
Extract time from give string value.get_video_bitrate
to caliculate video birate from resolution, framerate, bits-per-pixels values.delete_safe
to safely delete files of given extension.validate_audio
to validate audio source.check_valid_mpd
function to test MPD files validity.mpegdash
library to CI requirements.clappr.min.js
, dash-shaka-playback.js
, clappr-level-selector.min.js
third-party javascripts locally.pymdownx.keys
to replace [Ctrl+C]/[⌘+C]
formats.custom.css
stylescripts variables for fluid animations in docs.setup.py
.Request Info
and Welcome
GitHub Apps to automate PR and issue workflow
config.yml
for customizations.-clones
attribute to handle FFmpeg parameter clones in StreamGear and WriteGear API.NotImplementedError
in NetGear_Async API on Windows 3.8+ envs.output
file extension according to format
selected in StreamGear.travis.com
.temp_write
temp directory for WriteGear Assets in bash script.isort
library to sort and group imports in Vidgear APIs.list, tuple, int, float
in WriteGear API's output_params
dict.pytest-asyncio
fixture in NetGear_Async API.return_testvideo_path
CI function with variable streams.skip_loop
in NetGear_Async to fix asyncio.CancelledError
.<figure>
and <figurecaption>
like tags.;nbsp
with ;thinsp
and ;emsp
.IOError
with more reliable RuntimeError
in StreamGear Pipelines.del
with pop
in dicts.try-except-final
blocks.pymdownx.tasklist
.call()
with run()
for better error handling in execute_ffmpeg_cmd
function.delete_safe
Helper function.0.0.0.0
to localhost
.README.md
and changelog.md
with new changes.check_output
and added force_retrieve_stderr
support to **kwargs
to extract stderr
output even on FFmpeg error.dicts2args
to support internal repeated coreX
FFmpeg parameters for StreamGear.mkdocs.yml
, changelog.md
and README.md
with latest changes.validate_audio
Helper function will now retrieve audio-bitrate for validation.mpegdash
dependency with custom dev fork for Windows machines.localhost
for cross-compatibility between different platforms.source
value can now be NoneType for a custom frame-generator at Server-end only./tmp
in linux) is now not a valid directory for WriteGear & StreamGear API outputs.override
directory.ValueError
with None-type Source.NameError
bug in NetGear API.NameError
bugs in StreamGear CI.NameError
in CI functions and tests.TimeoutError
bug in NetGear_Async CI tests.get_valid_ffmpeg_path
throwing TypeError
with non-string values.gop
value not handle correctly.extract_resolutions
output in StreamGear API.extract_resolutions
method.AttributeError
with wrong attribute names and definition in CI Helper functions.Published by abhiTronix over 4 years ago
Multiple Clients support in NetGear API:
multiclient_mode
attribute for enabling this mode easily.zmq.REQ/zmq.REP
and zmq.PUB/zmq.SUB
patterns in this mode.zmq.REQ/zmq.REP
pattern only.Support for robust Lazy Pirate pattern(auto-reconnection) in NetGear API for both server and client ends:
REQ/REP
and PAIR
messaging patterns internally.max_retries
and request_timeout
(in seconds) for handling polling.DONTWAIT
flag for interruption-free data receiving.Performance Updates for NetGear API:
Reducer()
function in Helper.py to aid reducing frame-size on-the-go for more performance.recv()
function at client's end to reduce system load.Docs Migration to Mkdocs:
mkdocs-material
theme.mkdocs.yml
for Mkdocs with relevant data.docs
folder to handle markdown pages and its assets..md
) to docs folder, which are carefully crafted documents - based on previous Wiki's docs, and some completely new additions.admonition
, attr_list
, codehilite
, def_list
, footnotes
, meta
, and toc
like Mkdocs extensions.search
, minify
and git-revision-date-localized
plugins support.en
(English) language.mkdocstrings:
mkdocstrings
plugin for auto-building each VidGear's API references.mkdocstrings
.master
branch on Ubuntu machine to build matrix.NDarray
) transfer in Bidirectional mode.address already in use
bug at client's end.ValueError
with more suitable RuntimeError
.Reducer
Helper function CI test.os.devnull
with suprocess's inbuilt function.changelog.md
to /docs
and updated contribution guidelines.mkdocstrings
.mkdocs-exclude
, for excluding files from Mkdocs builds.⚠️ VidGear Docs moved to GitHub Pages, Now Available at https://abhitronix.github.io/vidgear.
filter
attribute from options
parameter in NetGear API.force_terminate
parameter support from NetGear API.numpy.ndarray
for Server end in Bidirectional Mode.'NoneType' object is not subscriptable
bug.request_timeout
value to 4 and also lowered cut-off limit for the same.README.md
from Mkdocs builds.pattern
value check bypassed if wrong value is assigned.try-except-final
blocks.NameError
bug in NetGear API.Published by abhiTronix over 4 years ago
WebGear API:
starlette
ASGI Application Server.__main__.py
to directly run WebGear Server through the terminal.NetGear_Async API
uvloop
at its backend.zmq.PAIR
, zmq.REQ/zmq.REP
, zmq.PUB/zmq.SUB
, and zmq.PUSH/zmq.PULL
.tcp
and ipc
protocols.Asynchronous I/O Enhancements
asyncio
package to vidgear for handling asynchronous APIs.asyncio
and created separate asyncio helper.py
for it.__main__.py
to asyncio for easier access to WebGear API through the terminal.setup.py
with new dependencies and separated asyncio dependencies.General Enhancements:
time.perf_counter
python module.logging handler
helper function for vidgear.setup.py
.retry
function and replaced wget
with curl
for Linux test envs.4.2.0-dev
for Linux test envs.helper.py
only.color_space
value in ScreenGear API.shutdown
function for safely stopping frame producer threads in WebGear API.mkdir
function with new mkdir_safe
helper function for creating directories safely.tcp
and ipc
only, in NetGear API.__address
and __port
are not set in async mode.(PR by @otter-in-a-suit)terminate()
with join()
in PiGear.uvloop
for windows as still NOT yet supported.async
to asyncio
, since it is used as Keyword in python>=3.7*(raises SyntaxError)*.helper.py
context. (@cclauss)__main__.py
.camera_num
parameter to VideoGear.download_url
meta from setup.py.__main__.py
from codecov.try-catch
loops.youtube_url_validation
as youtube_url_validator
.⚠️ PyPi Release does NOT contain Tests and Scripts!
Published by abhiTronix almost 5 years ago
self
in helper.py context which will raise NameError. (@cclauss)#88
⚠️ PyPi Release does NOT contain Tests and Scripts!
Published by abhiTronix almost 5 years ago
NetGear API:
secure_mode
param for enabling it.Stonehouse
& Ironhouse
ZMQ security mechanisms.multiserver_mode
param for enabling it.REQ/REP
& PUB/SUB
patterns for this mode.return_data
parameter to recv()
function.bidirectional_mode
attribute for enabling this mode.PAIR
& REQ/REP
patterns for this modemessage
parameter for non-exclusive primary modes for this mode.JPEG
, PNG
& BMP
encoding formatscompression_format
& compression_param
to tweak this featureforce_terminate
attribute flag for handling force socket termination at the Server-end if there's latency in the network.zmq.PUB/zmq.SUB
) pattern for seamless Live Streaming in NetGear API.PiGear API:
SystemError
if Picamera ribbon cable is pulled out to save resources.HWFAILURE_TIMEOUT
options attributes to alter timeout.VideoGear API:
framerate
global variable and removed redundant function.CROP_N_ZOOM
attribute in Videogear API for supporting Crop and Zoom stabilizer feature.WriteGear API: Added new execute_ffmpeg_cmd
function to pass a custom command to its FFmpeg pipeline.
Stabilizer class:
crop_n_zoom
param for enabling this feature.CLI & Tests updates:
Added VidGear's official native support for macOS environments.
print
logging commands with python's logging module completely.THREADED_QUEUE_MODE
param.$TMPDIR
rather than $HOME
directory for downloading test data.github.com
.RuntimeError
if the source provided is invalid.camera_num
to support multiple Picameras.colorlog
python module for presentable colored logging.traceback
with sys.exc_info
.travis.yml
.Pub/Sub
pattern for smoother performance on various networks.Secure Mode
and several related performance updatesmultiserver_mode
not working properly over some networks.github.com
).overwrite_cert
for client-end in NetGear API.setup.cfg
file.setup.py
and updated new release information.secure_mode
& multiserver_mode
Modes.⚠️ PyPi Release does NOT contain Tests and Scripts!
Published by abhiTronix about 5 years ago
stabilize
to VidGear API, to enable or disable Video Stabilization.**option
dict attributes to update VidGear's video stabilizer parameters directly..svg
) in readme.mdcontributing.md
and changelog.md
for reference.collections.deque
import in Threaded Queue Mode for performance considerationinstall_opencv.sh
bash scripts for Travis cli, to handle OpenCV installation.FUNDING.yml
)mss
, pyzmq
and rejected redundant ones.readme.md
and added new badges.Youtube video
URL in testspre-install.sh
to prepare_dataset.sh
- downloads opensourced test datasets and static FFmpeg binaries for debugging.script
folder location to bash/script
.Python 3.4
removed from Travis CLI tests.opencv-contrib-python
with OpenCV built from scratch as dependency.sys.stderr.close()
throws ValueError bug: Replaced sys.close()
with DEVNULL.close()
NonType
frames in CamGear API.NoneType
frames bug in PiGear class on initialization./xe2
unicode bug from Stabilizer class.**output_params
KeyError bug in WriteGear APImonitor
valuessetup.py
Published by abhiTronix over 5 years ago
y_tube
to access YouTube Mode in CamGear API.-output_dimensions
special parameter to WriteGear API.helper.py
to handle special helper functions.-input_framerate
special parameter to WriteGear class to change/control output constant framerate in compression mode(WriteGear).framerate
class variable for CamGear API, to retrieve input framerate.backend
- changes the backend of CamGear's APItravis.yml
appveyor.yml
Pre-install.sh
to download opensourced test datasets and static FFmpeg binaries for debugging.pytest
.Say Thank you!
badge to readme.youtube-dl
as a dependency, as required by pafy
's backend.-height
and -width
parameter from CamGear API.opencv-python
with opencv-contrib-python
completelyos
with platform
in setup.py.**options
/**output_param
dictionary keys.⚠️ PyPi Release does NOT contain Tests and Scripts!
Published by abhiTronix over 5 years ago
picamera
API handling during frame capture(PiGear)Tip 💡 Go through each PR to see what has changed and when!
Published by abhiTronix over 5 years ago
resolution, brightness, framerate etc.
**option
parameter to CamGear API, provides the flexibility to manipulate input stream directly.Tip 💡 Go through each PR to see what has changed and when!