TGViewer
Записки IT специалиста Записки IT специалиста @interface31 · 8.99K subscribers
Post #6147 3.32K
8mb.local – кодируем видео прямо в браузере
 
После наших публикаций на тему локальных сервисов по обработке изображений и PDF нас спросили, а есть ли что-то подобное для видео? Есть. Начнем с простого. Самая частая задача обработки видео – это перекодирование.
 
Вариантов здесь тоже несколько – ставить локальный софт на ПК или использовать облачные серверы. Локальный вариант требует достаточно мощного железа и не решает вопрос многопользовательской работы, в т.ч. удаленной.

А облачные серверы – это снова передача файлов третьей стороне и возможные ограничения на условия перекодирования.
 
Поэтому сервис по локальному перекодированию видео напрашивается сам собой, тем более что под него можно выделить действительно мощный ПК.
 
Мы подготовили минимальный рабочий docker-compose.yml для кодирования с использованием CPU, для настройки GPU ускорения обратитесь к официальной документации на странице проекта: https://github.com/JMS1717/8mb.local
 
services:
  redis:
    image: redis:7-alpine
    container_name: 8mb-redis
    restart: unless-stopped

    command: >
      redis-server
      --appendonly no
      --maxmemory 256mb
      --maxmemory-policy allkeys-lru

    healthcheck:
      test: ["CMD", "redis-cli", "ping"]
      interval: 10s
      timeout: 5s
      retries: 5

  8mblocal:
    image: jms1717/8mblocal:latest
    container_name: 8mblocal

    ports:
      - "8001:8001"

    volumes:
      - ./uploads:/app/uploads
      - ./outputs:/app/outputs

    environment:
      REDIS_URL: redis://redis:6379/0
      WORKER_CONCURRENCY: 4

    restart: unless-stopped

    depends_on:
      redis:
        condition: service_healthy

 
Запущенный сервис будет работать по адресу http://IP_address:8001, интерфейс достаточно прост. Загружаете файл, он анализируется, затем выбираете желаемый итоговый размер или битрейт, настраиваете кодек, разрешение и запускаете конвертацию.
 
Все конвертации становятся в очередь, вы можете не ждать окончания процесса и приступить к следующему файлу, также доступна групповая обработка.
 
Если вы не один работаете с сервисом, то ваш запрос может стать в очередь, вы всегда можете перейти в раздел очередей и посмотреть процесс. Все загруженные и переконвертированные файлы хранятся в сервисе в течении часа.
 
Для распараллеливания процессов используйте параметр окружения
 
WORKER_CONCURRENCY: 4

 
Где укажите делаемое число рабочих процессов, желательно не превышать при этом число доступных процессорных ядер.
 
Данные настройки, как и ряд иных, вы можете задать через переменные окружения, либо изменить в разделе настроек, но в этом случае они не сохранятся при перезапуске контейнера.
  • 👍 25
  • ❤ 2
  • 👎 1
  • 🤝 1
More from @interface31
  1. Sep 27, 2026Ой, а что это случилось? Куда делась лицензия? Программные лицензии 1С - полное дно!!! На…
  2. Sep 27, 2026☝️ Не все умеют правильно пользоваться командами su и sudo. Команда su производит замену п…
  3. Sep 27, 2026Post #6797
  4. Sep 26, 2026Популярные мифы про Docker Встречался третьего дня с одним коллегой, у того серьезная голо…
  5. Sep 26, 2026Про РКН и MikroTik Новость эту не обсуждает только ленивый. Причем, как водится, многие пе…
  6. Sep 26, 2026Post #6794
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →