blank[480:720, :] = (0, 0, 0xff) cv2.imshow("test", blank) cv2.waitKey(0) exit() def attach_audio(afile, vfile): os.system( f"ffmpeg -i {vfile} -i {afile} -c copy -map 0:v:0 -map 1:a:0 final_{vfile}" ) # test() main_video = VideoClip(_G.SourceFilename) player = VideoPlayer(main_video, _G.TrackbarName, _G.SourceFilename) def main_loop(): player.start() while not _G.FLAG_STOP and not player.is_ended(): player.update() def terminate(): videoclip.termiante() cv2.destroyAllWindows() main_loop() terminate()
from flask import Flask, render_template, redirect, url_for, session, request from flask_bootstrap import Bootstrap from youtube import YouTubeApi from videoplayer import VideoPlayer api = YouTubeApi() player = VideoPlayer() users = {"admin": {"username": "******", "password": "******"}} host = {"localhost": "127.0.0.1", "networkhost": "0.0.0.0"} class Webserver(): app = Flask(__name__, static_url_path='/static', template_folder='templates') Bootstrap(app) def __init__(self, playlist): player.init(playlist) # sites @app.route('/') @app.route('/index') def index(self=None): return render_template('index.html') @app.route('/admin') def admin(self=None):
import pygame from videoplayer import VideoPlayer import random pygame.init() # todo create GUOI bindings screen = pygame.display.set_mode((500, 500)) video = VideoPlayer("a.mp4", path="resources", resolution=(500, 500), position=(0, 0)) print(video.video_data) video.play() # try multiprocessing clock = pygame.time.Clock() press = False lowest = 100000 highest = 0 loops = 0 while True: for event in pygame.event.get(): if event.type == pygame.QUIT: print(highest) print(lowest) pygame.quit() quit() if event.type == pygame.KEYDOWN: if event.key == pygame.K_s: if video.isplaying:
def __init__(self): app = QApplication(sys.argv) app.setApplicationName('OpenDev Player') player = VideoPlayer() player.show() app.exec_()
def __init__(self): self.init = False self.gladefile = os.path.join(__location__, "gui/cave.glade") self.builder = Gtk.Builder() self.builder.add_from_file(self.gladefile) # Automatically connect signals to functions defined above self.builder.connect_signals(self) #Set up the video tree self.video_tree = self.builder.get_object("videoTreeView") self.video_tree_manager = VideoTreeManager(self.video_tree, self) #Set up the filter box self.filter_box = self.builder.get_object("filterEntry") #Create & link video display widget self.video_box_container = self.builder.get_object("videoBox") self.video_box = VideoBox(self) self.video_box.show() self.video_box_container.pack_start(self.video_box, True, True, 0) #Create & Link timeline widget self.timeline_box = self.builder.get_object("timelineBox") self.timeline = Timeline(self) self.timeline.show() self.timeline_box.pack_start(self.timeline, True, True, 0) self.timeline.cursor_change = self._change_frame #Register listener self.video_box.length_listener = self.timeline.set_length #Register listener #Initialize shared memory blocks for all cameras CameraLink.preinit() #Log playback filter_file = os.path.expanduser(args.filter) if args.filter else '' self.logplayer = LogPlayer(filter=filter_file) # Get the main window self.window = self.builder.get_object("caveWindow") self.window.show() #Initialize gtk's thread engine; add any threads after these lines Gdk.threads_init() GLib.threads_init() #Start video player thread self.video_player = VideoPlayer(self) self.play_button = self.builder.get_object("playButton") self.enable_button = self.builder.get_object("enableButton") self.toggle_all_button = self.builder.get_object("toggleAllButton") #Start video rendering thread self.video_box.start_thread() #Start video preview manager self.video_preview_manager = VideoPreviewManager( self.video_box.vmt) #link w/ video manager thread self.video_preview_manager.register_callback( self.timeline.preview_callback) self.timeline.set_preview_manager(self.video_preview_manager) #Create statusbar display thread self.statusbar = StatusBarManager(self.builder.get_object("statusBar")) self.statusbar.display("Welcome to CAVE!", 2) self.db = None self.loop_button = self.builder.get_object("loopButton") #Load database file from arguments if present if args.database: self.load_db(args.database) elif os.path.exists(os.path.expanduser(self.config_file)): f = open(os.path.expanduser(self.config_file), "r") self.load_db(f.read()) #Ctrl+C handling def handler(signum, frame): self.log.warning("INTERRUPT; stopping CAVE") self.window_destroy(None) signal.signal(signal.SIGTERM, handler) signal.signal(signal.SIGINT, handler) #This fairly pointless function is necessary to periodically wake up #the gtk main thread to detect system interrupts even when not focused #I believe this is due to a Gtk bug GLib.timeout_add(500, lambda: True) #Make the window more shrinkable self.window.set_size_request(400, 400) #Fire up the main window self.log.info("Launching GUI. Welcome to CAVE!") self.init = True Gdk.threads_enter() Gtk.main() Gdk.threads_leave()
global ix, iy, drawing, mode #Click if event == cv2.EVENT_LBUTTONDOWN: drawing = True ix, iy = x, y print("ix=", ix, "iy=", iy) elif event == cv2.EVENT_LBUTTONUP: drawing = False if mode == True: print("fx=", x, "fy=", y) cv2.rectangle(frame, (ix, iy), (x, y), (0, 255, 255), 1) player = VideoPlayer("video.mp4") global px, py drawing = False # true if mouse is pressed mode = True # if True, draw rectangle. Press 'm' to toggle to curve ix, iy = -1, -1 cv2.namedWindow('frame') cv2.setMouseCallback('frame', draw_circle) if __name__ == '__main__': # 下面是使用PyQt5的固定用法 app = QApplication(sys.argv) main_win = mainWin() while (1): if player.isStop == False:
def __init__(self): '''Initializes the client.''' self.mode = "client" self.oP = OutPipe("Client", 0) self.eI = EngineInterface(objectMode=True) self.vP = VideoPlayer() self.sE = ScriptExecuter() self.iR = InputReceiver() self.l = Localizer(self) self.pA = PhysicsApplicator(self) self.sH = ShaderHandler() self.nC = None self.sE.addContext("Client", self) self.cvars = { #Low level settings "cl_update": 1, "cl_synced": 0, "cl_addr": "0.0.0.0", "cl_oport": 7777, "cl_iport": 7778, "cl_netlog": 0, "cl_game": 0, "cl_startscript": "", "cl_master": 0, "cl_predict": 1, "cl_smooth": 0, "cl_name": "Player", "cl_password": "", "cl_camera": "", "cl_lockcontrols": 1, "cl_showmouse": 1, "cl_xsens": 50, "cl_ysens": 50, "cl_inverted": 0, "cl_netping": 0, #High level settings "cl_language": "en", "cl_subtitles": 1, "cl_width": 1280, "cl_height": 720, "cl_fullscreen": 0, "cl_motionblur": 0, "cl_motionblur_amount": 0, "cl_anisotropic": 1, "cl_mipmap": "none", "cl_vsync": "off", "cl_musicvolume": 10, "cl_dialogvolume": 10, "cl_soundvolume": 10, "cl_mastervolume": 10, #Server shared settings "sv_level": "", "sv_gamemode": "", "sv_game": 0, "sv_background_red": 0, "sv_background_green": 0, "sv_background_blue": 0, "sv_background_alpha": 0, } self.netVars = {} self.chatMessages = [] self.interfaces = [] self.entities = [] self.level = None self.gameEvents = [] self.updateNetwork() #self.startLoop() self.forceUpdateCVars() self.keepAliveTicker = 0 self.trackedProperties = [] loadClient(self) self.oP("Initialized.")