Skip to main content

Video playback in Python

Project description

pyvidplayer2 (please report all bugs!)

Introducing pyvidplayer2, the successor to pyvidplayer. It's better in pretty much every way, and finally allows an easy and reliable way to play videos in Python.

All the features from the original library have been ported over, with the exception of alt_resize(). Since pyvidplayer2 has a completely revamped foundation, the unreliability of set_size() has been quashed, and a fallback function is now redundant.

Features (tested on Windows)

  • Easy to implement (4 lines of code)
  • Fast and reliable
  • Adjust playback speed
  • No audio/video sync issues
  • Subtitle support (.srt)
  • Play multiple videos in parallel
  • Built in GUI
  • Support for Pygame, Pyglet, Tkinter, and PyQT6
  • Can play all ffmpeg supported video formats
  • Post process effects
  • Webcam feed

Installation

pip install pyvidplayer2

Note: FFMPEG (just the essentials is fine) must be installed and accessible via the system PATH. Here's an online article on how to do this (windows): https://phoenixnap.com/kb/ffmpeg-windows.

Quickstart

Refer to the examples folder for more basic guides, and documentation.md contains more detailed information.

import pygame
from pyvidplayer2 import Video


# create video object

vid = Video("video.mp4")

win = pygame.display.set_mode(vid.current_size)
pygame.display.set_caption(vid.name)


while True:
    key = None
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            vid.close()
            pygame.quit()
            exit()
        elif event.type == pygame.KEYDOWN:
            key = pygame.key.name(event.key)
    
    if key == "r":
        vid.restart()           #rewind video to beginning
    elif key == "p":
        vid.toggle_pause()      #pause/plays video
    elif key == "right":
        vid.seek(15)            #skip 15 seconds in video
    elif key == "left":
        vid.seek(-15)           #rewind 15 seconds in video
    elif key == "up":
        vid.set_volume(1.0)     #max volume
    elif key == "down":
        vid.set_volume(0.0)     #min volume

    # only draw new frames, and only update the screen if something is drawn
    
    if vid.draw(win, (0, 0), force_draw=False):
        pygame.display.update()

    pygame.time.wait(16) # around 60 fps

Potential Features (help welcome)

  • Stream online videos
  • Support for subtitle formats other than .srt

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyvidplayer2-0.9.10.tar.gz (13.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyvidplayer2-0.9.10-py3-none-any.whl (20.3 kB view details)

Uploaded Python 3

File details

Details for the file pyvidplayer2-0.9.10.tar.gz.

File metadata

  • Download URL: pyvidplayer2-0.9.10.tar.gz
  • Upload date:
  • Size: 13.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.3

File hashes

Hashes for pyvidplayer2-0.9.10.tar.gz
Algorithm Hash digest
SHA256 036ccdc8042e40863dacd97a51c8ccb28a8ac5df57d42f0c9ea416e21c0cfce5
MD5 7dbdcada4c965297a323a5b5b224f5cc
BLAKE2b-256 aa91c492dd24d0b305bd05aa3faeb317254c22255fd5757ca719220d629d6687

See more details on using hashes here.

File details

Details for the file pyvidplayer2-0.9.10-py3-none-any.whl.

File metadata

  • Download URL: pyvidplayer2-0.9.10-py3-none-any.whl
  • Upload date:
  • Size: 20.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.3

File hashes

Hashes for pyvidplayer2-0.9.10-py3-none-any.whl
Algorithm Hash digest
SHA256 9a80aca782ec98376a58e003af340143b97e7c24e66a8c05f05dcb337e6230fb
MD5 ad41da8e6017cd0dddf6251da84d2171
BLAKE2b-256 5de0cb303248b39fb7eaf8efa28a55d977ab0668947296914f7b14b093e6ec6c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page