раскрыть тему
как с помощью ИИ улучшить качество mp4, есть 5 минутный ролик с музыкой и разрешением 144?

https://github.com/xinntao/Real-ESRGAN

sudo apt install -y ffmpeg git python3 python3-venv python3-pip imagemagick

python3 -m venv venv
source venv/bin/activate

git clone https://github.com/xinntao/Real-ESRGAN.git
cd Real-ESRGAN # заходишь в папку с кодом
pip3 install -r requirements.txt

mkdir -p weights
wget -P weights https://github.com/xinntao/Real-ESRGAN/releases/download/v0.2.5.0/realesr-general-wdn-x4v3.pth
wget -P weights https://github.com/xinntao/Real-ESRGAN/releases/download/v0.2.5.0/realesr-general-x4v3.pth

Поэтапный двухэтапный апскейл
Структура папок
~/Real-ESRGAN/
├─ input/           # Исходное видео
│   └─ input.mp4
├─ frames/          # Кадры с исходного видео
├─ upscaled_stage1/ # Кадры после первого апскейла x2
├─ upscaled_stage2/ # Кадры после второго апскейла x2
├─ weights/         # Модели .pth
├─ output/    


# 1. Разбираем видео на кадры с шумоподавлением
mkdir -p frames upscaled_stage1 upscaled_stage2 output
ffmpeg -i input/input.mp4 -vf "hqdn3d=1.5:1.5:6:6" -vsync 0 -q:v 1 frames/frame_%06d.jpg

-vsync 0 → точное количество кадров
-q:v 1 → высокая визуальная точность для JPEG
hqdn3d → слегка сглаживает пиксельные квадраты
frame_%06d.jpg → нумерация кадров с шестью цифрами: frame_000001.jpg, frame_000002.jpg и т.д.

# 2. Первый апскейл x2
python3 inference_realesrgan.py \
-n realesr-general-wdn-x4v3 \
-i frames \
-o upscaled_stage1 \
--fp32 \
--num_processes 8 \
--outscale 2

# 3. Второй апскейл x2
python3 inference_realesrgan.py \
-n realesr-general-wdn-x4v3 \
-i upscaled_stage1 \
-o upscaled_stage2 \
--fp32 \
--num_processes 8 \
--outscale 2

# 4. Сборка видео с оригинальным звуком и масштабирование до 720p
ffmpeg -i upscaled_stage2/frame_%06d.jpg -i input/input.mp4 \
-map 0:v -map 1:a \
-vf "scale=1280:720:flags=lanczos" \
-c:v libx264 -preset slow -crf 18 \
output/final_720p.mp4

scale=1280:720:flags=lanczos → аккуратное масштабирование
Сохраняется оригинальный звук
CRF 18 → хорошее качество

# 5. (Опционально) Лёгкое пост-шарпирование
ffmpeg -i output/final_720p.mp4 -vf "unsharp=5:5:0.5" output/final_720p_sharp.mp4

# 6. Очистка временных файлов
rm -rf frames upscaled_stage1 upscaled_stage2

Разбор по шагам:
--fp32 → стабильность на CPU
--num_processes 8 → Использует все потоки i5 (8) для ускорения
Время для 5 минут видео: ~1.5–3 часа на твоём CPU

-i upscaled_stage2/frame_%06d.jpg → кадры после апскейла
-i input/input.mp4 → исходное видео с аудио
-map 0:v → берём видео из первой части (кадры)
-map 1:a → берём аудио из исходного видео
⚡ Почему звук синхронизирован:
FFmpeg автоматически подстраивает аудио под количество видеофреймов.
-vsync 0 на этапе разбора кадров гарантирует, что каждый кадр соответствует исходной длительности.

Формат и кодек видео
Для Real‑ESRGAN нет строгих требований к формату, главное:
Любой контейнер: .mp4, .mkv, .mov
Кодек: H.264 (libx264) или H.265 (libx265) подходят
Разрешение: любое, у тебя 144p → ок, просто пиксели будут крупные
Фреймрейт: любой, Real‑ESRGAN сохранит оригинальный
Пример mp4 с H.264:
ffmpeg -i input.mp4 -c:v libx264 -crf 20 -preset fast input_for_esr.mp4

Маленькие хитрости для лучшего вида
Какие настройки лучше для 144p
Scale x4 — оптимум
Не делай x8 — будет пластик
Лучше:
144p → ~576p (x4)
потом обычный апскейл до 720p/1080p

✔ Перед апскейлом можно:
ffmpeg -i input.mp4 -vf "hqdn3d" denoise.mp4
✔ После — лёгкое зерно:
-vf "noise=alls=5:allf=t"
Если результат «мыльный»
После сборки можно слегка подшарпить:
ffmpeg -i output_720p.mp4 -vf "unsharp=5:5:0.8" final.mp4
Если видео сильно пиксельное, можно попробовать hqdn3d=1:1:3:3 на первом шаге — квадраты будут ещё меньше, но детали чуть мягче.

Мягкое шумоподавление перед апскейлом
Вместо сильного hqdn3d=1.5:1.5:6:6 можно попробовать мягкий вариант, чтобы не терять детали:
-vf "hqdn3d=1:1:3:3"
Идеально для 144p → квадраты сглаживаются, но текстура остаётся.

Используй WDN-модель для CPU
realesr-general-wdn-x4v3.pth → мягче сглаживает артефакты.
На шумных видео квадраты меньше, чем у обычной realesr-general-x4v3.pth.
💡 Для более «чистого» результата можно экспериментировать с --outscale (x2, x3).

Пост-шарпирование после сборки видео
Лёгкий unsharp возвращает детали без добавления квадратиков:
ffmpeg -i output/final_720p.mp4 -vf "unsharp=5:5:0.5" output/final_720p_sharp.mp4
Можно менять параметры: 5:5:0.5 → горизонтальное/вертикальное ядро и сила резкости.

Сохранение FPS и синхронизация аудио
Используем -vsync 0 при разборе кадров:
ffmpeg -i input.mp4 -vsync 0 frames/frame_%06d.jpg
Сохраняет точное количество кадров → звук не отстаёт при сборке.

Можно временно уменьшить качество JPEG для промежуточных кадров, чтобы не перегружать диск:
-q:v 2 # чуть меньше качества, но быстрее
После апскейла результат всё равно будет высоким.

Настройка финального масштабирования
Вместо bilinear используем Lanczos для резкости:
-vf "scale=1280:720:flags=lanczos"
Альтернатива bicubic — чуть мягче, но квадраты почти исчезают.

Profile

uzverss: (Default)
uzverss

December 2024

S M T W T F S
12345 67
891011121314
15161718192021
22232425262728
293031    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Mar. 17th, 2026 04:34 pm
Powered by Dreamwidth Studios