Giter Site home page Giter Site logo

thisismy-github / pyplayer Goto Github PK

View Code? Open in Web Editor NEW
28.0 1.0 4.0 135.09 MB

A Python-based media player with simple editing features using PyQt5 and FFmpeg, supporting GIFs and multiple players including VLC and QMediaPlayer (not yet released).

License: GNU General Public License v2.0

Python 100.00%
cross-platform libvlc gui ffmpeg editor video media video-player media-player pyqt qmediaplayer qt vlc

pyplayer's Introduction

PyPlayer Latest Release Download Count

Screenshot Gallery #1


Trimming Live cropping

Editing features

  • Concatenating/splicing
  • Adding audio to images
  • Fading
  • Resizing (video dimensions and audio length/tempo)
  • Rotating/flipping
  • Audio amplification
  • Track removal/replacement/addition
  • And more! If you're reading from the future, that is.

Other features

  • Automatic updates
  • Animated GIF support (experimental)
  • Smooth zooming/panning (images/GIFs only for now)
  • High-precision progress bar (experimental)
  • Instantly cycle through media in the current folder
  • Back/forward support for recent files
  • Clicking on the player to pause
  • Precise frame seeking
  • Opening media in explorer and copying its path to your clipboard
  • Renaming - Just type a new name in the text box at the bottom and press enter to instantly rename your file
  • Deleting/recycling (recycled by default)
    • Mark files for later deletion (so you can change your mind), or instantly delete/recycle the file you have open
  • Enhanced drag-and-drop
    • Drag media, folders, and subtitle files
    • Hold Ctrl/Shift/Alt while dropping to instantly concatenate files together or add audio tracks
  • Snapshotting
    • Customize the size and aspect ratio of snapshots
    • Customize the naming format, image format, and quality (if applicable) of your snapshots
    • Use crop-mode to only snapshot the cropped region
    • Ability to view/explore/copy the most recent snapshot
    • Use snapshots to save cover art and extract GIF frames
  • Ability to automatically resize window to match media's size and/or aspect ratio
    • This behavior can even be altered on-the-fly with Ctrl/Shift
  • Pass arguments directly to the VLC instance as a string through the -v/--vlc argument

Custom themes

PyPlayer supports custom themes in the form of Qt Stylesheets, which can come as .txt, .qss, or .css files. To add a custom theme, place it in the themes directory in the same directory as pyplayer.exe.

PyPlayer themes have minor differences from standard stylesheets and use their own "Theme" section. View the included themes to get started with creating your own.

Contributing

PyPlayer's code is meant to provide a more human-friendly implementation of VLC that can be easily built on and expanded, so contributions are very welcome. Translations, documentation (where necessary), tests, missing VLC features, themes, better cross-platform support, and new editing features are all especially welcome. If you're wondering where to start, there's well over one hundred TODOs dotted around the project, ranging from interesting to tedious to probably impossible. Most of these TODOs, ideas, and known issues are right at the top of main.pyw.

Here are some basic guidelines:

  • If you're new to contributing in general, you can use this guide.
  • Follow the seven rules of a great commit message.
  • Try to match the style of the code surrounding your addition. Don't let your code stick out like a sore thumb.
  • Try to keep your commits isolated to one general issue. Don't mash too many ideas into one commit, and avoid throwing in frivolous edits like changing the whitespace of random in-line comments (I do a LOT of frivolous edits in my own commits because I'm a hypocrite).
  • Code should be as self-documenting as possible, with only minor explanatory comments/docstrings (if any).
  • bin/configparsebetter.py is currently off-limits (part of a future project).
  • Avoid changing the default themes unless it's to fix bugs or to add support for a new feature.
  • Avoid introducing new, heavy dependencies where possible.
  • Avoid relative paths where possible (use constants.CWD for the root folder).
  • Be mindful of constants.REPOSITORY_URL. Make sure it points to the original repository when you make your commits, if you happen to change it while testing a feature.

pyplayer's People

Contributors

thisismy-github avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

pyplayer's Issues

Yt-dlp, streamlink, hlsdl, N_m3u8DL and custom lua script and custom plugin to extend the capabilities of playing streaming videos from thousands websites

Hello, thank you very much for this wonderful great awesome media player ! 🥇 💯

Please I have some requests : it will be great to add new streaming features to make the fantastic Pyplayer even more powerful, exceptional and revolutionary !

such as adding support for the famous "yt-dlp" and "streamlink", and add custom youtube lua script and custon plugin to extend the capabilities of playing streaming videos fom thousands of streaming sites, thank you so much !

these resources may help :

*https://github.com/vzhd1701/gridplayer#features

*https://ys.3dyd.com/help/vlc_plugin/

*It seems that vlc player may not play videos that have ads ads :

https://forum.videolan.org/viewtopic.php?p=483226#p483226

and the solution to fix this problem is to replace the default lua files with these lua files found on the vlc player github page:

https://github.com/videolan/vlc/blob/master/share/lua/playlist/youtube.lua

https://github.com/videolan/vlc/tree/master/share/lua/playlist

We hope Pyplayer will replace the default lua files with the new ones therefore we can playback videos that contain ads ! Thanks alot !

Also,hlsdl solves some bugs in ffmpeg according to some users... it will be great to add support for this software, thank you very much !

https://github.com/selsta/hlsdl

".HLSDL appears working much better than ffmpeg in these cases.
Hlsdl is public and the source code available.
The stream plays almost immediately and is stable. No errors or buffering.
Using ffmpeg for the download step gives a very long intial delay and is not very stable.
so I assume that the new crypto+hls RAI flows are badly handled by ffmpeg based players now.....

the video is choppy and unable to buffer enough for a fluid vision. Parole has no problem.

FFmpeg is not good for HLS streams, but I watched a lot of various HLS streams without any problems. The main problem is that FFmpeg downloads all streams (many video sizes at once), so you can watch only HLS stream with single video size"

Also, it will be great please to add support of these awesome software to make our beloved wonderful Pyplayer even more awesome and the most powerful media playser in universe !

I mean even when the media player can't play directly the streaming video, and we know it is very complicated to integrate them ! so our hope is the player could automatically uses one of these sophisticated tools to download part of the video in the background and then play it !

Thank you so much :)

https://github.com/iawia002/lux

https://github.com/emarsden/dash-mpd-cli

https://github.com/nilaoda/N_m3u8DL-RE

https://github.com/nilaoda/N_m3u8DL-CLI

https://github.com/HeiSir2014/M3U8-Downloader

https://github.com/Spark-NF/hls-downloader

https://github.com/nilaoda/BBDown

Error playing media from source files

Hi, trying to install the source files and am met with this error immedietly when scrolling the timeline OR letting it play for 3 seconds etc.. then the player shuts down, did manage to test the exe version and that seems to work fine at least for playing videos.. would really like to check this work out so your response is very appreiciated. cheers

[000001de28e95c10] avcodec decoder: Using D3D11VA (NVIDIA GeForce RTX 3080 Ti, vendor 10de(NVIDIA), device 2208, revision a1) for hardware decoding
Traceback (most recent call last):
File "b:\0 - TDLabs\0 - Other\pyplayer-master\widgets.py", line 1124, in paintEvent
pos.setY(self.height() - (self.height() - size) / 2)
TypeError: setY(self, ypos: int): argument 1 has unexpected type 'float'

how to use it

How should I use it and if there are any relevant documents for my reference

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.