Добавить в корзинуПозвонить
Найти в Дзене

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:

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

 

Где укажите делаемое число рабочих процессов, желательно не превышать при этом число доступных процессорных ядер.

 

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

-2
-3