Welcome folks today in this post we will be building a video player in python
using opencv and ffpyplayer
library. All the source code of the application is shown below.
Get Started
In order to get started you need to install the following libraries using the pip
command as shown below
pip install opencv-python
pip install ffpyplayer
After installing these libraries make an app.py
file and copy paste the following code
app.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
import cv2 import os from pathlib import Path from ffpyplayer.player import MediaPlayer # User input for the name of the image file. video_name = input("Name of the video file that you want to play: ") # User input for the path of the image file. video_directory_guess = input("Directory that may contain the video: ") # This function finds your file. If you don't know the directory just type '/' def find_the_video(file_name, directory_name): files_found = [] for path, subdirs, files in os.walk(directory_name): for name in files: if(file_name == name): file_path = os.path.join(path, name) files_found.append(file_path) print(files_found) return files_found[0] # Return the path. # Initialize the path of the image file. video_directory = Path(find_the_video(video_name, video_directory_guess)) # Initialize the parent directory of the image path. new_working_directory = video_directory.parent # Change the working directory of the script. os.chdir(new_working_directory) video_path = find_the_video(video_name, video_directory_guess) def PlayVideo(video_path): video = cv2.VideoCapture(video_path) player = MediaPlayer(video_path) while True: grabbed, frame = video.read() audio_frame, val = player.get_frame() if not grabbed: print("End of video") break if cv2.waitKey(28) & 0xFF == ord("q"): break cv2.imshow("Video", frame) if val != 'eof' and audio_frame is not None: img, t = audio_frame video.release() cv2.destroyAllWindows() PlayVideo(video_path) |
So now you can run this python script
by the following command which is shown below
python app.py