как работать с ffmpeg в windows
Электрический блогнот
мои заметки на полях
ffmpeg для начинающих
В данной статье попробуем «на пальцах» объяснить, что такое FFmpeg для начинающих пользователей Linux (да и Windows тоже). FFmpeg популярный набор программ и библиотек среди multimedia и web разработчиков. На базе FFmpeg сделано множество программ по конвертированию видео из одного формата в другой. Популярность этой программы крайне высока. Почему он так популярен? Для чего его чаще используют? Как установить и как запустить?
Итак, основные фишки FFmpeg, которые могут привлечь внимание неискушенного Linux пользователя, только-только начавшего изучать Ubuntu:
FFmpeg доступен на Linux, Windows, Mac Os. И везде работает одинаково. Так что, если вы научились работать с FFmpeg под Windows, то точно так же его надо запускать и в Linux и наоборот.
FFmpeg абсолютно самодостаточен. Для того чтобы посмотреть фильм нет необходимости искать в сети, скачивать и устанавливать кодеки. Достаточно всего лишь одного файла (ffplay.exe), все кодеки содержатся внутри этого файла.
FFmpeg — бесплатный софт (лицензии GPL 2.0 и LGPL 2.1) и вы можете использовать его код в своих проектах, как в коммерческих, так и в свободно-распространяемых.
Из чего состоит FFmpeg
Как было уже сказано, FFmpeg — это набор программ. Что значит “набор программ”? Нужно все программы качать или можно по отдельности? Что там внутри? На эти вопросы мы сейчас и постараемся ответить.
Но для начала определимся с термином FFmpeg — это сокращенное от Fast Forward Mpeg. Когда говорим о FFmpeg, как о наборе программ, то первые две буквы «F» должны быть большие (FF).
Итак, FFmpeg состоит из следующих инструментов (tools): ffmpeg, ffplay, ffserver, ffprobe (заметьте, все с маленькой буквы). Для Windows это обычные exe файлы. Причем размер у них очень внушительный. Все дело в том, что все видео и аудио кодеки уже находятся внутри них. Если вам нужно посмотреть фильм, то просто скачайте из сети ffplay.exe, больше ничего не потребуется. Никаких инсталляторов, никаких кодеков, права Administrator не нужны. Скачали, разархивировали, можете приступать к просмотру фильма.
FFmpeg в Windows, размер каждого файла 38-39Mb, все кодеки скомпилированы и прилинкованы «внутрь» исполняемого файла.
ffmpeg
С помощью этой программы можно конвертировать видео из одного формата в другой. Склеивать несколько видеороликов в один. Разбирать видео на отдельные кадры (изображения), а потом склеивать обратно. Ускорять/замедлять, масштабировать, добавлять субтитры и несколько звуковых дорожек. И еще 100500 полезных действий.
Список доступных опций этой команды занимает 203 страницы:
Впечатляет, не так ли?
ffplay
Используется для просмотра фильмов. Если вы начинаете знакомство с FFmpeg с просмотра фильмов, то ffplay, то что вам нужно. На начальном этапе весь пакет FFmpeg для начинающих сводится к использованию лишь этой программы.
ffserver
Если вам вдруг захотелось создать свой видео хостинг похожий на YouTube, то используйте ffserver.
ffprobe
Волшебная программа, расскажет вам все о фильме, который вы скачали (формат, продолжительность, сколько звуковых дорожек и многое другое). Выдаст на экран столько информации о фильме, что потребуется полдня, чтобы все это прочитать.
Помимо четырех программ в пакет FFmpeg входит еще и набор свободно-распространяемых библиотек (из которых вышеприведенные программы и собраны):
В принципе, из-за этих библиотек весь проект FFmpeg и затевался, а программы уже так, бонусом пошли 🙂
Используя эти библиотеки вы можете создавать свои приложения по работе с мультимедиа контентом и даже потом продавать их. Написать свой видеоплеер или видеоконвертер не составит труда. В сети полно руководств и инструкций по использованию библиотек FFmpeg.
История
История развития FFmpeg так же богата, как и его содержимое. Начавшись в 2000 году она претерпела сильное потрясение в 2011, когда часть разработчиков решила создать свою собственную библиотеку по работе с медиа контентом, назвали они ее — Libav. Свое желание уйти из проекта они объяснили недовольством организацией проекта FFmpeg, где по сути вся власть находилась в руках одного человека и все решения принимал только он сам.
Сейчас Libav идет своим путем и никого не слушает. Код обновляется не так часто, как FFmpeg. Каждое обновление тщательно проверяется.
FFmpeg в долгу не остался и исправно, каждые два дня, забирает к себе в норку изменения в коде, сделанные командой Libav:-)
В настоящее время FFmpeg продолжает активно развиваться, как доказательство скриншот репозитария исходных кодов:
Установка
Пакет FFmpeg настолько популярен, что включен во многие дистрибутивы Linux по умолчанию. Если вы по какой-то причине не установили его сразу, то это можно сделать потом с помощью менеджера пакетов. Установка FFmpeg для начинающих не должна вызвать особых проблем. В зависимости от дистрибутива Linux, нужно будет выполнить ряд стандартных команд.
Ubuntu
CentOS
openSuSe
Windows
Самые свежие версии FFmpeg для Windows можно скачать с:
Два типа FFmpeg
Есть два вида в которых FFmpeg приходит на ваш компьютер:
1) static-build — в этом случае все кодеки, фильтры и утилиты вкомпилированы «внутрь» ffmpeg.exe (ffprobe.exe, ffplay.exe) и вам достаточно скачать только один из этих файлов, чтобы начать смотреть киношку (ffplay.exe). В этом случае размер исполняемого модуля сильно раздувается (до 39Mb). Зато очень удобно.
2) shared-build — здесь кодеки, фильтры и другие вспомогательные программки являются самостоятельными отдельными файлами, которые FFmpeg находит и по мере надобности подгружает. В этом случае размер исполняемого модуля всего 190Kb.
Если вы устанавливаете FFmpeg в Linux, то с вероятностью 99.9% будет установлен shared-build.
Лично я, предпочитаю static-build (не надо думать о других библиотеках). Чтобы получить static-build под Linux нужно собрать FFmpeg самому из исходников. Для начинающих пользователей Linux это может оказаться сложно.
А как смотреть кино?
Все понятно, но как фильмы-то смотреть? Как говорилось выше, ffplay (ffplay.exe — под Windows) является консольной программой, то есть у нее нет графического интерфейса. Для просмотра видео необходимо выполнить в командной строке:
после чего сразу начинает воспроизводиться фильм:
Для начинающего пользователя такой способ запуска фильма может показаться необычным. Но в этом-то вся и мощь ffplay. У него такое же огромное количество опций, как и у ffmpeg, которы помогут настроить картинку для самых взыскательных ценителей кино.
Если вы чувствуете себя неуверенно при работе с командной строкой Windows, то можете воспользоваться следующим способом. Захватите фильм мышкой и перетащите его на ffplay.exe, кино сразу же станет воспроизводиться.
Контроль за воспроизведением (краткий список команд):
q, ESC — выход,
f — полный экран (двойной клик левой кнопкой мыши),
p — поставить на паузу,
m — звук вкл/выкл,
9, 0 — звук прибавить/убавить,
t — переключение субтитров,
c — cycle program
s — покадровое перемещение по фильму,
стрелка влево/вправо — перемещение на 10 сек назад/вперед,
стрелка вниз/вверх — перемещение на 1 мин назад/вперед,
page down/page up — перемещение на 10 мин назад/вперед.
Графический интерфейс проигрывателя ffplay выглядит довольно аскетичным, вернее сказать его вообще нет. Отсутствуют привычные ползунки, кнопочки, менюшки присущие media player’ам с графическим интерфейсом. При работе с ffplay вы видите только сам фильм и какие-то непонятные цифры и слова мелькающие в окне терминала, как в фильме «Матрица». На самом деле управлять фильмом с клавиатуры просто и понятно, через несколько просмотров пальцы сами запомнят какие кнопки нужно нажимать.
Несколько примеров запуска ffplay с различными опциями:
Уменьшить изображение в 4 раза по ширине
Почистить видео от шума
Ускорение в 2 раза
А как перекодировать?
Перевести mpg в avi
Извлечь звук из видео и записать в формате MP3
Склеить звук и видео
Извлечь видеодорожку (без звука)
Изменить размер видео
Выбросить первые 45 секунд видео и оставить участок длительностью 40 секунд
Перекодировать WAV в MP3
Разложить видео на кадры (изображения)
Сделать видео из набора изображений
Заключение
Данная статья имеет целью познакомить читателя с мощнейшим набором программ FFmpeg. Дается краткое описание пакета FFmpeg. Приводятся примеры его использования для просмотра видео и для обработки (ковертиования) аудио и видео материалов.
Перечислена только малая часть возможностей пакета FFmpeg. Для первого ознакомления я думаю достаточно. Остались за кадром такие FFmpeg фичи, как многопроходное кодирование, фильтры и цепочки фильтров, связка с Avisynth, сборка FFmpeg со сторонними кодеками.
Задачей данной статьи было показать, что FFmpeg для начинающих пользователей Linux должен быть незаменимым инструментом при работе с media контентом. Не нужно бояться отсутствия GUI. Работа с аудио и видео из консоли тоже может быть очень эффективной.
Платформа для создания и проведения видеоконференций, вебинаров, автовебинаров, интерактивных досок, курсов, тестов и опросов
Инструкция по установке и работе с программой FFMPEG на Windows
Информация для тех, кто хотел бы научиться на своём компьютере/ноутбуке редактировать записи вебинаров через специальную программу!
Программа FFMPEG предназначена для конвертирования видео и аудио файлов через специальные команды в командной строке Вашего компьютера/ноутбука, благодаря которым возможно самостоятельно:
1. Изменить формат и качество записи;
2. Изменить разрешение и битрейт для видео и аудио;
3. Нарезать фрагменты записи на отдельные записи;
4. Замедлить и ускорить воспроизведение видео и аудио;
5. Склеить видео и аудио в единый файл;
6. Удалить аудио из видео, а также извлечь аудио из видео.
(Более подробную информацию см. в шаге №5).
С ЧЕГО НАЧАТЬ?
Шаг №1. Скачиваем программу на Windows
Для начала Вам необходимо перейти на официальный сайт разработчиков и скачать файл программы. Ссылка на скачивание программы: https://yadi.sk/d/_ybZxA8VN2pBmQ
Шаг №2. Установка программы
Этот шаг требует особого внимания, так как работа с FFMPEG происходит через командную строку, поэтому разберём по пунктам алгоритм установки FFMPEG:
1. Вы скачали архивный файл и Вам необходимо его открыть;
2. Открываем скачанный архивный файл и находим папку «bin», внутри которой располагается файл-приложение «ffmpeg.exe»;
Примечание! Если у Вас нет архиватора для открытия файла, то можно скачать архиватор WinRar на официальном сайте разработчиков.
Ссылка на скачивание: https://winrar-pro-download.com
3. Извлекаем файл «ffmpeg.exe» в заранее созданную папку «ffmpeg» на корневом диске (как правило, это диск «C»);
4. Далее заходим в проводник (иконка «лупа») и находим «Мой компьютер». Нажимаем на него правой кнопкой мыши и выбираем «свойства», после чего появится следующее окно:
5. Нажимаем на «Дополнительные параметры системы» и заходим в «переменные среды»;
6. Находим в окошке «системные примененные» пункт «Path», нажимаем «изменить»;
7. В появившемся окне нажимаем на кнопку «создать» и указываем путь к файлу ffmpeg. Для этого переходим в папку с ffmpeg и кликаем на строчку, выделенную красным (см. на картинке), после чего нажмите сочетание клавиш Ctrl+C;
8. После того, как нажали клавишу «Создать» (1), вставляем скопированное в строку (2) и нажимаем на «Ок» (3).
Шаг №3. Запускаем программу
1) Если вы используете ОС Windows10, то вам достаточно нажать на значок «поиск»(лупа) и ввести английскими буквами «cmd»:
(Прим. Если же Вы используете более ранние версии Windows (7,8), то Вам нужно зайти в меню «пуск» и строка «поиск» будет в самом низу).
2) Далее, заходим в командную строку и проверяем – работает ли программа. Для этого вводим: ffmpeg, после чего нажимаем кнопку Enter. Если Вы всё сделали правильно, у Вас будет примерно следующий отклик в командной строке:
(Прим. Если же у Вас появляются строки красного цвета, то вероятно – Вы сделали что-то не так. Попробуйте повторить алгоритм по новой).
Шаг №4. Используемые файлы
Для начала работы с видео-файлом необходимо, чтобы файл находился в директории доступных дисков. Например: имеется видео-файл «Testovii File.mp4». Я расположил его прямо на диск D.
Таким же образом разместите остальные файлы, с которыми вы собираетесь работать в ffmpeg.
Либо, если не хотите перетаскивать файл, вам нужно будет скопировать путь к файлу(об этом позже).
(Прим. Рекомендуется использовать английские буквы в названии файлов, с которыми собираетесь работать)
Теперь с файлами можно работать.
Запускаем командную строку. Как правило, по умолчанию в командной строке указан путь к корневой папке, например:
Чтобы начать обрабатывать файл, необходимо указать тот диск, где расположен нужный файл. В нашем случае, это Диск D. Для смены диска, в строке прописываем команду: D:
После чего нажимаем Enter и видим, что теперь у нас отображается Диск D:
Теперь мы можем начать работать с файлами. Любая команда начинается со слова ffmpeg в строке:
Шаг №5. Основные команды
1) Для того, чтобы перевести видео в другой видеоформат:
ffmpeg –i Z\input.avi output.mp4
(Прим. – Z\ — путь к файлу input.avi, пример: выбираем нужный файл в папке (1), кликаем на него, затем кликаем на строку с его расположение (2), и копируем правой кнопкой мышки; также следует помнить, что при попытке форматирования из более легкого файла(Mp4) в более тяжелый(avi) – полученный файл будет в более плохом качестве)
2) Для того, чтобы перевести видео в аудио:
ffmpeg –i Z\input.mp4 output.mp3
(Прим. – Если появляется красная строка при нажатии ENTER, то попробуйте поместить input.mp4 в Кавычки – «input.mp4»)
3) Для того, чтобы вырезать фрагмент из видео:
Способ : 1 – обрезать концовку.
Способ : 2 – вырезать кусок из любой точки.
Если появляется красная строка, то попробуйте поместить input.mp4 в Кавычки – «input.mp4»)
P.S Применимо как к видео, так и к аудио файлам!
4) Команда для склеивания пустого видео файла и аудио файла:
(Прим. Если вы используете разные по длительности файлы, то у них вседа будет совпадать начало, а длительность конечного файла будет равна самому длинному исходному файлу, пример:
Аудиофайл.mp3 – длительность 00:05:00 + Видеофайл.mp4 – длительность 00:03:00 = финальный файл.mp4 – длительность 00:05:00)
5) Команда для удаления аудио из видео:
6) Команда для ускорения/замедления видео:
(Прим. X больше 1 – замедление; X меньше 1 — ускорение)
7) Команда для ускорения/замедления аудио:
(Прим. X значение больше нуля – ускорение; X значение меньше нуля (0.5;0.8) – замедление)
8) Команда для ускорения/замедления файла с аудио и видео:
(Прим. X больше 1 – замедление; X меньше 1 – ускорение;
Y значение больше нуля – ускорение; Y значение меньше нуля (0.5;0.8) – замедление)
9) Для того, чтобы изменить параметр «качество»:
(Прим. X от 23 до 50, где 50 – минимальное качество; данная опция помогает уменьшить размер файла)
10) Для того, чтобы изменить Битрейт:
(Прим. Где 128k– цифра, обозначающая размер битрейта)
11) Для того, чтобы изменить разрешение видео:
(Прим. X – разрешение, например: «-s 800×600»)
Для общего сжатия видео:
В этой статье были рассмотрены:
— Способ установки ffmpeg для Windows
— Была представлена выжимка из самых распространённых команд, которая позволит использовать программу «ffmpeg» для решения, пусть не самых сложных, но всё-же возникающих задач.
Команды в программе ffmpeg не ограничиваются тем списком, что был представлен в данной статье. Как было сказано выше, в интернете существует более 200 страниц со всевозможными командами, призванными проводить манипуляции с видео\аудио-файлами, которыми, как правило, пользуются продвинутые пользователи.
Мы же предоставили краткий мануал по основным возможностям, и надеемся, что этот материал окажется полезным для наших пользователей!
FFmpeg и FFserver для Windows – краткая инструкция
История FFmpeg
В 2000 году программист с ником Gerard Lantau выложил для всеобщего использования исходники проекта FFmpeg. За годы концепция осталась прежней:
В то время 500 мегагерц в компьютере считались нормой, требовалась максимальная оптимизация, поэтому в FFmpeg своя реализация видеокодеков, оптимизированная для скорости. Это нужно и сейчас, особенно на серверах видеохостингов, где идёт постоянная борьба за снижение энергопотребления, чтобы процессоры не грелись.
FFmpeg прочно стоит на ногах – почти каждый день вносятся правки в исходный код. Добавляются новые компоненты. Например, плеер FFplay и утилита для получения информации FFprobe.
Где скачать FFmpeg и FFserver
FFmpeg разрабатывается под Linux. Если на сайте видите окошко с трансляцией видео – 9 шансов из 10, что оно работает благодаря FFmpeg и FFserver.
Версия FFmpeg (и FFserver) для Windows тоже существует, но часть функциональности будет недоступна. Впрочем, это не мешает работать видеоконвертеру MediaCoder (www.mediacoderhq.com) и плееру PotPlayer.
Версии для Linux найдете на ffmpeg.org, я же расскажу про FFmpeg для Windows. Она делится на две части: FFmpeg и FFserver.
FFmpeg для Windows вы найдете здесь: http://ffmpeg.zeranoe.com/builds/
На выбор есть 32- и 64-битные версии. Для кодирования видео выбирайте 64-битную Static-версию (ссылка вида “Download FFmpeg git-*** 64-bit Static“).
Если нужно организовать видеотрансляцию с, например, IP-видеокамеры, желательна 32-битная версия FFmpeg, с 64-битной я заметил проблемы – программа закрывалась сама по себе. Возможно, потому что FFserver для Windows – 32-битный, есть несовместимость.
FFserver на Windows тоже существует, хотя об этом мало кто знает. Программу трудно скомпилировать, потому что используется много специфичного для Linux кода. Разработчики системы видеонаблюдения Xeoma оказались молодцы, потому что выложили свой FFserver для Windows на своем сайте: http://felenasoft.com/xeoma/ru/ffserver/ Не забудьте скачать cygwin1.dll оттуда же.
Про FFserver в Интернете много инструкций. Они написаны на примере Linux-версии, но прекрасно работают под Windows. Единственное отличие – файл ffserver.conf должен лежать не в папке /etc, а в одной папке с ffserver.exe, cygwin1.dll и ffmpeg.exe.
Как установить FFmpeg
1. Скачайте по ссылке выше Static-версию. Это архив, для распаковки потребуется программа 7-zip (7-zip.org).
2. Создайте на диске C: папку ffmpeg и распакуйте туда архив.
Для установки ffmpeg этого достаточно. Советую выполнить пункт 4 для удобства в будущем.
3. Если нужно настроить трансляцию, в папку c:\ffmpeg\bin распакуйте ffserver и положите файлик cygwin1.dll.
4. Чтобы в командах не писать каждый раз полный путь к программе, можно добавить его в переменную PATH: Панель управления – Система – Дополнительные параметры системы – вкладка Дополнительно – Переменные среды – в конце строки переменной Path добавьте “;c:\ffmpeg\bin” без кавычек. Если там было пусто (что не совсем нормально), то “c:\ffmpeg\bin“, т.е. без точки с запятой в начале.
Потом перезагрузите компьютер, чтобы изменения вступили в силу.
Вы можете пропустить четвертый шаг, но потом вместо команд ffmpeg и ffserver придется писать полный путь “c:\ffmpeg\bin\ffmpeg.exe” и “c:\ffmpeg\bin\ffserver.exe”.
Как пользоваться FFmpeg
На главной странице FFmpeg красуется надпись:
Converting video and audio has never been so easy (Перевод: Никогда конвертирование видео и звука не было таким простым)
Человек, не знакомый с командной строкой, будет в ступоре. Куда вводить команду?
В папке ffmpeg\doc собрано много примеров по использованию компонентов, все команды можно посмотреть там.
Примеры
Имена файлов у вас будут свои. Если есть пробелы или на русском – обрамляйте имена в кавычки.
Отобразить информацию о файле:
или ffprobe video.mp4
Пережать видео avi в mp4:
Пережать mov в flv и изменить разрешение:
Пережать видео в webm среднего качества, звук формата OGG:
Пережать видео кодеком MPEG4, звук – mp3, контейнер – avi:
Сохранить звуковую дорожку из видео в отдельный файл:
Добавить звуковую дорожку к видео (“-acodec libmp3lame” можно выкинуть, тогда ffmpeg сам решит, как кодировать звук):
Добавить звуковую дорожку без перекодирования видео (сохраняет качество, работает быстро):
Пережать видео в формат
Сохранить кадр на второй секунде как отдельную картинку:
Убрать дрожание камеры и сохранить в out.mp4:
Структура
Как видно из примеров, команды ffmpeg имеют структуру:
Если не указывать опции кодирования, для результирующего файла ffmpeg будет пытаться использовать параметры исходного, чтобы сохранить максимум качества.
Команды
Информационные (чтобы узнать возможности установленной версии)
-L
Показать текст лицензии.
-version
Узнать версию ffmpeg.
-formats
Показать список доступных форматов контейнеров (не кодеков!).
В Windows не хватит строк в командной строке для показа всего списка, для исправления откройте свойства окна и на вкладке “Расположение” поставьте высоту буфера экрана в 500. В списке буквы D и E означают поддержку декодирования и кодирования.
-codecs
Список доступных кодеков. Кроме интуитивно понятных D и E (Decoder для “чтения” и Encoder для кодирования), видны следующие обозначения:
V – кодек для видео, A – для звуковых дорожек, S – субтитров, I – только для кодирования I-фреймов, L – кодек сжимает с потерями данных (большинство), S – без потери данных (сохраняет качество, сжимает слабо).
-bsfs
Показать поддерживаемые bitstream filters (фильтр потока данных), которые нужны в ряде случаев для правильной обработки потока данных.
-protocols
Показать доступные протоколы. Из выдаваемого списка понятно, что в качестве входных данных может использоваться RTMP поток (видеотрансляция) и многое другое, не только файлы. Как выходные – тоже.
-filters
Доступные фильтры видео и аудио. В FFmpeg их громадное количество. Кроме банальных поворота и настроек яркости, в FFmpeg есть расширение стереобазы, генерирование фракталов и прочее, прочее. Подробные инструкции – в doc/ffmpeg-filters.html.
-pix_fmts
Доступные цветовые форматы. FFmpeg понимает громадное количество цветовых пространств. Полезно для тех, у кого оборудование выдает странные цвета.
Основные опции
-loglevel значение или -v значение
Уровень логгирования. От минимума – quiet до максимально подробного debug. Полный список: quiet, panic, fatal, error, warning, info, verbose, debug. Полезно, если в процессе кодирования видео происходят ошибки и нужно узнать подробности.
-f значение (mp4, avi, mkv, gif и т.д.)
Указать определенный формат (контейнер) файла. Обычно FFmpeg выбирает по расширению выходного файла, но можно переназначить.
-i путь_до_файла
Команда для указания входящего файла или потока (например, rtmp://адрес для захвата потокового видео).
-y
Перезаписывать уже существующий выходной файл без запроса.
-ss время
Указывает, с какого времени нужно кодировать видео/аудио. Формат в виде “чч:мм:сс”. Подробнее: https://trac.ffmpeg.org/wiki/Seeking
-t время
Указать, до какого времени нужно кодировать видео/аудио. Вместе с предыдущей командой удобно использовать для вырезания отрезка видео.
-fs размер
Лимит выходного файла. Например, при -fs 10M кодирование останавливается, как только выходной файл станет 10 Мб размером. Поддерживаются K, M, G (килобайты, мегабайты и гигабайты).
Опции кодирования видео
-b значение
Устанавливает битрейт видео. Выше битрейт – лучше качество и больше размер файла. Указывайте в конце цифры K или M, чтобы программа понимала, в килобитах/сек или мегабитах/сек значение.
-vframes значение
Количество кадров, которые нужно кодировать.
-r значение
Указание частоты кадров.
-s размер
Указание, в каком разрешении кодировать видео. Например, 1920×1080 для FullHD видео на выходе. FFmpeg понимает буквенные сокращения (vga, hd480, hd720, hd1080 и другие).
-aspect соотношение_сторон
Указать соотношение сторон видео (4:3, 16:9 or 1.3333, 1.7777 и т.д.). Как известно профессионалам, в видео пиксели могут быть прямоугольными.
Обрезка количества пикселей видео сверху, снизу, слева или справа.
Добавление границы видео сверху, снизу, слева или справа.
-padcolor hex_color
Цвет границы в шестнадцатеричном формате (#000000 – черный, #FF0000 – красный и т.д.).
-vn
Не кодировать видео.
-bt значение
Значение задает максимальное отклонение от указанного битрейта. Может не работать, в зависимости от кодека.
-maxrate битрейт
-minrate битрейт
Минимальный битрейт у видео. Часто используется для принудительного задания определенного битрейта:
-bufsize размер
Устанавливает размер буфера видео. Упрощенно говоря, это кусок видео, который FFmpeg анализирует и выбирает – какие битрейты выбрать в его пределах. В первую очередь нужно для потокового вещания: чем больше буфер, тем больше стабильности при кодировании.
-vcodec кодек
Выбор кодека (см. команду -codecs для списка кодеков). Можно указать copy, тогда FFmpeg будет копировать видеопоток без перекодирования.
-sameq
Сохранять качество исходной картинки/звука. Это не то же самое, что -vcodec copy. Сохраняется качество видео, кодек может быть любым, видеодорожка перекодируется.
-pass n
Для многопроходного кодирования видео. Указывает, какой делать проход (1 или 2). Префикс имени файла со статистикой указывается командой -passlogfile значение.
Опции звука
-aframes количество
Сколько фреймов звука (да, у звука есть кадры!) нужно кодировать.
-ar частота
Указание частоты звука (по умолчанию 44100 Гц).
-ab битрейт
Битрейт (по умолчанию = 64K).
-aq значение
Указание качества (зависит от кодека, применяется при переменном битрейте).
-ac число
Количество аудиоканалов (по умолчанию 1).
Не кодировать звук.
-acodec кодек
Указание кодека для звука. Значение copy позволяет копировать звуковую дорожку без перекодирования
-newaudio
Субтитры
-scodec кодек
Кодек для субтитров (copy – для прямого копирования).
-newsubtitle
Добавление еще одних субтитров.
-slang код
Указание языка субтитров в стандарте ISO 639 (3 буквы).
Другие команды
-threads количество
Количество потоков для кодирования видео. Опцию следует применять только на многоядерных ПК и то с оглядкой, читая документацию к выбранному кодеку.
-vsync значение
Синхронизация кадров. Значения:
0 – каждый кадр передается из входного в результирующий файл с той меткой времени, которая у него была.
1 – кадры будут дублироваться или удаляться, чтобы сохранить требуемую частоту кадров.
2 – кадры будут пропускаться или удаляться, чтобы сохранить требуемую частоту кадров.
-1 – значение по умолчанию. FFmpeg выбирает сам между методами 1 и 2.
С помощью команды -map можно указать, что к чему будет подстраиваться. Подробности: https://trac.ffmpeg.org/wiki/Map
-async кадры_в_секунду
Выбор метода синхронизации звука. Чтобы звук и видео совпадали по времени, аудиодорожка может растягиваться и сжиматься. Значение 1 скорректирует звуковую дорожку только в самом начале по принципу “дальше будь что будет”.
-copyts
Применяется для принудительного копирования всех временных меток из исходного файла. Полезно в случае, если начало видео – не 00:00, а что-то другое и это нужно сохранить.
-shortest
Когда самый короткий входящий файл закончился, прекращение кодирования.
Еще команд?
Команды для FFmpeg смотрите здесь:
http://help.ubuntu.ru/wiki/ffmpeg (на русском).
https://ffmpeg.org/ffmpeg.html (официальная документация).
Для кодирования кодеком x264, который сейчас приобрел популярность, гляньте это:
http://wiki.rosalab.ru/ru/index.php/FFmpeg (на русском, есть примеры).
Почему команд так много?
Они нужны для полного контроля процесса обработки файлов с видео и звуком.
Большинство пользователей конвертируют видео, не понимая, что важен не только кодек для сжатия, но и его параметры. Есть нюансы, которые непросто осознать начинающим пользователям. Например, файл с расширением “mp4” не обязательно содержит в себе видео с кодеком MPEG4.
Если есть какие-то вопросы по FFmpeg – спрашивайте в комментариях. Помогу, чем смогу.