123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- 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)
|