Поддержка запросов диапазона байтов для хранилища firebase

Пытаюсь решить проблему, и знание того, поддерживает ли хранилище firebase запросы диапазона байтов для загрузки видео, поможет. Я нигде не могу найти эту информацию. Мое веб-приложение включает функцию потокового видео (в стиле You-tube), и мне интересно, является ли это лучшим выбором. Если нет, то какая альтернатива лучше для размещения видео?

Я уже реализовал это следующим образом, но мои видео воспроизводятся на всех устройствах и браузерах, кроме iphones и ios устройств:

<video width='100%' height='315' poster='{{ value.image }}' controls loop muted playsinline>
       <source type='video/mp4' src='{{ value.video }}'>
</video>

Основываясь на обширном исследовании здесь и других ресурсах в Интернете,

Решение, похоже, заключается в добавлении controls playsinline muted к video tag, кажется, работает, у меня не работает с этими.

Другой проблемой был тип видеоконтейнера. Подтвердил, что мой mpeg4 container и отображается с video/mp4 в source type.

Последняя проблема, которую я вижу, заключается в том, что сервер может не поддерживать запросы с диапазоном байтов, я пытаюсь определить, так ли это с firebase, прежде чем переходить к другому решению для хранения видео. (И какие-нибудь предложения по этому поводу?)

Спасибо.

Cloud Storage для Firebase хранит ваши файлы в ведро Google Cloud Storage, делая их доступными как через Firebase, так и через Google Cloud. Это позволяет вам загружать и скачивать файлы с мобильных клиентов через Firebase SDK для Cloud Storage. Кроме того, вы можете выполнять обработку на стороне сервера, например, фильтрацию изображений или перекодирование видео, используя APIs Google Cloud Storage.

Что касается вашего вопроса, то, как было сказано выше, Google Cloud Storage поддерживает байтовые запросы, которые, в свою очередь, поддерживает и Firebase Storage. Вот пример кода из Загрузить объект, используя байтовый диапазон:

from google.cloud import storage


def download_byte_range(
    bucket_name, source_blob_name, start_byte, end_byte, destination_file_name
):
    """Downloads a blob from the bucket."""
    # The ID of your GCS bucket
    # bucket_name = "your-bucket-name"

    # The ID of your GCS object
    # source_blob_name = "storage-object-name"

    # The starting byte at which to begin the download
    # start_byte = 0

    # The ending byte at which to end the download
    # end_byte = 20

    # The path to which the file should be downloaded
    # destination_file_name = "local/path/to/file"

    storage_client = storage.Client()

    bucket = storage_client.bucket(bucket_name)

    # Construct a client side representation of a blob.
    # Note `Bucket.blob` differs from `Bucket.get_blob` as it doesn't retrieve
    # any content from Google Cloud Storage. As we don't need additional data,
    # using `Bucket.blob` is preferred here.
    blob = bucket.blob(source_blob_name)
    blob.download_to_filename(destination_file_name, start=start_byte, end=end_byte)

    print(
        "Downloaded bytes {} to {} of object {} from bucket {} to local file {}.".format(
            start_byte, end_byte, source_blob_name, bucket_name, destination_file_name
        )
    )

Для получения дополнительной информации вы можете ознакомиться с API Reference Documentation.

Вернуться на верх