Шакоретка

Шакоретка 

Crazy mad man driven by pie and coffee 🥧☕️

3subscribers

13posts

Showcase

1
goals1
0 of 500 paid subscribers
Ухожу из найма, посвящаю себя активности в сети, качество и количество контента увеличивается.

FFmpeg, как отказаться от конвертации онлайн

FFmpeg - мощнейшая и широко распространенная опенсурс библиотека обработки аудио и видео файлов из командной строки. Почти все известные редакторы и медиаресурсы существуют на его основе, YouTube, TikTok, PornHub и т.д.
Он чрезвычайно прост в использовании, ниже я опишу все то, чем пользуюсь сам.
Установка
1.Скачайте актуальную под вашу платформу версию с сайта
2.Распакуйте в любое удобное место
3.Добавьте путь с исполняемым файлом ffmpeg.exe в path переменных сред
4.Запустите терминал и выполните команду ffmpeg, если в ответ на нее, в терминале появилось описание программы, то все работает как положено
Написание скрипта
1.Создайте ярлык в удобной вам папке
2.Смените его адрес на cmd, теперь активация ярлыка вызовет терминал
3.Откройте свойства ярлыка и удалите данные в поле "Рабочая папка", открывая терминал, он всегда будет ссылаться на папку в которой находится
Структура инструкций ffmpeg построена на флагах и абсолютных путях к обрабатываемым файлам, для их использования в свойствах ярлыка дописывайте все необходимые команды в поле "Объект" разделив их /k для активации скрипта и сохранения терминала открытым или /c если терминал нужно автоматически закрыть.
Ключи потоков
Некоторые флаги можно применить к конкретным потокам
:v Видео
:a Аудио
:s Субтитры
Ввод файла
-i ПУТЬ указывает на полный путь к файлу поступающего на обработку.
пример cmd /k ffmpeg -i input.webm
Вывод файла
Не требует дополнительных инструкций, укажите имя и расширение файла в конце строки.
пример cmd /k ffmpeg -i input.webm output.mp4
Битрейт
-b:КЛЮЧПОТОКА ЗНАЧЕНИЕ устанавливает постоянный битрейт,по умолчанию значение передается в битах/с.
Можно определить конкретную единицу измерений явно указав
k Килобиты
M Мегабиты
пример cmd /k ffmpeg -i input.webm -b:v 1000k output.mp4
Буферсайз
-bufsize ЗНАЧЕНИЕ полезный флаг в связке с битрейтом. Смена кадров отличается по нагрузке и для некоторых последовательностей может понадобиться больше места, чем может позволить ширина битрейта, -bufsize позволяет занять неиспользуемое пространство у кадров, которые не требуют больших изменений. Значения x1-x5 от битрейта позволяют уменьшить кол-во артефактов даже при низком битрейте.
пример cmd /k ffmpeg -i input.webm -b:v 1000k -bufsize 1000k output.mp4
"Качество"
-crf ЗНАЧЕНИЕ автоматическая настройка битрейта со значением от 0(lossless) до 51(Максимально зашакаленное). ffmpeg подберет битрейт автоматически, нормальным для него значением является 18-22. В идеале установить одновременно медленный кодировщик, для лучшего качества при помощи -preset slow.
пример cmd /k ffmpeg -i input.webm -crf 18 -preset slow output.mp4
FPS
-r ЗНАЧЕНИЕ меняет целевой фреймрейт.
пример cmd /k ffmpeg -i input.webm -r 6 output.mp4
Изменение размера видео
-vf "НАБОР ИНСТРУКЦИЙ ФИЛЬТРА" флаг принимает в себя набор последовательных команд как ВидеоФильтр(VF). Простейший способ, собрать их последовательно через запятую.
Важно упомянуть о том, что возможно получать входные данные файла используя например
ih высота кадра
iw ширина кадра
Кадрирование
-vf "crop=ШИРИНА:ВЫСОТА" позволяет кадрировать кадр с обрезкой. Полезно для кадрирования по пропорциям без искажений.
пример cmd /k ffmpeg -i input.webm -vf "crop=iw:iw/16*9" output.mp4
Масштабирование
-vf "scale=ШИРИНА:ВЫСОТА" задает целевое разрешение, растягивая и сужая кадр.
Для изменения размера с сохранением пропорций, используется параметр -2, при этом значение второй стороны будет округлено до ближайшего четного числа, что важно для некоторых кодеков.
пример cmd /k ffmpeg -i input.webm -vf "scale=-2:128" output.mp4
Инструкции -vf должны быть вложены последовательно и разделены запятыми, но терминал запятых не понимает, поэтому перед ней должен идти символ экранирования ^,либо ,инструкции вложены в кавычки с применением обычной запятой.
пример 1 cmd /k ffmpeg -i input.webm -vf crop=iw:iw/16*9^,scale=-2:126 output.mp4
пример 2 cmd /k ffmpeg -i input.webm -vf "crop=iw:iw/16*9,scale=-2:126" output.mp4
Отключение звука
-an отключает звук.
пример cmd /k ffmpeg -i input.webm -an output.mp4
Замедление/Ускорение
-filter:КЛЮЧПОТОКА "setpts(для видео) atempo(для аудио)=ЗНАЧЕНИЕВДИАПАЗОНЕ 0.5-2.0 * PTS" меняет скорость воспроизведения потока.
пример cmd /k ffmpeg -i input.webm -filter:v "setpts=2.0*PTS" -filter:a "atempo=0.5" output.mp4
Перезапись файла без запроса
-y перезаписывает файл без запроса в терминале.
пример cmd /k ffmpeg -y -i input.webm output.mp4
Это базовый набор инструкций, который так же можно использовать подключив библиотеку например к Python. ffmpeg способен еще на многое, подробности можно найти в его документации.
CheatSheet FFMPEG:
:v Видео
:a Аудио
:s Субтитры
-i ПУТЬ Ввод файла
ПУТЬ.РАСШИРЕНИЕ Вывод файла
-b:КЛЮЧПОТОКА ЗНАЧЕНИЕ Битрейт
k Килобиты
M Мегабиты
-bufsize ЗНАЧЕНИЕ Буферсайз
-crf ЗНАЧЕНИЕОТ0ДО51 "Качество"
-r ЗНАЧЕНИЕ FPS
-vf "НАБОР ИНСТРУКЦИЙ ФИЛЬТРА" ВидеоФильтр
ih высота кадра
• iw ширина кадра
-vf "crop=ШИРИНА:ВЫСОТА" Кадрирование
-vf "scale=ШИРИНА:ВЫСОТА" Масштабирование
-2 Пропорция с округлением до четного
-an Отключение звука
-filter:КЛЮЧПОТОКА "setpts(для видео) atempo(для аудио)=ЗНАЧЕНИЕВДИАПАЗОНЕ 0.5-2.0 * PTS" Замедление/Ускорение
-y Перезапись файла без запроса
Пример готового скрипта:
Subscription levels1

Flower

$3.5 per month
• Доступ к статьям на Boosty.
• Доступ к закрытому Telegram каналу.
• Большинство статей в Telegram канале те же, что и на Boosty.
• Доступ к Telegram каналу остается у вас навсегда.
Go up