раскрыть тему
как с помощью ИИ улучшить качество 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 — чуть мягче, но квадраты почти исчезают.

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

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 05:07 pm
Powered by Dreamwidth Studios