Spaces:
Build error
Build error
# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. | |
import av | |
def get_video_container(path_to_vid, multi_thread_decode=False, backend="pyav"): | |
""" | |
Given the path to the video, return the pyav video container. | |
Args: | |
path_to_vid (str): path to the video. | |
multi_thread_decode (bool): if True, perform multi-thread decoding. | |
backend (str): decoder backend, options include `pyav` and | |
`torchvision`, default is `pyav`. | |
Returns: | |
container (container): video container. | |
""" | |
if backend == "torchvision": | |
with open(path_to_vid, "rb") as fp: | |
container = fp.read() | |
return container | |
elif backend == "pyav": | |
#try: | |
container = av.open(path_to_vid) | |
if multi_thread_decode: | |
# Enable multiple threads for decoding. | |
container.streams.video[0].thread_type = "AUTO" | |
#except: | |
# container = None | |
return container | |
else: | |
raise NotImplementedError("Unknown backend {}".format(backend)) | |