Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Common Wrapper/Interface around various video reading/writing tools to make video reading stable, consistent, and super easy around different systems and OS.

License

Notifications You must be signed in to change notification settings

BlueMirrors/vidsz

Repository files navigation

Vidsz: Video's Wizard

CI-Test-Status CodeFactor status made-with-python Documentation Status Downloads

Common Wrapper/Interface around various video reading/writing tools to make video reading stable, consistent and super easy around different systems and OS.

pip install vidsz

Backends

  • OpenCV (in-development)

Features

  • Easy and hassle free (read/write with for-loop, with-block, while-loop)
  • Batch Support. Read and write frames in batches.

Read Video

Read with for-loop

from vidsz.opencv import Reader
# open reader
reader = Reader("static/countdown.mp4")
# read frame with for loop
for frame in reader:
 # use ndarry-frame however you like
 pass
# release
reader.release()

Read with a with-block

with Reader("static/countdown.mp4") as reader:
 frame = reader.read()

Read with a while-loop

# this follows similar behavior as opencv counterpart
while reader.is_open():
 # returns ndarry-frame or None if nothing left to read
 frame = reader.read()
 if frame is None:
 break

Read frames in a batch

with Reader("dummy.mp4", batch_size=8, dynamic_batch=True) as reader:
 batch_frames = reader.read()

Get properties of the reader

# print info: width, height, fps etc.
print(reader)
# access specific things
print(reader.width, reader.height, reader.fps)
# access number-of-frames/seconds/minutes that have been read
print(reader.frame_count, reader.seconds, reader.minutes)

Write Video

Write a single frame

from vidsz.opencv import Reader, Writer
video_fname = "static/countdown.mp4"
# open reader
reader = Reader(video_fname)
# start writer with the Reader object
# by default it'll append _out in the name of the output video
writer = Writer(reader)
# start writer with your settings;
# you can also give any combinations of
# following settings with Reader object to
# overwrite default settings
writer = Writer(name="out.mp4", width=1920, height=1080, fps=15)
# print writer info
print(writer)
# write single frame
frame = reader.read()
writer.write(frame)

Write with for-loop

# read frame with for loop
for frame in reader:
 # write the ndarry-frame
 writer.write(frame)

Write a batch

# read batches and write
with Reader("dummy.mp4", batch_size=8, dynamic_batch=True) as reader:
 batch_frames = reader.read()
 # write list or ndarray of frames
 writer.write_all(batch_frames)
# close off
reader.release()
writer.release()

Write with a with-block

# using "with" block, write "static/countdown_out.mp4" (clone of input)
with Reader(video_fname) as reader:
 with Writer(reader, name="out_with.mp4") as writer:
 writer.write_all(reader)

Logo-Attribution Designed by brgfx / Freepik

About

Common Wrapper/Interface around various video reading/writing tools to make video reading stable, consistent, and super easy around different systems and OS.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

AltStyle によって変換されたページ (->オリジナル) /