示例#1
0
    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()
示例#2
0
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):
示例#3
0
文件: test.py 项目: adamhb123/PygMov
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:
示例#4
0
 def __init__(self):
     app = QApplication(sys.argv)
     app.setApplicationName('OpenDev Player')
     player = VideoPlayer()
     player.show()
     app.exec_()
示例#5
0
    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()
示例#6
0
    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:
示例#7
0
    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.")