Exemple #1
0
def loadVideoFromPath(path):
    decoder = Y4MDecoder()
    parser = y4m.Reader(decoder.incorporateFrame, verbose=False)
    with open(path, 'rb') as f:
        data = f.read()
        parser.decode(data.decode('latin-1', errors='replace').encode('latin-1'))

    return decoder.getVideo()
Exemple #2
0
    def test_loop_simple(self):
        def process_frame(frame):
            generator.encode(frame)

        parser = y4m.Reader(process_frame, verbose=False)
        generator = y4m.Writer(open(os.devnull, 'wb'))
        with zfd.open(sample, 'r') as f:
            parser.decode(f.read())
Exemple #3
0
    def test_read_simple(self):
        self.cpt = 0

        def process_frame(frame):
            self.cpt += 1

        parser = y4m.Reader(process_frame, verbose=False)
        with zfd.open(sample, 'r') as f:
            parser.decode(f.read())
        self.assertEqual(self.cpt, sample_num_frames)
Exemple #4
0
def decodey4m(file_queue, dstPath, threadID):
    while not file_queue.empty():
        f = file_queue.get(1, 5)
        print("thread " + str(threadID) + ' decode ' + f)
        parser = y4m.Reader(sourcePath=f, dstPath=dstPath, verbose=False)
        fp = open(f, 'rb')
        try:
            parser.decode(fp.read())
        except:
            print('error ' + f)
        fp.close()
Exemple #5
0
def main(args):
    OPENING = 'Opening %s...'
    BLOCK_SIZE = 4 * 1024 * 1024
    ref_parser = y4m.Reader(process_ref)
    recons_parser = y4m.Reader(process_recons)
    print(OPENING % args[1])
    with open(args[1], 'r') as ref:
        print(OPENING % args[2])
        with open(args[2], 'r') as recons:
            try:
                ref_buf, recons_buf = ref.buffer, recons.buffer
            except:
                ref_buf, recons_buf = ref, recons
            while True:
                data = ref_buf.read(BLOCK_SIZE)
                if not data: break
                ref_parser.decode(data)
                data = recons_buf.read(BLOCK_SIZE)
                if not data: break
                recons_parser.decode(data)
    print('Total: %2.4f' % np.array(scores).mean())
def read_video(videopath, max_frames=100000, PIL_Image_flag=True):
    """

    :param videopath: the path to the video
    :param PIL_Image_flag: whether return PIL.Image.Image list
    :return: PIL.image frames list or numpy.ndarray list
    """
    if videopath.endswith(".y4m"):
        global y4m_frames
        y4m_frames = []
        parser = y4m.Reader(process_y4m_frame, verbose=False)
        infd = open(videopath, "rb")

        with infd as f:
            while True:
                data = f.read(1024 * 1024)
                if not data:
                    break

                parser.decode(data)

                if len(y4m_frames) == max_frames:
                    break

        if PIL_Image_flag:
            return [Image.fromarray(f) for f in y4m_frames]
        else:
            return y4m_frames

    else:
        cap = cv2.VideoCapture(videopath)
        frames = []
        while True:
            ret, frame = cap.read()
            if ret:
                frames.append(frame)
                # cv2.imshow('frame', frame)
                # cv2.waitKey(25)
            else:
                break

            if len(frames) == max_frames:
                break
        cap.release()  # close vapture

        for i, bgr in enumerate(frames):
            frames[i] = bgr[..., ::-1]

        if PIL_Image_flag:
            return [Image.fromarray(f) for f in frames]
        else:
            return frames
Exemple #7
0
    def test_read_simple_1k(self):
        self.cpt = 0

        def process_frame(frame):
            self.cpt += 1

        parser = y4m.Reader(process_frame, verbose=False)
        with zfd.open(sample, 'r') as f:
            while True:
                data = f.read(1024)
                if not data:
                    break
                parser.decode(data)
        self.assertEqual(self.cpt, sample_num_frames)
def readStandardSequence(filename):
    # read y4m file from the
    data = raw_input(filename)
    reader = y4m.Reader(verbose=True)
    reader.decode(data)
Exemple #9
0
def _y4m():
    f = 'E:/datasets/SR/youku/youku_00000_00049_l/Youku_00000_l.y4m'
    img = y4m.Reader(f)
    a = 0