Skip to content

Latest commit

 

History

History
263 lines (182 loc) · 9.86 KB

File metadata and controls

263 lines (182 loc) · 9.86 KB

Video Export Tool для Boot Display

Инструмент для экспорта видео в раскадровку и загрузки на принтер для отображения boot-анимации.

🚀 Самый простой способ - PowerShell скрипт (Windows)

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

Быстрый старт

  1. Скачайте файл set-bootscreen.ps1
  2. Откройте PowerShell в папке со скриптом (Shift + правая кнопка мыши → "Открыть окно PowerShell здесь")
  3. Выполните команду:
.\set-bootscreen.ps1 video.mp4 root:password@192.168.1.100

Параметры PowerShell скрипта

# Базовое использование (12 fps, всё видео)
.\set-bootscreen.ps1 video.mp4 root:password@192.168.1.100
# Комбинация параметров
.\set-bootscreen.ps1 video.mp4 root:password@192.168.1.100 -start 2 -end 15 -fps 30 -fade

Python

Шаг 1: Установка Python

  1. Скачайте Python 3.7+ с официального сайта: https://www.python.org/downloads/
  2. При установке обязательно поставьте галочку "Add Python to PATH"
  3. Следуйте инструкциям установщика

Шаг 2: Подготовка скрипта

  1. Скачайте все файлы проекта в папку, например C:\video-export\
  2. Откройте командную строку (Win+R → cmd)
  3. Перейдите в папку со скриптом:
    cd C:\video-export

Шаг 3: Установка зависимостей

pip install -r requirements.txt

Шаг 4: Запуск

python simple_export.py -s 20 -e 40 -f 24 --fade --scale-mode crop --upload root:creality_2023@192.168.1.128

Где:

  • -s 20 - начать с 20 секунды видео
  • -e 40 - закончить на 40 секунде
  • -f 24 - 24 кадра в секунду
  • --fade - добавить плавное появление/затухание
  • --scale-mode crop - обрезать без искажений
  • --upload - загрузить на принтер (формат: пользователь:пароль@IP)

ℹ️ Примечание: Если FFmpeg не установлен, скрипт автоматически скачает его при первом запуске (~80 MB).


Требования

  • Python 3.7+
  • FFmpeg (скачивается автоматически при необходимости)
  • Библиотеки Python (устанавливаются автоматически):

Использование

Базовый экспорт

# Интерактивный выбор файла
python simple_export.py

# Указать файл явно
python simple_export.py video.mp4

Параметры экспорта

# Экспорт с 5 по 15 секунду, 24 fps
python simple_export.py video.mp4 -s 5 -e 15 -f 24

# С fade-эффектами
python simple_export.py video.mp4 --fade

# С обрезкой для сохранения пропорций (без искажений)
python simple_export.py video.mp4 --scale-mode crop

Загрузка на принтер

# Экспорт и загрузка на принтер
python simple_export.py video.mp4 --upload root:password@192.168.1.100:22

# Порт 22 по умолчанию (можно не указывать)
python simple_export.py video.mp4 --upload root:password@192.168.1.100

# Комбинация всех параметров
python simple_export.py video.mp4 -s 0 -e 10 -f 24 --fade --scale-mode crop --upload root:pass@192.168.1.100

Аргументы командной строки

Аргумент Короткая форма Описание По умолчанию
video - Путь к видео файлу (опционально) Диалог выбора
--start -s Время начала в секундах 0
--end -e Время конца в секундах До конца видео
--fps -f Кадров в секунду 12
--fade - Добавить fade in/out эффекты Выключено
--scale-mode - Режим масштабирования: stretch (растянуть) или crop (обрезать) stretch
--upload - Загрузить на принтер (формат: user:pass@ip:port) -

Формат строки подключения

Для загрузки на принтер используется URI-формат:

username:password@ip:port

Структура экспорта

После экспорта создается следующая структура:

export/
├── boot-display.conf   # Конфигурационный файл
└── part0/              # Папка с кадрами
    ├── pic_000.jpg
    ├── pic_001.jpg
    ├── pic_002.jpg
    └── ...

Формат boot-display.conf

width: 480
height: 800
fps: 12
parts: 1
{ part0 }

Обработка видео

Скрипт автоматически применяет следующие преобразования:

  1. Масштабирование: до 800x480 (исходный размер)
    • stretch (по умолчанию): растягивает видео, игнорируя пропорции (может исказить)
    • crop: сохраняет пропорции, обрезая лишнее (без искажений)
  2. Поворот: на 90° по часовой стрелке → итоговый размер 480x800
  3. Fade эффекты (если включены):
    • Fade in: 1 секунда от начала
    • Fade out: 1 секунда до конца
  4. Качество: максимальное (JPEG quality = 1)

Выбор режима масштабирования

  • Используйте stretch если важно показать весь кадр (несмотря на возможные искажения)
  • Используйте crop если важно сохранить правильные пропорции (часть видео будет обрезана)

Загрузка на принтер

При загрузке на принтер происходит:

  1. Подключение по SSH к указанному адресу
  2. Backup: текущая папка /etc/boot-display переименовывается в /etc/boot-display-BACK-YYYYMMDD_HHMMSS
  3. Создание новой папки /etc/boot-display
  4. Загрузка всех файлов из локальной папки export/ (используется феллбек SCP если entwares(sftp-server) не обнаружен)
  5. Закрытие соединения

Примеры использования

Создание загрузочной анимации

# 1. Экспорт первых 5 секунд видео с 24 fps и fade-эффектами
python simple_export.py intro.mp4 -s 0 -e 5 -f 24 --fade

# 2. Проверка результата в папке export/part0/

# 3. Загрузка на принтер
python simple_export.py intro.mp4 -s 0 -e 5 -f 24 --fade --upload root:password@192.168.1.100

Быстрый экспорт

# Стандартные настройки (12 fps, всё видео)
python simple_export.py animation.mp4

# Только часть видео
python simple_export.py long_video.mp4 -s 10 -e 20

Высокое качество

# Максимальный FPS для плавной анимации
python simple_export.py smooth.mp4 -f 30 --fade

Устранение неполадок

FFmpeg не найден

Проблема: ✗ Ошибка: ffmpeg не найден!

Решение:

  • Установите FFmpeg и добавьте в системный PATH
  • Или поместите ffmpeg.exe в папку со скриптом

Ошибка подключения к принтеру

Проблема: ✗ Ошибка подключения: ...

Решения:

  • Проверьте IP-адрес и порт
  • Убедитесь, что SSH включен на принтере
  • Проверьте имя пользователя и пароль
  • Проверьте сетевое подключение

Неверный формат строки подключения

Проблема: ✗ Ошибка: Неверный формат строки подключения

Решение: Используйте формат username:password@ip:port или username:password@ip

Технические детали

Зависимости модулей

  • simple_export.py - основной скрипт экспорта
  • printer_uploader.py - модуль загрузки на принтер
  • export.bat - batch-файл для Windows (если есть)

Поддерживаемые форматы видео

FFmpeg поддерживает большинство видео форматов:

  • MP4, AVI, MKV, MOV
  • WebM, FLV, WMV
  • И многие другие

Лицензия

Свободное использование

Автор

Создано для автоматизации подготовки boot-анимаций для принтеров