Перейти к публикации
  • Сейчас на странице   Всего пользователей: 6   (0 пользователей, 6 гостей)

Rooster

Программирование[8]

Рекомендованные сообщения

А если N = 10?

O(n) = O(2n) ?

O(N*n) в худшем случае.

 

И O(N) по памяти.

 

Я не знаю как правильно считается сложность в таких вещах, обычно простые числа отбрасывают и прям дотошно сложность не считают. 

Поделиться сообщением


Ссылка на сообщение

использую символ и не знаю что он значит, собеседую челиков :pisubudew:

sonac понравилось это

:zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:

:zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:    всё что пишу -- шизофренический бред     :zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:

:zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:

Поделиться сообщением


Ссылка на сообщение

А если N = 10?

O(n) = O(2n) ?

Оно не может быть 10 в такой записи

Поделиться сообщением


Ссылка на сообщение
(изменено)

Я тут пилю то тестовое что мне дали. Заливка видосов на сервер. Я решил сделать выбор Thumbnail'а в стиле ютуба, то есть загрузил видос и он автоматом тебе генерит на выбор 3 тамбнейла. Логика автоматической выборки тамбнейлов: с 1 секунды, с секунды с конца и все что между (подразумевая что в конфиге выбрано 3 и более на выбор).

 

Дак вот - ЭТО ТАКОЙ ПИЗДЕЦ. Я не знаю проблемы ли это с самим API видео и браузером, или это реактовская обертка синтетик ивентов поверх. Скорее всего все сразу. Все работает через жопу.

 

В общем тамбнейл надо делать с помощью невидимого канваса. Ну фишка простая, создал контекст2д в канвасе, заюзал "drawImage" указывая на <video /> и у тебя отрисовалась картинка. Ага блядь. Если бы все было так просто.

 

Есть ивент onMetadataLoad, срабатывает только 1 раз на загрузке видео в элементе <video />. По идее надо юзать его для всего, но он срабатывает до того как видос отрендерится и будет доступен для воспроизведения. В итоге пытаешься сделать что-то тут - хуй тебе, пустой скриншот.

 

Есть ивент onCanPlayThrough, по официальным докам срабатывает когда видос полностью доступен для воспроизведения и перемотки куда угодно, это самая последняя стадия. Казалось бы, ОНО. Дак вот, снова нихуя:

1) По каким-то непонятным причинам этот ивент срабатывает снова и снова в реакте прю любом изменении state/props.

2) Даже если пофиксить первый пункт костылем, КАНВАС ВСЕ РАВНО ВЫДАЕТ ПУСТОЙ СКРИНШОТ. То есть браузер сказал что все заебись, но на самом деле картиночка превью видео нихуя не отрендерилась. Видимо так нынче работают все хитровыебанные браузерные оптимизации или там просто API через жопу.

 

В общем забиваю на второй вариант, возвращаюсь к metadataLoad. Вешаю костыльный setTimeout (других способов не нашел), наконец-то картинка рендерится. Теперь время второго челленджа - сделать N скриншотов с разных моментов видео. Казалось бы теперь, ну поменял ты "currentTime" у видео и сделал новый скрин. Ну и как всегда хуй. Прыжок по времени (в плане рендера) асинхронный. В итоге иду пилить асинхронный sequential reduce. Вот такая ебота получилась  :fffuuu: Давно не ел такого говна от браузеров. Боюсь даже представить что происходит в более старых браузерах или если грузить большие видосы и так далее, где всякие таймауты скорее всего не будут работать. Решил чекнуть как это сделано у ютуба - а там по виду все грузится на специальный сервак, где видос анализируется (доджить дубликаты, порнуху и так далее) и там же генерируются тамбнейлы. Но нет сука, я этим пидорам пошлю православный ФРОНТЕНД-СОЛЮШЕН, пусть нахуй ахуевают с той еботы что я понаписал  :trollface:

 

od6Bctq.png


Изменено пользователем suez

userbar-53933.png

http://codepen.io/suez/ - they see me bydlocoding, they hatin.

Поделиться сообщением


Ссылка на сообщение

использую символ и не знаю что он значит, собеседую челиков :pisubudew:

Сам себе придумываю домыслы и делаю удобные мне выводы  coolstorybob

 

Я где-то писал например, что я кого-то собеседую? И почему ты решил, что я не знаю что значит символ?

Поделиться сообщением


Ссылка на сообщение

Я тут пилю то тестовое что мне дали. Заливка видосов на сервер. Я решил сделать выбор Thumbnail'а в стиле ютуба, то есть загрузил видос и он автоматом тебе генерит на выбор 3 тамбнейла. Логика автоматической выборки тамбнейлов: с 1 секунды, с секунды с конца и все что между (подразумевая что в конфиге выбрано 3 и более на выбор).

 

Дак вот - ЭТО ТАКОЙ ПИЗДЕЦ. Я не знаю проблемы ли это с самим API видео и браузером, или это реактовская обертка синтетик ивентов поверх. Скорее всего все сразу. Все работает через жопу.

 

В общем тамбнейл надо делать с помощью невидимого канваса. Ну фишка простая, создал контекст2д в канвасе, заюзал "drawImage" указывая на <video /> и у тебя отрисовалась картинка. Ага блядь. Если бы все было так просто.

 

Есть ивент onMetadataLoad, срабатывает только 1 раз на загрузке видео в элементе <video />. По идее надо юзать его для всего, но он срабатывает до того как видос отрендерится и будет доступен для воспроизведения. В итоге пытаешься сделать что-то тут - хуй тебе, пустой скриншот.

 

Есть ивент onCanPlayThrough, по официальным докам срабатывает когда видос полностью доступен для воспроизведения и перемотки куда угодно, это самая последняя стадия. Казалось бы, ОНО. Дак вот, снова нихуя:

1) По каким-то непонятным причинам этот ивент срабатывает снова и снова в реакте прю любом изменении state/props.

2) Даже если пофиксить первый пункт костылем, КАНВАС ВСЕ РАВНО ВЫДАЕТ ПУСТОЙ СКРИНШОТ. То есть браузер сказал что все заебись, но на самом деле картиночка превью видео нихуя не отрендерилась. Видимо так нынче работают все хитровыебанные браузерные оптимизации или там просто API через жопу.

 

В общем забиваю на второй вариант, возвращаюсь к metadataLoad. Вешаю костыльный setTimeout (других способов не нашел), наконец-то картинка рендерится. Теперь время второго челленджа - сделать N скриншотов с разных моментов видео. Казалось бы теперь, ну поменял ты "currentTime" у видео и сделал новый скрин. Ну и как всегда хуй. Прыжок по времени (в плане рендера) асинхронный. В итоге иду пилить асинхронный sequential reduce. Вот такая ебота получилась  :fffuuu: Давно не ел такого говна от браузеров. Боюсь даже представить что происходит в более старых браузерах или если грузить большие видосы и так далее, где всякие таймауты скорее всего не будут работать. Решил чекнуть как это сделано у ютуба - а там по виду все грузится на специальный сервак, где видос анализируется (доджить дубликаты, порнуху и так далее) и там же генерируются тамбнейлы. Но нет сука, я этим пидорам пошлю православный ФРОНТЕНД-СОЛЮШЕН, пусть нахуй ахуевают с той еботы что я понаписал  :trollface:

 

od6Bctq.png

Минвайл бэкендеры генерят тамбнейлы одной командой в ffmpeg

Поделиться сообщением


Ссылка на сообщение
(изменено)

генерь их ффмпегом на сервере и не знай проблем

 

 

 

 

 

да ебаны в рот


Изменено пользователем Kant

Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.
Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью.

Поделиться сообщением


Ссылка на сообщение

they see me bydlocoding, they hatin.

Kant и suez понравилось это

Shaman.png.0cdd33d48561cd068bb3c5ee78289381.png Anna.jpeg.03c9b49363298ceec256500a5d522f7d.jpeg Nigga.jpg.f807f2556bdbf68452292a9301494591.jpg

 

Поделиться сообщением


Ссылка на сообщение

"там по виду все грузится на специальный сервак, где видос анализируется"

как будто с самого начала не очевидно что это было сделано именно так

 

PS: как-то дико похуй на ковыряния в либах/апи

PSS: не понял в чем проблема в асинхронной обработке


 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение
(изменено)

 

Я тут пилю то тестовое что мне дали. Заливка видосов на сервер. Я решил сделать выбор Thumbnail'а в стиле ютуба, то есть загрузил видос и он автоматом тебе генерит на выбор 3 тамбнейла. Логика автоматической выборки тамбнейлов: с 1 секунды, с секунды с конца и все что между (подразумевая что в конфиге выбрано 3 и более на выбор).

 

Дак вот - ЭТО ТАКОЙ ПИЗДЕЦ. Я не знаю проблемы ли это с самим API видео и браузером, или это реактовская обертка синтетик ивентов поверх. Скорее всего все сразу. Все работает через жопу.

 

В общем тамбнейл надо делать с помощью невидимого канваса. Ну фишка простая, создал контекст2д в канвасе, заюзал "drawImage" указывая на <video /> и у тебя отрисовалась картинка. Ага блядь. Если бы все было так просто.

 

Есть ивент onMetadataLoad, срабатывает только 1 раз на загрузке видео в элементе <video />. По идее надо юзать его для всего, но он срабатывает до того как видос отрендерится и будет доступен для воспроизведения. В итоге пытаешься сделать что-то тут - хуй тебе, пустой скриншот.

 

Есть ивент onCanPlayThrough, по официальным докам срабатывает когда видос полностью доступен для воспроизведения и перемотки куда угодно, это самая последняя стадия. Казалось бы, ОНО. Дак вот, снова нихуя:

1) По каким-то непонятным причинам этот ивент срабатывает снова и снова в реакте прю любом изменении state/props.

2) Даже если пофиксить первый пункт костылем, КАНВАС ВСЕ РАВНО ВЫДАЕТ ПУСТОЙ СКРИНШОТ. То есть браузер сказал что все заебись, но на самом деле картиночка превью видео нихуя не отрендерилась. Видимо так нынче работают все хитровыебанные браузерные оптимизации или там просто API через жопу.

 

В общем забиваю на второй вариант, возвращаюсь к metadataLoad. Вешаю костыльный setTimeout (других способов не нашел), наконец-то картинка рендерится. Теперь время второго челленджа - сделать N скриншотов с разных моментов видео. Казалось бы теперь, ну поменял ты "currentTime" у видео и сделал новый скрин. Ну и как всегда хуй. Прыжок по времени (в плане рендера) асинхронный. В итоге иду пилить асинхронный sequential reduce. Вот такая ебота получилась  :fffuuu: Давно не ел такого говна от браузеров. Боюсь даже представить что происходит в более старых браузерах или если грузить большие видосы и так далее, где всякие таймауты скорее всего не будут работать. Решил чекнуть как это сделано у ютуба - а там по виду все грузится на специальный сервак, где видос анализируется (доджить дубликаты, порнуху и так далее) и там же генерируются тамбнейлы. Но нет сука, я этим пидорам пошлю православный ФРОНТЕНД-СОЛЮШЕН, пусть нахуй ахуевают с той еботы что я понаписал  :trollface:

 

od6Bctq.png

Минвайл бэкендеры генерят тамбнейлы одной командой в ffmpeg

 

Ну тут на самом деле еще суть в том, что в теории юзеру можно предлагать где именно сгенерировать тамбнейл, если юзер сам перемотал, кликнул "вот это давай" и получил. Офк все можно через бэк, но браузерное решение по идее самое юзер-френдли (и самое девелопер-анфрендли).

PSS: не понял в чем проблема в асинхронной обработке

В асинхронщине проблем нет, проблема в том что она реализована на основе костыльного setTimeout. По идее у этого <video /> элемента должны быть адекватные callback ивенты, на которые можно было бы подписаться и все как следует обновлять. Конкретно в этом случае мне не хватало что-то из разряда onRender для начального рендера картинки видоса и onTimeUpdate, когда юзер поменял время и отрендерилась новая картинка. Точнее ontimeupdate имеется, но он синхронный, срабатывает сразу после смены времени, когда картинка еще не обновилась.

 

Я кстати чекнул немного код всяких плееров на реакте и мини-компонентов для получения тамбнейлов. Там либо миллионы строк кода, либо какой-то адовый говнокод, на фоне которого мое решение это просто вершина развития программирования.


Изменено пользователем suez

userbar-53933.png

http://codepen.io/suez/ - they see me bydlocoding, they hatin.

Поделиться сообщением


Ссылка на сообщение

"Там либо миллионы строк кода, либо какой-то адовый говнокод, на фоне которого мое решение это просто вершина развития программирования."

:avtorklif:


 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение

 

 

Оно не может быть 10 в такой записи

это 2 разных вопроса

1) Если нужно найти N-й максимум

это ясно из контекста

 

 

А N-й уже выраждается в простую сортировку.

если N-количество элементов то ни в какую сортировку это не вырождается zatrolka_tupostu

2) O(n) = O(2n)?

это вопрос про символ O

 

 


Я где-то писал например, что я кого-то собеседую? И почему ты решил, что я не знаю что значит символ?

Показалось, значит я брежу если не собеседуешь.

Потому что пишешь O(2n). Можно написать "2n операций деления" или даже O(15), что почти общепринято для удобства. А O(2n) пишут наверно те которые не понимают шо это за значёк.


:zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:

:zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:    всё что пишу -- шизофренический бред     :zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:

:zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:

Поделиться сообщением


Ссылка на сообщение

 

 

Дак вот - ЭТО ТАКОЙ ПИЗДЕЦ. Я не знаю проблемы ли это с самим API видео и браузером, или это реактовская обертка синтетик ивентов поверх. Скорее всего все сразу. Все работает через жопу.

твой пост можно на мемы разбирать :lol: :lol: :lol:

 

 

 

ФРОНТЕНД-СОЛЮШЕН, пусть нахуй ахуевают с той еботы что я понаписал 

тумбайлы для презагрузки, типо смотри как будет, генерят на фронтенде тыщу лет как (пожирая гигабайты оперативки)

 

 

 

генерь их ффмпегом на сервере и не знай проблем

ютуб фиксит фиксит ffmpeg и все никак не пофиксит

у ютуба ffmpeg по прежнему падает на некоторых видео(массово, не какоето спец-уникальное видео), в твиторах даже медиа-челики уровня пьюдипая переодически пишут что "их 10гб видос опять зафейлился на обработке, теперь опять час перезагружать, а если не загрузится то перекодировать"

когда я грузил,ютуб не может в объедененные видео в контейнере, типо взял пару видосов и объеденил(самимже ffmpeg-ом) без перекодировки, контейнер поддерживает...и ютуб крашиться

 

кароче, как мне кажется, головной боли от ffmpeg на сервере явно больше чем от фронтенд решения (можно даже посадить человека-робота на фильтр картинок, пусть вкрчную подтверждает контент, будет скорее всего дешевле чем десяток кодеров для обслуживания ffmpeg)

Поделиться сообщением


Ссылка на сообщение

onCanPlayThrough срабатывает на каждом рендере наверное потому что соус мог измениться


Shaman.png.0cdd33d48561cd068bb3c5ee78289381.png Anna.jpeg.03c9b49363298ceec256500a5d522f7d.jpeg Nigga.jpg.f807f2556bdbf68452292a9301494591.jpg

 

Поделиться сообщением


Ссылка на сообщение

 

 

Я кстати чекнул немного код всяких плееров на реакте и мини-компонентов для получения тамбнейлов. Там либо миллионы строк кода, либо какой-то адовый говнокод, на фоне которого мое решение это просто вершина развития программирования.

код плееров на всех языках и фреймворках-полный пиздец

 

в браузере самое сложное и кривое это прокрутка видео, браузер ведь грузит видео файл линейно, а если тебе надо проматывать большое видео(от 5 минут), логика зугрузки кусков видео с учетом кейфреймов-такой лютый ад

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

еще тыщи строк кода на восстановление потерянного контекста, во время перемотки все лагает и теряется синхрнизация рендера-движка джаваскрипта, в браузере, и все...

 

я всего два проекта делал с видео для веба, даже готовые плееры не спасают, страдания те еще это все делать рабочим(и оно всеравно отваливается через пару обновлений браузера)

Поделиться сообщением


Ссылка на сообщение

@@Index я тебя спрашивал где это используется, а не где в теории это может использоваться


 

Жиза для любопытных

Чекнул = пидор

 

Поделиться сообщением


Ссылка на сообщение

 

Индекс высрал хуйню мимо абсолютно, насколько я вижу с телефона

 

Это должна быть такая вот мета-строка сама о себе, а не анализ моего поста, чудило

 

Ну и я вообще не уверен, что такое возможно сделать, мб я вас всех затроллил и там будет бесконечный луп

я понял точно также

https://scastie.scala-lang.org/N702huNhRdODM8Vz2zhTgQ

 

 

ты видимо имел ввиду что строка сама в себя отображается по этому правилу

Ну раз два человека одинаково неправильно поняли, значит это я хуево объяснил. Наверное, стоило написать "эта строка содержит...", а не "пост"

Поделиться сообщением


Ссылка на сообщение
(изменено)

https://drive.google.com/file/d/1eT1MnIDwMzrL3LSkr1EbVLUHKJ5E8xMo/view вот первая топорная версия. Осталось послать на сервак, сохранить и получить на главной странице видосики. Не знаю буду ли пытаться запиливать стриминг видео, чет больше по кайфу в Surge 2 поиграть.


Изменено пользователем suez
Kant понравилось это

userbar-53933.png

http://codepen.io/suez/ - they see me bydlocoding, they hatin.

Поделиться сообщением


Ссылка на сообщение

есть же ивент loadeddata, юзал его для кастомного плеера - всё работало

Поделиться сообщением


Ссылка на сообщение

есть же ивент loadeddata, юзал его для кастомного плеера - всё работало

Работает почти так же как и метадатаЛоад, срабатывает, но картинка на самом деле еще не готова.


userbar-53933.png

http://codepen.io/suez/ - they see me bydlocoding, they hatin.

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации сообщений.

×
×
  • Создать...