Задать вопрос
  • Обработка видео на пайтон. Соединить фото в видео. Как сделать?

    @rPman
    Наверное лучший комбайн для обработки и кодирования видео - это ffmpeg, полноценных биндингов для питон нет (есть прослойки, вызывающие exe файл) типа таких, все остальные способы потребуют заметных усилий чтобы к примеру завести аппаратное ускорение на основе gpu или поддержать какой-нибудь экзотический контейнер или кодек.

    Т.е. если ты ограничишь задачу определенными кодеком и контейнером, то думаю можно будет найти другой инструмент, но скорее всего это будет не python

    p.s. чтобы реализовать увеличение fps видео, построенное на основе меньшего количества кадров, путем генерации новых изображений из соседних, нужно использовать технологии под названием
    "motion interpolation" или "optical flow", в ffmpeg для этого есть фильтр ​minterpolate
    Ответ написан
    Комментировать
  • Как раз в 15 минут обновлять значения в бд?

    @rPman
    Мне кажется ты ошибаешься с логикой и тебе надо не раз в 15 минут это делать, а то что будет если твое событие произойдет за секунду до окончания этого 15-минутного интервала? Т.е. на исполнение задачи (которую ты отменяешь) у тебя будет не 15 минут а секунда.

    Если тебе надо отсчитывать некоторое время с момента события, то нужно в базе хранить начало момента времени с которого начинается отсчет, тогда условие окончания интервала будет now-start_time>длительность_интервала, сделай такое поле finished вычисляемым в view или сразу в твоем запросе.

    Таких полей можно сделать несколько
    Ответ написан
    Комментировать
  • Повышение силы тока с зарядки?

    @rPman
    нет, так не получится, понадобится 'минимальная' схема, которая к примеру через попеременную зарядку пары конденсаторов 'сложит исходные токи'

    Возможно схематически все немного сложнее но этим пользуются, например у меня был примерно такой внешний бокс для hdd, питается от двух usb2.0
    -j8d94zifazzdfzcej5pcdveoiy.png
    Ответ написан
    7 комментариев
  • Как организовать быстрый поиск по 78 млн строк?

    @rPman
    На любом языке программирования, желательно c++, реализуешь следующее приложение, использующее map или аналогичную структуру следующим образом.

    В качестве ключа - хеш от искомого значения
    В качестве значения - список структур, в котоых пара искомое значение (с возможностью выставить null) + возвращаемое значение (идеально может быть смещение в файле csv где начинается нужная строка). Возможно вместо списка использовать еще один map (значение => смещение или даже значение => список смещений, если искомое поле не уникально)
    Map<hash,List<{value,offset}>> или Map<hash,Map<value,List<offset>>>

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

    Затем организуешь поисковый метод который будет принимать поисковые запросы и складывать в очередь (thread safe) ответы (id запроса + смещение строки в csv либо null если не найдено). Метод просто считает хеш искомой строки и берет в map нужный список ответов, если их больше 1 то последовательно сравнивае

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

    Если правильно подобрать хеш для искомого значения, то скорость поиска даже на слабых машинах будет сотни миллионов в секунду и будет фактически упираться в скорость чтения csv с диска.
    -------------
    Готовые базы данных будут хранить в памяти значения искомого поля, что может оказаться накладно, когда как указанный алгоритм позволит подобрать такой хеш, чтобы коллизий его было сильно мало и не требовалось бы хранить значение в принципе.

    само собой можно считать хеш самому и использовать готовую базу данных но тогда какой смысл в ней если все делать самому.
    Ответ написан
    Комментировать
  • Законны ли самостоятельная установка и использование OEM Windows?

    @rPman
    Если говорить про вопрос, вы можете заключить договор как частное лицо со своей компанией на приобретение/заем комплектующих и поставку произведенных вами компьютеров с установленной операционной системой, с нулевой стоимостью чтобы не генерировать налогов, даже если в реальности никакой передачи происходить не будет, формальный дух лицензии будет соблюден, но заниматься таким маразмом никто не будет.

    Производитель софта может в лицензии написать что угодно, лишь бы оно не противоречило законам, даже если это противоречит здравому смыслу. К примеру требовать каждое утро в 9 часов, стоя на коленях, произносить хвалу производителю, добавляя 'тубала-пубала' после каждого слова, почесывая левой рукой правую пятку, три раза... вы будете это делать?

    Вы в курсе что по лицензии майкрософт нельзя пользоваться компьютером (рабочими и домашними ревизиями) одновременно двум и более человек? вот буквально, положили на клавиатуру руки двое - уже нарушители. Точно помню как 'с пеной у рта' представитель майкрософт хаял решение компании ibik за возможность работать на windows сразу нескольким пользователям, да еще и лучше и удобнее чем штатные терминальные решения, там звучали такие бредовые выводы типа - запрещены даже компьютерные игры в split screen.

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

    Цифровое право рождает такие извращения, что диву даешься и возможность выбирать, как именно и в какой мере следовать лицензии, можно воспринимать как форму протеста и борьбы против этого насилия и произвола.
    Ответ написан
    Комментировать
  • На своем сайте надо организовать возможность онлайн трансляции через iр камеры. Как это сделать?

    @rPman
    Самое 'простое', установить на сервере ffmpeg и используя простую публиковать видеопоток в нужном формате
    гуглить ffmpeg webcam video streaming
    например вот
    Ответ написан
    Комментировать
  • Есть ли приложения генерирующие анимацию облака точек по видео?

    @rPman
    Задача может быть решена аппаратно, 3d камеры от того же intel в примерах в sdk предлагают софт именно для этого, дают облако точек, но пользоваться этим невозможно

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

    Вектор угла направления взгляда/положения лица будет прыгать как сумашедший от кадра к кадру, я еще про эмоции не сказал, каждая эмоция тоже параметризована, все это не позволит дать точное соответствие одной и той же точки на лице на соседних кадрах, т.е. построив к примеру поверхности по этим точкам они просто не сойдутся на следующем кадре, в результате будет сильный шум, затрудняющий хоть какую то адекватное применение (игрался я с 3d камерами от intel, сильный шум результата делает все бессмысленным)
    Ответ написан
    Комментировать
  • Существует ли видеоплеер для Android приставки без навигационной панели (Play, Stop, Next, Previous и т.д.)?

    @rPman
    Самое простое - браузерный

    написать html из пяти строчек с тегом video, скопировав из примеров документации, прописать атрибутами что без контролов, в цикле, все прекрасно работает локально из файлов без сети

    из недостатков, автоматически не включится fullscreen, может autoplay не заведется (но можно плагин поставить к браузеру, типа greasemonkey)
    Ответ написан
    Комментировать
  • Как правильнее будет синхронизировать удаленную бд локально?

    @rPman
    правильно - master-slave репликация, все изменения главной базы автоматически, допускается с некоторым лагом, прилетают на подчиненную slave, с этой базой можно работать в readonly режиме как с обычной базой, и ее нагрузка никак не скажется на нагрузку основной.
    Ответ написан
  • Как запустить сервер на своем ПК?

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

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

    Современный разработчик просто обязан иметь базовые навыки devops для настройки рабочего окружения
    Ответ написан
    Комментировать
  • Как расширить диск Linux?

    @rPman
    Делать все из другой системы (например загрузившись livecd)

    Конвертируешь файловую систему /dev/sda2 в btrfs с помощью btrfs-convert
    добавляешь к получившемуся устройству /dev/sdb с помощью btrfs device add /dev/sdb /mnt (на сколько я помню добавится без raid в режиме single, когда диски наполняются по мере необходимости и могнут быть разного размера)
    Правишь /etc/fstab

    p.s. бакапы! подобные операции, какими бы надежными они не казались, могут привести к потере данных
    Ответ написан
    Комментировать
  • Почему роутер не видит MAC адресов HyperV виртуалок?

    @rPman
    bridge с wifi картой родительской машиной
    боюсь причина в этом, когда wifi переподключается сетевой подсистеме windows плохеет.

    могу посоветовать странное, попробуй, пусть за bridge отвечает не виртуалка а сама операционная система (на сколько я знаю в windows это сделано разными способами) т.е. создай loopback сетевое подключение (диспетчер устройств, установка старых устройств, ищи microsoft сетевой адаптер замыкание на себя), создай на его основе и wifi сетевой мост и уже его выбирай в мост с виртуалкой.

    Почему это может помочь, loopback устройство включено всегда, сетевой мост активен пока активно хоть одно устройство в нем, т.е. виртуальная машина будет работать со всегда активным сетевым подключением
    Ответ написан
    Комментировать
  • Как получить GMT+3 время в миллисекундах?

    @rPman
    #include <chrono>
    ...
    using namespace std::chrono;
    
    milliseconds ms = duration_cast< milliseconds >(
        system_clock::now().time_since_epoch()
    );
    unsigned __int64 count=ms.count();

    конвертнуть в нужную timezone to_local либо просто добавив (или вычесть?) заранее посчитанное количество миллисекунд
    Ответ написан
    3 комментария
  • Возможно ли узнать время, за которое запрос приходит на сервер?

    @rPman
    Логирование и синхронизация точного времени на сервере и клиенте.

    Точный момент (миллисекунды), когда запрос 'пришел' на сервер зависит от точки, в которой происходит замер, например если замерять средствами nginx (запущенный на сервере) и к примеру момент, когда запустится cgi скрипт (первой строчкой которого поставить запись времени в лог) - будут отличаться на десяток миллисекунд.

    Причина в том, как именно запрос обрабатывается, асинхронно или нет (скрипт может принять его либо в тот момент как пришел первый сетевой пакет, или же с последним).
    Ответ написан
  • Как отправить POST запрос?

    @rPman
    а почему ждешь именно 201 статус?
    раз есть отклик в консоли значит fetch отработало, смотри код сервера, пропиши там отладочной информации
    Ответ написан
    2 комментария
  • Оптимизация работы с апи, что использовать?

    @rPman
    Причина тормозов - неправильно оформленный запрос, то что можно посчитать на sql сервере, почему то считаешь на бакэнде.

    Даже не изучая код, видно что вместо того чтобы делать 100500 запросов, по одному для каждого $this->room[$cart_min]->Room_id, достаточно собрать эти идентификаторы в список и сформировать один запрос на выгрузку сразу всех room_images (так как работа списка не зависит от ответа от sql сервера)

    Если количество идентификаторов меньше тысячи, то это можно сделать с помощью select ... from ... where id in (1,2,3,4,5,...)
    если больше, то подумать, может пусть списком идентификаторов сам сервер сразу и заведует, храня их в какой-нибудь табличке
    Ответ написан
  • Аналоги RDP в винде?

    @rPman
    Обычно все используют vnc для реализации (даже если модифицируют его до неузнаваемости), навешивая поверх дополнительный функционал и удобства подключений через сторонние сервера (тот же teamviewer и anydesk например). Все они дают доступ только к активной консоли.

    Лучше бы сказал, какую задачу хочешь решить.
    Например если тебе нужно из windows рабочей сделать подобие сервера терминалов, чтобы с ним работало сразу несколько человек, советую посмотреть на этот проект

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

    Так как на железном уровне можно разместить машину на десяток другой метров от монитора (а при доп вложениях - сотни метры) - это иногда имеет смысл, да и гораздо быстрее и эффективнее управления по сети, так как нет лага передачи экрана.
    Ответ написан
    Комментировать
  • Google-таблицы: доступ разных пользователей к одному файлу?

    @rPman
    нет, но можно открыть доступ только на чтение, а каждый пользователь при открытии будет получать копию таблицы (меню файл - сделать копию)
    Ответ написан
    Комментировать
  • Возможно ли сделать прокси-сервер который использует другие прокси? Или делать через VPN?

    @rPman
    Если на машине, чей ip авторизуется в прокси, есть возможность настройки iptables или любого другого фаервола, то можно настроить простой nat port mapping, пропиши в правилах фильтрацию входящих ip адресов чтобы ограничить доступ к прокси только с них.

    И совсем простой вариант, любой ssh умеет настраивать проброс портов в любую сторону (от клиента к серверу или от сервера к клиенту, ключи -L и -R соответственно), т.е. настраиваешь беспарольную авторизацию, и простым скриптом (его можно как службу прописать)
    while(true);do ssh xxx@yyy -L ..... -N;sleep 1;done

    делаешь автопереподключение (в конфиге ssh сервера советую прописать keepalive на случай нестабильного интернета)
    Ответ написан
    2 комментария
  • Почему не получается обновить до php7.3 на Ubuntu 16?

    @rPman
    Потому что 16-ая версия ubuntu xenial устарела на два lts релиза, а через месяц уже будет три
    В указанном ppa нет сборок под xenial

    есть неофициальные архивы, так что с осторожностью:
    https://launchpad.net/~sergey-dryabzhinsky

    p.s. совет, если обновить систему никак не получится, виртуализируй что можешь, либо полноценными виртуалками либо с помощью lxc или docker
    Ответ написан
    Комментировать