У меня наконец-то дошли руки заняться семейным видеоархивом.
Меня всегда останавливало от поднятия какого-то сервиса для медиа то, что у тебя параллельно возникает ещё один архив, куда надо загружать новые файлы. Можно столкнуться с тем, что при каких-то проблемах с сервисом, можно потерять либо саму структуру файлов в нём, либо вообще сами файлы, так как они превратятся в кашу.
Сейчас у меня архив хранится в сетевой папке с ручной разбивкой по событиям, датам и т.д. Это просто и надёжно, но хлопотно в плане каталогизации, потому что поток новых файлов большой, времени в нём разбираться нету. В итоге последние года всё валится в папки "Разобрать", "2025", "Старый смартфон" и т.д. Никто туда не заходит и ничего не разбирает.
Всё это дело копируется в Яндекс.Диск и в ещё один локальный бэкап. Яндекс диск в целом прост и неприхотлив. По расписанию туда копируются все изменения. Файлы при желании можно посмотреть в браузере. Из аналитики только временная шкала и некоторый интеллектуальный поиск, но не понятно, как и чем он строится. Иногда могу что-то быстро найти, иногда нет. К примеру, по запросу "деревянный дом" вижу фотки своего дома. Довольно удобно. Но иногда что-то ищу, но нахожу.
В итоге развернул Immich и скормил ему свой архив. Расскажу по пунктам, чем он привлёк и как там всё работает:
🔥Самое главное, почему решил его использовать - в Immich можно подключить свой уже существующий архив в виде внешнего хранилища. Для меня это ключевое преимущество. Я по прежнему всё сгружаю в сетевую папку, при желании распределяю по директориям, как мне нравится, бэкаплю по той же схеме, чтобы в случае потери Immich у меня не пострадал сам архив. Immich в него ходит в режиме чтения.
🔹Поверх моего архива Immich делает следующее:
◽️Создаёт миниатюры фотографий для просмотра в браузере.
◽️Извлекает метаданные из фоток для поиска по ним.
◽️Распознаёт содержимое фоток для поиска. К примеру, я могу найти все фотографии, где есть море, коричневая футболка, деревянный дом и т.д. Примерно так же, как в Яндекс Диске. Качество среднее. Что-то находит, что-то нет. Это всё калибруется настройками локальной LLM и качеством миниатюр, по которым ведётся поиск.
◽️Поиск дубликатов по содержимому, а не метаданным.
◽️Обнаружение и распознавание лиц. Это то, что понравилось больше всего. Распознаёт лица нормально, даже детей. Где-то после 2-3 лет детей уже не путает. Грудничка и трехлетку видит как разных детей, но это решается ручным объединением.
◽️ Распознаёт текст. Я особо не проверял, как работает, у меня почти нет текста на фотках.
◽️ Кодирует видео в заданные форматы и разрешения. Я не стал это делать, не хочу плодить дубликаты файлов. То, что надо, сжимаю сам в изначальном архиве.
◽️По геометкам, если они есть, отображает на карте фотографии.
Благодаря метаданным, геометкам, распознаванию содержимого и лиц можно выполнять расширенный поиск. Например, вывести все фотки какого-то ребёнка в конкретный год. Под аналитику можно использовать как встроенные небольшие локальные модели, так и подключать внешние. Не тестировал, как это работает.
Из своих данных Immich генерирует миниатюры и хранит всё своё состояние в PostgreSQL. Основную ценность представляет она, если вы фотки подключаете из внешнего хранилища. Миниатюры, если что, можно пересоздать, как и переиндексировать всю медиатеку. Это процесс небыстрый, но и потеря данных некритична, если что. Пару тройку дней можно подождать, если нужно будет заново разметить.
Я пока остановился на том, буду вести архив как раньше, а Immich использовать только для аналитики. Загружать фото непосредственно в него, например, через приложение на смартфоне, не буду. Это удобно, но будет приводить к раздвоению архива.
#fileserver