Size: a a a

Vue.js Russian Developers Community

2020 August 19

АК

Александр Козлов... in Vue.js Russian Developers Community
Рафаил Мамедов
это получается 5 чанков по 4 минуты?
и в  EXT-MEDIA-SPRITE ссылка на каждый чанк?
5 чанков по 4 секунды
media-sprite это превью видоса как на ютубе когда по таймлайну ведешь
источник

АК

Александр Козлов... in Vue.js Russian Developers Community
Рафаил Мамедов
это получается 5 чанков по 4 минуты?
и в  EXT-MEDIA-SPRITE ссылка на каждый чанк?
ссылка на каждый чанк:
источник

РМ

Рафаил Мамедов... in Vue.js Russian Developers Community
Александр Козлов
5 чанков по 4 секунды
media-sprite это превью видоса как на ютубе когда по таймлайну ведешь
понятно, а по ссылке получается 1 и тот же файл?
источник

АК

Александр Козлов... in Vue.js Russian Developers Community
ну в этом примере файл - 1, но чтобы юзер долго не ждал разбивается так
источник

РМ

Рафаил Мамедов... in Vue.js Russian Developers Community
Александр Козлов
ну в этом примере файл - 1, но чтобы юзер долго не ждал разбивается так
окей,  непросто посчитать цифры
тут воспроизведение идет линейно? или с какими-то скачками по этому файлу?
источник

АК

Александр Козлов... in Vue.js Russian Developers Community
Рафаил Мамедов
окей,  непросто посчитать цифры
тут воспроизведение идет линейно? или с какими-то скачками по этому файлу?
там с расчетами чуть сложнее, типа мы берем видос: смотрим где у него ключевые кадры, а у ключевых кадров мы можем узнать byteOffset
источник

АК

Александр Козлов... in Vue.js Russian Developers Community
и по запросу (timestamp) находим ближайший ключевой кадр к этой метки и строим byteRange
источник

РМ

Рафаил Мамедов... in Vue.js Russian Developers Community
Александр Козлов
там с расчетами чуть сложнее, типа мы берем видос: смотрим где у него ключевые кадры, а у ключевых кадров мы можем узнать byteOffset
таким способом получится непрерывно воспроизвести файл в таком порядке

есть файл 4 часа,
нужно воспроизвести 33-36 минуты, далее 55-56, далее 77-82
источник

АК

Александр Козлов... in Vue.js Russian Developers Community
Рафаил Мамедов
таким способом получится непрерывно воспроизвести файл в таком порядке

есть файл 4 часа,
нужно воспроизвести 33-36 минуты, далее 55-56, далее 77-82
да
источник

РМ

Рафаил Мамедов... in Vue.js Russian Developers Community
А есть какойньть туториал?
я так понимаю это вот эта спека https://developer.apple.com/library/archive/technotes/tn2288/_index.html#//apple_ref/doc/uid/DTS40012238-CH1-BYTE_RANGE_SUPPORT_FOR_SEGMENTS
источник

АК

Александр Козлов... in Vue.js Russian Developers Community
источник

РМ

Рафаил Мамедов... in Vue.js Russian Developers Community
А хорошие примеры организации сервера для всего этого может завалялись гденьть в закладках?
источник

РМ

Рафаил Мамедов... in Vue.js Russian Developers Community
Я так понимаю, что сам m3u8 можно генерировать вообще отдельно от хостинга самих файлов
источник

АК

Александр Козлов... in Vue.js Russian Developers Community
Рафаил Мамедов
Я так понимаю, что сам m3u8 можно генерировать вообще отдельно от хостинга самих файлов
угу
источник

РМ

Рафаил Мамедов... in Vue.js Russian Developers Community
спасибо еще раз!
источник

АК

Александр Козлов... in Vue.js Russian Developers Community
Рафаил Мамедов
А хорошие примеры организации сервера для всего этого может завалялись гденьть в закладках?
а что именно тут интересует?
Я когда изучал вопрос, очень мало полезной информации было в интернетах
источник

АК

Александр Козлов... in Vue.js Russian Developers Community
Логика следующая:
minio для хранения файлов, как только появляется файл он процессится с помощью ffmpeg для определения ключевых кадров, рядом с файлом кладется json с картой ключевых кадров, а уже бэкенд строит плейлист
источник

РМ

Рафаил Мамедов... in Vue.js Russian Developers Community
Александр Козлов
а что именно тут интересует?
Я когда изучал вопрос, очень мало полезной информации было в интернетах
да даже банально для старта генератор m3u8 есть ли готовый или может можно ffmreg ом сделать, если да, то как)
какую обработку должен исходный файл пройти, вот вы как раз это написали.
ну т.е. идеально было бы example посмотреть, где на сервере 2 обработанных видео, генератор m3u8 и клиент с простым плеером hls где можно циферки повбивать, типа хочу вот такие фрагменты посмотреть
источник

РМ

Рафаил Мамедов... in Vue.js Russian Developers Community
Александр Козлов
Логика следующая:
minio для хранения файлов, как только появляется файл он процессится с помощью ffmpeg для определения ключевых кадров, рядом с файлом кладется json с картой ключевых кадров, а уже бэкенд строит плейлист
за minio засудят наверно))))) но это другой вопрос
источник

АК

Александр Козлов... in Vue.js Russian Developers Community
Рафаил Мамедов
да даже банально для старта генератор m3u8 есть ли готовый или может можно ffmreg ом сделать, если да, то как)
какую обработку должен исходный файл пройти, вот вы как раз это написали.
ну т.е. идеально было бы example посмотреть, где на сервере 2 обработанных видео, генератор m3u8 и клиент с простым плеером hls где можно циферки повбивать, типа хочу вот такие фрагменты посмотреть
к сожалению я таких конкретных примеров не видел(
ключевые кадры можно дернуть с помощью:
ffprobe -hide_banner -i name.ts -show_frames -print_format json
источник