Source code for cvkit.video_readers

from cvkit.video_readers.video_reader_interface import BaseVideoReaderInterface

video_readers = {}
try:
    from cvkit.video_readers.cv2_reader import CV2VideoReader

    video_readers[CV2VideoReader.FLAVOR] = CV2VideoReader
except:
    pass
try:
    from cvkit.video_readers.deffcode_reader import DeffcodeVideoReader

    video_readers[DeffcodeVideoReader.FLAVOR] = DeffcodeVideoReader
except:
    pass
try:
    from cvkit.video_readers.image_sequence_reader import ImageSequenceReader

    video_readers[ImageSequenceReader.FLAVOR] = ImageSequenceReader
except:
    pass


[docs]def initialize_video_reader(video_path, fps, reader_type): """Detects underlying class based on reader_type. And generates appropriate :py:class:`~cvkit.video_readers.video_reader_interface.BaseVideoReaderInterface` subclass instance. :param video_path: Path to the target video file. :type video_path: str :param fps: The FPS of the video. :type fps: float :param reader_type: A string to identify underlying video reader type. Refer to the :py:attr:`~cvkit.video_readers.video_reader_interface.BaseVideoReaderInterface.FLAVOR` attributes of each implementation. :type reader_type: str :return: :py:class:`~cvkit.video_readers.video_reader_interface.BaseVideoReaderInterface` subclass instance. :rtype: :py:class:`~cvkit.video_readers.video_reader_interface.BaseVideoReaderInterface` """ try: return video_readers[reader_type](video_path, fps) except KeyError: raise Exception(f"{reader_type} flavor is not installed.") except Exception as e: raise Exception(f"Error while initializing video reader ({reader_type})" + str(e)) return None