powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Кэш для видео
8 сообщений из 8, страница 1 из 1
Кэш для видео
    #39934260
rabiter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коллеги, посоветуйте навскидку с такой задачкой.

Приложение для хранения документов. Документы могут быть разного формата, картинки, документы, чертежи.
В зависимости от mime type документа, мы показываем документы в браузере в разных просмотрщиках (pdf показываем в pdfviewer, картинки в js просмотрщике и т.д).
Появился заказ на то, чтобы проигрывать еще и видео. Сами документы (в том числе и видео) лежат в архиве (в зависимости от заказчика это может быть HCP, AZURE, SFTP, Amazon S3 и другие. Т.е. мы работаем с архивом через абстракцию, другими словами, у нас на руках обычный InputStream. Так вот, простое решение есть. Есть сервлет, который умеет обрабатывать range requests. Т.е. допустим, видеоплейер запрашивает видеофайл с середины. Мы в сервлете делаем InputStream#skip(long n) до нужной позиции, и отправялем нужные байты браузеру. Все работает, и на первое время мы с этим решением скорее всего и останемся. Но!
Во взрослой системе, наверное надо же какой-то быстрый кеш использовать для этого? Т.е. видео прочитали из архива и сохранили в каком-нибудь быстром кеше и в следующий раз, когда другой пользователь хочет посмотреть это же видео, или тот же польователь, но с другой позиции - мы уже будем раздавать это видео из кеша, который должен быть быстрее архива.
Типа как на этой картинке


Если я прав, то что, навскидку, можно использовать для кеша, Redis? Memcache? Сильно не пинайте, я в таких вопросах новичек, поэтому пришел за советом. Есть какие-нибудь готовые решения?
...
Рейтинг: 0 / 0
Кэш для видео
    #39935030
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rabiter
Так вот, простое решение есть. Есть сервлет, который умеет обрабатывать range requests. Т.е. допустим, видеоплейер запрашивает видеофайл с середины. Мы в сервлете делаем InputStream#skip(long n) до нужной позиции, и отправялем нужные байты браузеру. Все работает, и на первое время мы с этим решением скорее всего и останемся. Но!
Во взрослой системе, наверное надо же какой-то быстрый кеш использовать для этого?
Вы страдаете херней: нет вообще никакого смысла выкачивать контент сначала себе, а потом отдавать клиенту (это вообще зовется "прокси", и InputStream#skip(long n) - это совсем не стандартное поведение прокси), клиент нужно сразу отдавать прямые ссылки на контент, возможно с ключом доступа, все CDN такое умеют (иначе они нахер не нужны), AWS тоже.
...
Рейтинг: 0 / 0
Кэш для видео
    #39935083
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rabiter

Если я прав, то что, навскидку, можно использовать для кеша, Redis? Memcache? Сильно не пинайте, я в таких вопросах новичек, поэтому пришел за советом. Есть какие-нибудь готовые решения?


Зачем?! "Все украдено до нас"
Подойдет любой кеширующий прокси.
...
Рейтинг: 0 / 0
Кэш для видео
    #39935112
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rabiter
Во взрослой системе,
во взрослой системе в ТЗ идут от пользователя.
Например, буферизация видео как тут в виде полосочки СПРАВА
Это есть у вас?
Ведь непонятно какую задачу вы решаете кэшированием. Какую?
Столько понаписали и не обозначили ПРОБЛЕМУ.
...
Рейтинг: 0 / 0
Кэш для видео
    #39935243
rabiter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов
Вы страдаете херней


У меня тоже возникло такое ощущение, поэтому пришел сюда за советом.

Андрей Панфилов
нет вообще никакого смысла выкачивать контент сначала себе, а потом отдавать клиенту... клиент нужно сразу отдавать прямые ссылки на контент


Ок, понял. Но в нашем случае не вариант видимо. Потому что разные кастомеры могут использовать разные архивы (FtAPI, Centera, SFTP, NetAPP, HCP, AZURE, SFTP, Amazon S3) - зависит от заказчиков. И чтобы их всех поддерживать, нужна абстракция вокруг них, которая приводит их всех под один общий знаменатель (уничтожая при этом плюшки некоторых их них). Т.е. вот так вот дать кастомеру прямую ссылку на файл в архиве - сомневаюсь, что возможно.

Андрей Панфилов
все CDN такое умеют (иначе они нахер не нужны), AWS тоже.


Продукт ставиться окружение заказчива, в основном это какая-то корпоративная сеть. Думаю CDN там не пахнет и близко. Но вообще спасибо за наводку.
...
Рейтинг: 0 / 0
Кэш для видео
    #39935244
rabiter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul
rabiter

Если я прав, то что, навскидку, можно использовать для кеша, Redis? Memcache? Сильно не пинайте, я в таких вопросах новичек, поэтому пришел за советом. Есть какие-нибудь готовые решения?


Зачем?! "Все украдено до нас"
Подойдет любой кеширующий прокси.


Я понял идею, спасибо!
У нас не сервис, а коробочный продукт. Т.е. установка приложения идет на окружение заказчиков. Т.е. надо будет как-то настраивать проксю на стороне кастомера. Но идея я понял и всяз на вооружение.
...
Рейтинг: 0 / 0
Кэш для видео
    #39935250
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rabiter
нужна абстракция вокруг них, которая приводит их всех под один общий знаменатель (уничтожая при этом плюшки некоторых их них). Т.е. вот так вот дать кастомеру прямую ссылку на файл в архиве - сомневаюсь, что возможно.
У вас абстракция неправильного порядка, потому что вы пытаетесь решить инфраструктурную задачу при помощи разработки, правильно так:
- у заказчика файлы в AWS - ломимся в AWS, генерирует прямые сслыки, отдаем клиенту
- у заказчика файлы в файловой системе - заставляем какой-нить nginx раздавать эти файлы
- у заказчика файлы в какой-то жопе - делаем отдельный сервис, который будет отдавать контент и на него кидаем ссылки
...
Рейтинг: 0 / 0
Кэш для видео
    #39935258
rabiter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов
rabiter
нужна абстракция вокруг них, которая приводит их всех под один общий знаменатель (уничтожая при этом плюшки некоторых их них). Т.е. вот так вот дать кастомеру прямую ссылку на файл в архиве - сомневаюсь, что возможно.
У вас абстракция неправильного порядка, потому что вы пытаетесь решить инфраструктурную задачу при помощи разработки, правильно так:
- у заказчика файлы в AWS - ломимся в AWS, генерирует прямые сслыки, отдаем клиенту
- у заказчика файлы в файловой системе - заставляем какой-нить nginx раздавать эти файлы
- у заказчика файлы в какой-то жопе - делаем отдельный сервис, который будет отдавать контент и на него кидаем ссылки


Да, я понял вас, спасибо больше за совет!
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Кэш для видео
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]