Простой бесплатный способ конвертации видео с 30 до 60 fps с интерполяцией кадров

Аватара пользователя
Tzratzk
Старец-основатель
Сообщения: 40821
Зарегистрирован: 06 май 2006, 08:55

Простой бесплатный способ конвертации видео с 30 до 60 fps с интерполяцией кадров

Сообщение Tzratzk »

ffmpeg -i input.mp4 -vf "minterpolate='fps=60:mi_mode=mci:mc_mode=aobmc:me_mode=bidir:vsbmc=1'" -c:a copy output_60fps.mp4



Положу тут, ибо раздела видео у нас нету, а вещь полезная. Погуглил, в инете народ тоже ищет решение на этот счёт и не находит. Получил результат методом пристрастного допроса чата джипити, который всё время морочил голову, давал неработающие инструкции и пытался завести не туда. Так что здесь только самые выжимки из беседы.


---


Простой бесплатный способ конвертации видео с 30 до 60 fps с интерполяцией кадров


(Даёт заметное повышение плавности смены кадров путём добавления дополнительных усреднённых промежуточных кадров между уже имеющимися)

И кое-какие другие полезные советы по обработке видеофайлов через терминал Windows с помощью командной строки ffmpeg


---



Шаг 1. Скачай Ffmpeg (это мощный набор программ с открытым исходным кодом для обработки мультимедиа: видео и аудио. Он работает через командную строку и позволяет делать практически всё с медиафайлами.)

1. Перейди на официальный сайт сборок FFmpeg для Windows:
https://www.gyan.dev/ffmpeg/builds/

2. Найди раздел "Release builds" (релизные сборки).

3. Скачай архив с последней стабильной версией, например:
ffmpeg-release-essentials.zip (32 или 64-бит, в зависимости от твоей системы).
Обычно выбирают 64-bit. Распакуй архив в любое место диска, например: C:\ffmpeg\

4. Внутри папки C:\ffmpeg\ должна появиться папка bin с файлами ffmpeg.exe, ffplay.exe, ffprobe.exe.

---

Шаг 2. Добавь FFmpeg в переменную среды PATH

Чтобы можно было запускать ffmpeg из любой директории в командной строке, нужно добавить путь к папке bin в системную переменную PATH.

Как это сделать:

1. Нажми Win + R (откроется окно «Выполнить»).

2. Введи команду:
SystemPropertiesAdvanced

3. Нажми Enter.

4. Откроется окно «Свойства системы» с вкладкой «Дополнительно».

5. Нажми кнопку «Переменные среды...» внизу окна.

6. В разделе «Системные переменные» найди переменную Path и нажми «Изменить».

7. Нажми «Создать» (или «New»).

8. Введи путь к папке bin, например:

C:\ffmpeg\bin

7. Нажми ОК во всех окнах, чтобы сохранить изменения.

---

Шаг 3. Проверь установку

1. Открой новую командную строку (или окно терминала):
Нажми Win + R, введи cmd и нажми Enter.

2. Введи команду:
ffmpeg -version

3. Если всё сделано правильно, ты увидишь информацию о версии FFmpeg, например:

ffmpeg version 6.0 Copyright (c) ...
built with ...
configuration: ...

---

Дополнительные советы

- Если команда ffmpeg не распознаётся, убедись, что ты перезапустил командную строку после изменения PATH.
- Проверь, что путь к bin указан именно к той папке, где лежит ffmpeg.exe.
- Для удобства можно также добавить ярлык или батник, но это не обязательно.

---

Частые ошибки и советы

- Не перезапустил терминал: изменения PATH не применятся в уже открытых окнах cmd/PowerShell.
- Добавил неправильный путь: путь должен вести именно к папке bin, где лежит ffmpeg.exe.
- Добавил путь в пользовательскую переменную, а не системную: лучше добавить в системную переменную PATH, чтобы доступ был для всех пользователей.
- Опечатка в пути: проверь точность пути.

Если всё сделано правильно, ты увидишь информацию о версии FFmpeg.

---


Что такое FFmpeg?

FFmpeg — это мощный набор программ с открытым исходным кодом для обработки мультимедиа: видео и аудио. Он работает через командную строку и позволяет делать практически всё с медиафайлами.

---

Зачем нужен FFmpeg в Windows?

1. Конвертация видео и аудио форматов

- Преобразование файлов из одного формата в другой (например, MKV → MP4, WAV → MP3).
- Поддержка сотен форматов и кодеков.

2. Сжатие и оптимизация видео

- Уменьшение размера видео без значительной потери качества.
- Настройка битрейта, разрешения, частоты кадров.

3. Извлечение аудио из видео

- Выделение звуковой дорожки из видеофайла (например, для создания подкастов или музыки).

4. Склейка и нарезка видео и аудио

- Объединение нескольких видео в один.
- Нарезка нужных фрагментов без перекодирования.

5. Запись экрана и потоковое вещание

- Запись видео с экрана компьютера.
- Трансляция аудио/видео в режиме реального времени.

6. Добавление и удаление субтитров, метаданных

- Встраивание субтитров в видео.
- Редактирование информации о файле.

7. Создание видео из изображений

- Генерация слайдшоу или анимаций из серии картинок.

---

Почему именно FFmpeg?

- Кроссплатформенность: работает на Windows, Linux, macOS.
- Мощность и гибкость: можно автоматизировать сложные задачи через скрипты.
- Поддержка огромного количества форматов и кодеков.
- Бесплатность и открытый исходный код.

---

Кто использует FFmpeg?

- Видео-редакторы и монтажёры.
- Разработчики мультимедиа-приложений.
- Контент-мейкеры и блогеры.
- Администраторы и инженеры по потоковому вещанию.

---

Пример простой команды

Чтобы конвертировать видео из формата AVI в MP4, достаточно выполнить:
ffmpeg -i input.avi output.mp4


---

Какая команда конвертирует файл .mp4 на 30 fps в файл .mp4 на 60 fps с интерполяцией кадров?

---

Основные моменты

- Изменение fps без интерполяции — просто дублирование кадров, команда -r 60 — даёт 60 fps, но без плавности.
- Интерполяция кадров — создание новых кадров между исходными для плавного видео. В FFmpeg это делается с помощью фильтра minterpolate.

---

Команда FFmpeg для интерполяции кадров 30fps → 60fps

ffmpeg -i input.mp4 -vf "minterpolate='fps=60:mi_mode=mci:mc_mode=aobmc:me_mode=bidir:vsbmc=1'" -c:a copy output_60fps.mp4

---

Объяснение параметров:

- -i input.mp4 — входной файл.
- -vf — видеофильтр.
- minterpolate — фильтр интерполяции кадров.
- fps=60 — целевой fps.
- mi_mode=mci — режим интерполяции (motion-compensated interpolation).
- mc_mode=aobmc — алгоритм компенсации движения.
- me_mode=bidir — двунаправленное определение движения.
- vsbmc=1 — улучшенное сглаживание движения.
- -c:a copy — копируем аудио без изменений.
- output_60fps.mp4 — выходной файл.

---

Дополнительно

- Интерполяция — ресурсоёмкий процесс, может занять много времени.
- Можно настроить параметры фильтра для баланса качества и скорости.
- Если хочешь изменить битрейт видео, добавь, например:
-b:v 2500k


где 2500k — битрейт в килобитах в секунду.

---

Пример с ограничением битрейта:
ffmpeg -i input.mp4 -vf "minterpolate='fps=60:mi_mode=mci:mc_mode=aobmc:me_mode=bidir:vsbmc=1'" -b:v 3000k -c:a copy output_60fps.mp4


---

Основные команды FFmpeg

---

1. Информация о файле
ffmpeg -i input.mp4

- Показывает информацию о формате, кодеках, длительности и потоках входного файла.

---

2. Конвертация форматов
ffmpeg -i input.avi output.mp4

- Конвертирует видео из AVI в MP4 с настройками по умолчанию.

---

3. Изменение битрейта видео
ffmpeg -i input.mp4 -b:v 1000k output.mp4

- Устанавливает видеобитрейт 1000 кбит/с.

---

4. Изменение частоты кадров (fps)
ffmpeg -i input.mp4 -r 60 output_60fps.mp4

- Преобразует видео в 60 fps (без интерполяции кадров).

---

5. Интерполяция кадров (плавное увеличение fps)
ffmpeg -i input.mp4 -vf "minterpolate='fps=60'" output_60fps_interp.mp4

- Плавное преобразование fps с помощью интерполяции.

---

6. Извлечение аудио из видео
ffmpeg -i input.mp4 -q:a 0 -map a output.mp3

- Извлекает аудиодорожку в формат MP3 с максимальным качеством.

---

7. Объединение нескольких видео (без перекодирования)

- Создай файл list.txt со списком:

```
file 'input1.mp4'
file 'input2.mp4'
file 'input3.mp4'

```

- Выполни команду:
ffmpeg -f concat -safe 0 -i list.txt -c copy output.mp4


---

8. Обрезка видео (с 00:01:00 по 00:02:00)
ffmpeg -i input.mp4 -ss 00:01:00 -to 00:02:00 -c copy output_cut.mp4

- Быстрая обрезка без перекодирования.

---

9. Сжатие видео (уменьшение размера)
ffmpeg -i input.mp4 -vcodec libx264 -crf 23 output_compressed.mp4

- Сжимает видео с помощью кодека H.264, параметр crf регулирует качество (меньше — лучше).

---

10. Добавление субтитров к видео
ffmpeg -i input.mp4 -vf subtitles=subs.srt output_subtitled.mp4


---

11. Изменение разрешения видео
ffmpeg -i input.mp4 -vf scale=1280:720 output_720p.mp4

- Масштабирует видео до 1280x720.

---

12. Захват видео с экрана (Windows)
ffmpeg -f gdigrab -framerate 30 -i desktop output_capture.mp4


---

13. Преобразование аудио в другой формат
ffmpeg -i input.wav output.mp3


---

14. Добавление водяного знака (логотипа)
ffmpeg -i input.mp4 -i logo.png -filter_complex "overlay=10:10" output_watermarked.mp4

- Водяной знак в углу (10 пикселей от левого верхнего угла).

---


Изменение скорости видео без изменения аудио

Если нужно только изменить скорость видео (ускорить или замедлить), можно использовать видеофильтр setpts.

Формат команды:
ffmpeg -i input.mp4 -filter:v "setpts=PTS/скорость" -an output.mp4

- setpts=PTS/скорость — изменяет временные метки кадров (PTS).
- скорость — множитель скорости:
- >1 — ускорение (например, 2 — в 2 раза быстрее)
- <1 — замедление (например, 0.5 — в 2 раза медленнее)
- -an — отключает аудио (если аудио не нужно).

---

Примеры:

- Ускорить видео в 2 раза:ffmpeg -i input.mp4 -filter:v "setpts=PTS/2" -an output_fast.mp4

- Замедлить видео в 2 раза:ffmpeg -i input.mp4 -filter:v "setpts=PTS/0.5" -an output_slow.mp4

---

Изменение скорости и аудио вместе

Если нужно изменить скорость и видео, и аудио синхронно, используем фильтр atempo для аудио.

Формат команды:
ffmpeg -i input.mp4 -filter_complex "[0:v]setpts=PTS/скорость[v];[0:a]atempo=скорость[a]" -map "[v]" -map "[a]" output.mp4

- atempo поддерживает изменение скорости аудио в диапазоне 0.5–2.0. Для больших изменений можно применять несколько фильтров последовательно.

---

Примеры:

- Ускорить видео и аудио в 2 раза:ffmpeg -i input.mp4 -filter_complex "[0:v]setpts=PTS/2[v];[0:a]atempo=2[a]" -map "[v]" -map "[a]" output_fast.mp4

- Замедлить видео и аудио в 2 раза:

Так как atempo не поддерживает значения меньше 0.5 напрямую, для замедления в 2 раза можно применить два фильтра по 0.707 примерно:ffmpeg -i input.mp4 -filter_complex "[0:v]setpts=PTS/0.5[v];[0:a]atempo=0.707,atempo=0.707[a]" -map "[v]" -map "[a]" output_slow.mp4

---

Альтернативный способ — изменение скорости с помощью -filter:v "setpts=…"

- Для ускорения в N раз: setpts=PTS/N
- Для замедления в N раз: setpts=PTS*N
Вложения
fps-1696451790.gif
fps-1696451790.gif (1.1 МБ) 341 просмотр
Аватара пользователя
Tzratzk
Старец-основатель
Сообщения: 40821
Зарегистрирован: 06 май 2006, 08:55

Re: Простой бесплатный способ конвертации видео с 30 до 60 fps с интерполяцией кадров

Сообщение Tzratzk »

Tzratzk,
Можно ли улучшить качество изображения видеофайла с помощью ffmpeg ?


ChatGPT4 | Midjourney,
Да, улучшить качество изображения видеофайла с помощью FFmpeg можно несколькими способами. Хотя FFmpeg не может добавить детали, которые не были в исходном видео, он может улучшить визуальное восприятие видео с помощью различных фильтров и настроек.


Вот несколько методов, которые ты можешь использовать:


---

Увеличение разрешения (Upscaling)


Пример команды:ffmpeg -i input.mp4 -vf "scale=1280:720" -c:a copy output.mp4

- -vf "scale=1280:720": изменяет разрешение на 1280x720.
- -c:a copy: копирует аудиодорожку без изменений.


---

Использование фильтров для улучшения качества



Применение фильтра Sharpen

ffmpeg -i input.mp4 -vf "unsharp=5:5:1.0" -c:a copy output.mp4

- unsharp=5:5:1.0: применяет фильтр резкости к видео.



Применение фильтра deinterlace

ffmpeg -i input.mp4 -vf "yadif" -c:a copy output.mp4

- yadif: фильтр для деинтерлейсинга, который может улучшить качество видео с чередующимися полями.



Улучшение качества цветопередачи

Применение фильтра для улучшения контраста и яркостиffmpeg -i input.mp4 -vf "eq=contrast=1.5:brightness=0.05" -c:a copy output.mp4

- eq=contrast=1.5:brightness=0.05: увеличивает контраст и немного поднимает яркость.



Кодирование с высоким битрейтом

При экспорте видео можно указать более высокий битрейт, что может улучшить качество.ffmpeg -i input.mp4 -b:v 5000k -c:a copy output.mp4

- -b:v 5000k: устанавливает видеобитрейт на 5000 кбит/с.



Использование кодека с высоким качеством

Например, использование кодека libx264 с настройками для улучшения качества:ffmpeg -i input.mp4 -c:v libx264 -preset slow -crf 18 -c:a copy output.mp4

- -preset slow: более медленный, но качественный метод кодирования.
- -crf 18: значение для контроля качества (меньшее значение — лучшее качество).




Заключение

Используя вышеуказанные методы, ты можешь улучшить качество видеофайла с помощью FFmpeg. Экспериментируя с различными фильтрами и настройками, можно добиться заметного улучшения визуального восприятия видео.
Аватара пользователя
Tzratzk
Старец-основатель
Сообщения: 40821
Зарегистрирован: 06 май 2006, 08:55

Re: Простой бесплатный способ конвертации видео с 30 до 60 fps с интерполяцией кадров

Сообщение Tzratzk »

Tzratzk,
Сделать пример команды ffmpeg апскейла с одновременным улучшением качества всеми возможными способами

ChatGPT4 | Midjourney,
Конечно! Вот пример команды FFmpeg, которая выполняет апскейл видео с одновременным улучшением качества с помощью нескольких фильтров:


- Увеличение разрешения (апскейл)
- Повышение резкости (unsharp)
- Коррекция контраста и яркости (eq)
- Деинтерлейсинг (yadif)
- Кодирование с высоким качеством (libx264, slow preset, низкий CRF)


---


ffmpeg -i input.mp4 -vf "yadif,scale=1920:1080:flags=lanczos,unsharp=5:5:1.0,eq=contrast=1.3:brightness=0.05:saturation=1.1" -c:v libx264 -preset slow -crf 18 -c:a copy output_upscaled.mp4

---

Разбор команды по шагам:
ffmpeg_upscale.jpg
ffmpeg_upscale.jpg (77.02 КБ) 333 просмотра



Советы

- Если 1920x1080 — слишком большое разрешение для твоей видеокарты, можно уменьшить до 1280x720 или другого значения.
- Параметры фильтров (например, unsharp и eq) можно подбирать под свои предпочтения.
- -crf можно менять от 18 (лучшее качество) до 23 (баланс качества и размера).

---

Если хочешь, могу помочь адаптировать команду под твои конкретные задачи или объяснить каждый параметр подробнее!
Аватара пользователя
Tzratzk
Старец-основатель
Сообщения: 40821
Зарегистрирован: 06 май 2006, 08:55

Re: Простой бесплатный способ конвертации видео с 30 до 60 fps с интерполяцией кадров

Сообщение Tzratzk »

Kztarzt,
почему не работает команда ffmpeg: ffmpeg -i tf.mkv tf.mp4 ?


ChatGPT4 | Midjourney,
Команда
ffmpeg -i tf.mkv tf.mp4

в общем виде должна работать и конвертировать видео из формата MKV в MP4. Если она не работает, причины могут быть разными. Разберём основные причины и как их диагностировать.

---

Возможные причины, почему команда не работает

1. Отсутствие FFmpeg или неправильный путь

- Убедись, что FFmpeg установлен и доступен в командной строке.
- Проверь команду:
ffmpeg -version

- Если команда не найдена — нужно установить FFmpeg или добавить его в PATH.

---

2. Файл tf.mkv отсутствует или указан неверно

- Проверь, что файл tf.mkv действительно есть в текущей папке.
- Можно проверить:
ls -l tf.mkv

- Если файл в другом каталоге — укажи полный путь.

---

3. Ошибка в кодеках или несовместимость

- MKV — это контейнер, который может содержать видео и аудио с разными кодеками.
- MP4 контейнер не поддерживает все кодеки (например, некоторые версии MP4 не поддерживают кодек VP9).
- Если в MKV используется неподдерживаемый кодек для MP4, FFmpeg может выдавать ошибку.

---

4. FFmpeg не может автоматически перекодировать видео

- При простой команде FFmpeg пытается перекодировать видео и аудио в совместимые с MP4 форматы.
- Иногда FFmpeg пытается просто скопировать потоки, что может не работать из-за несовместимости.

---

5. Ошибка в выводе

- Внимательно посмотри на сообщение об ошибке, которое выводит FFmpeg — оно подскажет, что именно не так.

---

Как диагностировать проблему

1. Запусти команду с подробным выводом:
ffmpeg -i tf.mkv

— посмотри, какие кодеки используются внутри файла.

2. Попробуй явно перекодировать видео и аудио в распространённые форматы:
ffmpeg -i tf.mkv -c:v libx264 -c:a aac tf.mp4

- -c:v libx264 — видео в H.264
- -c:a aac — аудио в AAC (стандарт для MP4)

---

Пример рабочей команды:
ffmpeg -i tf.mkv -c:v libx264 -preset fast -crf 23 -c:a aac -b:a 192k tf.mp4


- Тут происходит перекодирование видео и аудио в более совместимые форматы.
- -preset fast — баланс скорости и качества.
- -crf 23 — качество видео (чем меньше, тем лучше).
- -b:a 192k — битрейт аудио.

---

Итог

- Простая команда может не работать из-за несовместимости кодеков.
- Лучше явно указать кодеки для перекодирования.
- Всегда смотрите вывод ошибок FFmpeg — там подсказки.

---

Если хочешь, можешь привести вывод ошибки, которую ты получаешь, и я помогу её разобрать!
Ответить