mkv это контейнер а не кодек поддерживаемый или не поддерживаемый браузер. И если ставить вопрос так, то реализовать на TypedArray нужно форматы контейнеров (наверняка данные собственно видео потока с кодеком там как максимум что бьются на чанки и сегментируются с служебными данными)
- в принципе это вполне реально и не много скорости отберет, вот решил поискать делал ли кто то такое... пока не нашел.
- тогда если кодек внутри контейнера поддерживаемый. Стоит сказать почти все и так жмется H26x (MPEG-4, AVC, HEVC - все из этой линейки, тута же еще готовят VVC)
- кстати по тем же причинам раздача видеофайлов с "direct recoder"ом через ffmpeg как предложили выше скорее всего тоже не особо нагружающая функция (в том случае если кодек потока поддерживается браузером), ведь чтение ПЗУ будет медленнее чем передернуть в на лету чанки данных в оперативе
- про потоки имел виду нативный движок браузера. Я сутки бился над пониманием почему так происходит, похоже это в реализации вебкита ошибка!
- может это не достаточно профессионально звучит, но у меня честно больше нет идей.
//смысл от алгоритма смею заверить есть! - для обратной совместимости.
impfromliga: в принципе это не накладное решение...
512х256х4байта_на_канал = 512КБ памяти оверхед максимум, по скорости не замерял, но алг. все равно очень быстр для использования, даже с оверхедом.
Сергей Протько: Здравствуйте, очень понравился ваш алгоритм, но нашел в нем странный баг.
- (хотелось реализовать эффект поклеточного освещения, так и наткнулся
- я бился сутки думая что где то что то не так использую, пока не протестировал ваш код без изменений. (менялся только графический файл)
- большой имейдж от 512х256 (найдено опытным путем) этот скрипт затемняет правильно
- а маленькие 64х64 тайлсеты почему то нет... (черный прямоугольник)
Если бы вы могли хотя бы объяснить почему так может происходить, я был бы очень благодарен. Спасибо.
//Будто drawImage то ли на нативном уровне ускоряется в другом потоке и там успевает перегнать другую операцию вывода. И рассинхрониться. Но разве такое может быть? Повторяю ни строки кода не меняется! Баг есть и его легко повторить, заменив имейдж на меленький.
//В принципе т.к. алг. действительно очень быстрый, баг можно обойти просто раздув исходный маленький имейдж на большой канвас. Но это обход а не решение. Т.к. мне нужна была статика, я просто сделал кеш для набора оптом. Но для динамики такое непрокатит.
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.
- в принципе это вполне реально и не много скорости отберет, вот решил поискать делал ли кто то такое... пока не нашел.
- тогда если кодек внутри контейнера поддерживаемый. Стоит сказать почти все и так жмется H26x (MPEG-4, AVC, HEVC - все из этой линейки, тута же еще готовят VVC)
- кстати по тем же причинам раздача видеофайлов с "direct recoder"ом через ffmpeg как предложили выше скорее всего тоже не особо нагружающая функция (в том случае если кодек потока поддерживается браузером), ведь чтение ПЗУ будет медленнее чем передернуть в на лету чанки данных в оперативе