FFmpeg
Это команда ffmpeg, которую можно запустить в бесплатном хостинг-провайдере OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.
ПРОГРАММА:
ИМЯ
ffmpeg - конвертер видео ffmpeg
СИНТАКСИС
ffmpeg [global_options] {[input_file_options] -я входной_файл} ... {[выходные_файл_опции]
выходной файл} ...
ОПИСАНИЕ
FFmpeg - это очень быстрый видео- и аудиоконвертер, который также может извлекать из живого аудио / видео
источник. Он также может конвертировать между произвольными частотами дискретизации и изменять размер видео на лету.
с качественным многофазным фильтром.
FFmpeg читает из произвольного количества входных "файлов" (которые могут быть обычными файлами, каналами,
сетевые потоки, устройства захвата и т. д.), указанный параметром "-i", и записывает в
произвольное количество выходных «файлов», которые задаются простым выходным именем файла.
Все, что можно найти в командной строке, что нельзя интерпретировать как параметр, считается
быть выходным именем файла.
Каждый входной или выходной файл, в принципе, может содержать любое количество потоков разных
типы (видео / аудио / субтитры / вложения / данные). Допустимое количество и / или типы потоков
может быть ограничен форматом контейнера. Выбор потоков из каких входов будет идти
в который вывод выполняется либо автоматически, либо с помощью опции «-map» (см. Stream
раздел выбора).
Чтобы ссылаться на входные файлы в параметрах, вы должны использовать их индексы (начиная с 0). Например, первый
входной файл - 0, второй - 1 и т. д. Точно так же потоки внутри файла называются
их индексы. Например, «2: 3» относится к четвертому потоку в третьем входном файле. Также см
главу "Спецификаторы потока".
Как правило, параметры применяются к следующему указанному файлу. Следовательно, порядок
важно, и вы можете использовать один и тот же параметр в командной строке несколько раз. Каждый
Затем вхождение применяется к следующему входному или выходному файлу. Исключения из этого правила
- это глобальные параметры (например, уровень детализации), которые следует указать в первую очередь.
Не смешивайте файлы ввода и вывода - сначала укажите все файлы ввода, затем все файлы вывода.
Также не смешивайте параметры, принадлежащие разным файлам. Все параметры применимы ТОЛЬКО к
следующий входной или выходной файл и сбрасываются между файлами.
· Чтобы установить битрейт видео выходного файла на 64 кбит / с:
ffmpeg -i input.avi -b: v 64k -bufsize 64k output.avi
· Чтобы установить частоту кадров выходного файла 24 кадра в секунду:
ffmpeg -i input.avi -r 24 выходной.avi
· Чтобы установить частоту кадров входного файла (действительно только для необработанных форматов) на 1 кадр / с и
частота кадров выходного файла до 24 кадров в секунду:
ffmpeg -r 1 -i input.m2v -r 24 выходной.avi
Параметр формата может потребоваться для необработанных входных файлов.
ДОП ОПИСАНИЕ
Процесс перекодирования в FFmpeg для каждого выхода можно описать следующие
диаграмма:
_______ ______________
| | | |
| ввод | демультиплексор | закодированные данные | декодер
| файл | ---------> | пакеты | ----- +
| _______ | | ______________ | |
v
_________
| |
| расшифровано |
| кадры |
| _________ |
________ ______________ |
🇧🇷 🇧🇷 🇧🇷 🇧🇷 🇧🇷
| выход | <-------- | закодированные данные | <---- +
| файл | мультиплексор | пакеты | кодировщик
| ________ | | ______________ |
FFmpeg вызывает библиотеку libavformat (содержащую демультиплексоры) для чтения входных файлов и получения
пакеты, содержащие из них закодированные данные. Когда есть несколько входных файлов, FFmpeg
пытается сохранить их синхронизацию, отслеживая самую низкую временную метку на любом активном входном потоке.
Затем закодированные пакеты передаются декодеру (если для
поток, см. описание далее). Декодер выдает несжатые кадры (raw
видео / аудио PCM / ...), которые могут быть обработаны с помощью фильтрации (см. следующий раздел). После
при фильтрации кадры передаются кодировщику, который их кодирует и выводит в закодированном виде
пакеты. Наконец, они передаются мультиплексору, который записывает закодированные пакеты в
выходной файл.
фильтрация
Перед кодированием FFmpeg может обрабатывать необработанные аудио- и видеокадры, используя фильтры из
Библиотека libavfilter. Несколько связанных фильтров образуют граф фильтров. FFmpeg отличает
между двумя типами фильтрграфов: простыми и сложными.
просто графы фильтров
Простые графы фильтров - это те, у которых есть ровно один вход и выход, оба одинаковые
тип. На приведенной выше диаграмме их можно представить, просто добавив дополнительный шаг.
между декодированием и кодированием:
_________ ______________
| | | |
| расшифровано | | закодированные данные |
| кадры | \ _ | пакеты |
| _________ | \ / || ______________ |
\ __________ /
простой _ \ || | / кодировщик
filtergraph | фильтруется | /
| кадры |
| __________ |
Простые графы фильтров настраиваются для каждого потока -фильтр вариант (с -vf и -af
псевдонимы для видео и аудио соответственно). Простой графический фильтр для видео может искать
пример вроде этого:
_______ _____________ _______ ________
| | | | | | | |
| ввод | ---> | деинтерлейсинг | ---> | масштаб | ---> | выход |
| _______ | | _____________ | | _______ | | ________ |
Обратите внимание, что некоторые фильтры изменяют свойства кадра, но не содержимое кадра. Например, "fps"
фильтр в приведенном выше примере изменяет количество кадров, но не касается кадра
содержание. Другой пример - фильтр "setpts", который устанавливает только временные метки, в противном случае
передает кадры без изменений.
Комплекс графы фильтров
Сложные графы фильтров - это те, которые нельзя описать как простую линейную обработку.
цепочка применена к одному потоку. Это имеет место, например, когда на графике больше, чем
один вход и / или выход, или когда тип выходного потока отличается от входного. Они могут быть
представлен на следующей диаграмме:
_________
| |
| ввод 0 | \ __________
| _________ | \ | |
\ _________ / | выход 0 |
\ | | / | __________ |
_________ \ | комплекс | /
| | | | /
| вход 1 | ----> | фильтр | \
| _________ | | | \ __________
/ | график | \ | |
/ | | \ | вывод 1 |
_________ / | _________ | | __________ |
| | /
| вход 2 | /
| _________ |
Сложные графы фильтров настраиваются с помощью -filter_complex вариант. Обратите внимание, что это
опция является глобальной, поскольку сложный граф фильтра по своей природе не может быть однозначно
связаны с одним потоком или файлом.
В начале этого месяца -лавфи вариант эквивалентен -filter_complex.
Тривиальным примером сложного графа фильтров является «оверлейный» фильтр, который имеет два видео
входы и один видеовыход, содержащий одно видео, наложенное поверх другого. Его аудио
аналог - фильтр "amix".
Поток копия
Копирование потока - это режим, который выбирается путем передачи параметра «копировать» в -кодек вариант. Это
создает FFmpeg опускает этап декодирования и кодирования для указанного потока, поэтому выполняется только
демультиплексирование и мультиплексирование. Это полезно для изменения формата контейнера или модификации
метаданные на уровне контейнера. Приведенная выше диаграмма в этом случае упрощается до следующего:
_______ ______________ ________
| | | | | |
| ввод | демультиплексор | закодированные данные | мультиплексор | выход |
| файл | ---------> | пакеты | -------> | файл |
| _______ | | ______________ | | ________ |
Поскольку нет декодирования или кодирования, это очень быстро и без потери качества.
Однако в некоторых случаях это может не сработать по многим причинам. Применение фильтров - это
очевидно, также невозможно, поскольку фильтры работают с несжатыми данными.
STREAM ВЫБОР
По умолчанию FFmpeg включает только один поток каждого из имеющихся типов (видео, аудио, субтитры)
во входных файлах и добавляет их в каждый выходной файл. Он выбирает «лучшее» из каждого на основе
по следующим критериям: для видео это поток с самым высоким разрешением, для
audio, это поток с наибольшим количеством каналов, для субтитров это первый субтитр
ручей. В случае, если несколько потоков одного типа имеют одинаковую скорость, поток с
выбирается самый низкий индекс.
Вы можете отключить некоторые из этих значений по умолчанию, используя параметры «-vn / -an / -sn». Для полного руководства
control, используйте опцию «-map», которая отключает только что описанные значения по умолчанию.
ДОПОЛНИТЕЛЬНЫЕ УСЛУГИ, НЕ ВКЛЮЧЕННЫЕ В ПАКЕТ
Все числовые параметры, если не указано иное, принимают строку, представляющую
число в качестве входных данных, за которым может следовать один из префиксов единиц СИ, например: 'K',
«M» или «G».
Если к префиксу единицы СИ добавляется буква i, полный префикс будет интерпретироваться как
префикс единицы для двоичных кратных, которые основаны на степенях 1024 вместо степеней
1000. Добавление буквы «B» к префиксу единицы СИ умножает значение на 8. Это позволяет использовать,
например: «KB», «MiB», «G» и «B» в качестве числовых суффиксов.
Параметры, не принимающие аргументов, являются логическими параметрами и устанавливают соответствующее значение.
к истине. Для них можно установить значение false, поставив перед именем параметра префикс «нет». Например
использование "-nofoo" установит для логической опции с именем "foo" значение false.
Поток спецификаторы
Некоторые параметры применяются к потоку, например, битрейт или кодек. Спецификаторы потока используются для
точно указать, к какому потоку (-ам) принадлежит данная опция.
Спецификатор потока - это строка, обычно добавляемая к имени опции и отделяемая от него.
двоеточием. Например, "-codec: a: 1 ac3" содержит спецификатор потока "a: 1", который соответствует
второй аудиопоток. Следовательно, для второго аудиопотока будет выбран кодек ac3.
Спецификатор потока может соответствовать нескольким потокам, поэтому параметр применяется ко всем из
их. Например, спецификатор потока в "-b: a 128k" соответствует всем аудиопотокам.
Описатель пустого потока соответствует всем потокам. Например, «-codec copy» или «-codec:
copy "скопирует все потоки без перекодирования.
Возможные формы спецификаторов потока:
поток_индекс
Соответствует потоку с этим индексом. Например, "-threads: 1 4" установит количество потоков для
второй поток на 4.
тип_потока[:поток_индекс]
тип_потока может быть одним из следующих: 'v' или 'V' для видео, 'a' для аудио, 's' для
подзаголовок, «d» для данных и «t» для вложений. 'v' соответствует всем видеопотокам, 'V'
соответствует только видеопотокам, к которым не прикреплены изображения, эскизы видео или обложка
искусства. Если поток_индекс задается, тогда он соответствует номеру потока поток_индекс этого
тип. В противном случае он соответствует всем потокам этого типа.
p:идентификатор_программы[:поток_индекс]
If поток_индекс задан, то он соответствует потоку с номером поток_индекс в
программа с идентификатором идентификатор_программы. В противном случае он соответствует всем потокам в программе.
#поток_ид or i:поток_ид
Сопоставьте поток по идентификатору потока (например, PID в контейнере MPEG-TS).
m:ключ[:ценностное ]
Соответствует потокам с тегом метаданных ключ имеющий указанное значение. Если ценностное Не
Данный, сопоставляет потоки, содержащие данный тег, с любым значением.
u Соответствует потокам с используемой конфигурацией, кодек должен быть определен, а основные
должна присутствовать такая информация, как размер видео или частота дискретизации звука.
Обратите внимание, что в FFmpeg, сопоставление по метаданным будет правильно работать только для входных файлов.
Общий кредита
Эти параметры используются в инструментах ff *.
-L Показать лицензию.
-час, - ?, -помощь, --Помогите [аргумент]
Покажи справку. Необязательный параметр может быть указан для вывода справки по конкретному элементу.
Если аргумент не указан, отображаются только базовые (не расширенные) параметры инструмента.
Возможные значения аргумент составляют:
длинной
Печать дополнительных параметров инструмента в дополнение к основным параметрам инструмента.
полный
Распечатать полный список опций, включая общие и частные опции для кодировщиков,
декодеры, демультиплексоры, мультиплексоры, фильтры и т. д.
декодер =имя_декодера
Распечатать подробную информацию о названном декодере имя_декодера, Использовать -декодеры
возможность получить список всех декодеров.
кодировщик =Encoder_name
Распечатать подробную информацию о названном кодировщике Encoder_name, Использовать -энкодеры
возможность получить список всех кодировщиков.
демультиплексор =имя_демультиплексора
Вывести подробную информацию о демультиплексоре с именем имя_демультиплексора, Использовать -форматы
возможность получить список всех демультиплексоров и мультиплексоров.
muxer =имя_мультиплексора
Распечатать подробную информацию о мультиплексоре с именем имя_мультиплексора, Использовать -форматы
возможность получить список всех мультиплексоров и демультиплексоров.
фильтр =имя_фильтра
Распечатать подробную информацию о названии фильтра имя_фильтра, Использовать -фильтры
возможность получить список всех фильтров.
-версия
Показать версию.
-форматы
Показать доступные форматы (включая устройства).
-devices
Показать доступные устройства.
-кодеки
Показать все кодеки, известные libavcodec.
Обратите внимание, что термин «кодек» используется в этой документации как сокращение для
то, что более правильно называется форматом битового потока мультимедиа.
-декодеры
Показать доступные декодеры.
-энкодеры
Показать все доступные кодировщики.
-bsfs
Показать доступные фильтры битового потока.
-протоколы
Показать доступные протоколы.
-фильтры
Показать доступные фильтры libavfilter.
-pix_fmts
Показать доступные форматы пикселей.
-sample_fmts
Показать доступные образцы форматов.
-разметки
Показывать названия каналов и стандартные макеты каналов.
-цвета
Показать распознанные названия цветов.
-sources устройство[,опт1=val1[,опт2=val2] ...]
Показать автоматически обнаруженные источники входного устройства. Некоторые устройства могут предоставлять системные
имена зависимых источников, которые не могут быть обнаружены автоматически. Возвращенный список не может быть
предполагается всегда быть полным.
ffmpeg -sources pulse, server = 192.168.0.4
- раковины устройство[,опт1=val1[,опт2=val2] ...]
Показать автоматически обнаруженные приемники выходного устройства. Некоторые устройства могут предоставлять системные
имена зависимых приемников, которые не могут быть обнаружены автоматически. Возвращенный список не может быть принят
быть всегда полным.
ffmpeg -sinks pulse, server = 192.168.0.4
-логуровень [повтор +]уровень журнала | -v [повтор +]уровень журнала
Установите уровень ведения журнала, используемый библиотекой. Добавление "repeat +" означает, что повторяется
вывод журнала не должен сжиматься до первой строки, а "Последнее сообщение повторяется n
times "строка будет опущена." repeat "также можно использовать отдельно. Если используется" repeat "
в одиночку и без предварительной установки уровня журнала будет использоваться уровень журнала по умолчанию. Если несколько
Приведены параметры loglevel, использование «повторения» не изменит уровень журналирования. уровень журнала
является строкой или числом, содержащим одно из следующих значений:
тихий, -8
Вообще ничего не показывать; Молчи.
паника, 0
Показывать только фатальные ошибки, которые могут привести к сбою процесса, например, assert
отказ. В настоящее время это ни для чего не используется.
фатальный 8
Показывать только фатальные ошибки. Это ошибки, после которых процесс абсолютно не может
продолжить после.
ошибка, 16
Показать все ошибки, в том числе те, которые можно исправить.
предупреждение, 24
Показать все предупреждения и ошибки. Любое сообщение, связанное с возможно неправильным или
будут показаны неожиданные события.
Информация, 32
Показывать информативные сообщения во время обработки. Это помимо предупреждений и
ошибки. Это значение по умолчанию.
подробный, 40
То же, что и "info", только более подробное.
отлаживать, 48
Показать все, включая отладочную информацию.
след, 56
По умолчанию программа регистрируется в stderr, если окраска поддерживается терминалом,
цвета используются для обозначения ошибок и предупреждений. Раскрашивание журнала можно отключить, установив
переменная среды AV_LOG_FORCE_NOCOLOR or НЕТ_COLOR, или может быть принудительно установлен
переменная среды AV_LOG_FORCE_COLOR. Использование переменной окружения НЕТ_COLOR
устарел и будет удален в следующей версии FFmpeg.
-report
Дамп полной командной строки и вывода консоли в файл с именем
"программа-ГГГГММДД-ЧЧММСС.log " в текущем каталоге. Этот файл может быть полезен для
отчеты об ошибках. Это также подразумевает «подробный словарь».
Установка переменной окружения FREPORT к любому значению имеет тот же эффект. Если
значение представляет собой последовательность ключ = значение, разделенную ':', эти параметры будут влиять на отчет;
значения параметров должны быть экранированы, если они содержат специальные символы или параметры
delimiter ':' (см. раздел `` Цитирование и экранирование '' в руководстве ffmpeg-utils).
Распознаются следующие варианты:
файл
установить имя файла для использования в отчете; % p заменяется на имя
программа,% t заменяется меткой времени, "%%" заменяется на простой "%"
уровень
установить уровень детализации журнала с помощью числового значения (см. «-loglevel»).
Например, чтобы вывести отчет в файл с именем ffreport.log с использованием уровня журнала 32
(псевдоним для уровня журнала "информация"):
FFREPORT = file = ffreport.log: level = 32 ffmpeg -i input output
Ошибки при разборе переменной окружения не фатальны и не отображаются в
сообщить.
-hide_banner
Подавить печать баннера.
Все инструменты FFmpeg обычно показывают уведомление об авторских правах, параметры сборки и библиотеку.
версии. Этот параметр можно использовать для подавления печати этой информации.
-cpuflags Флаги (Глобальный)
Позволяет устанавливать и очищать флаги процессора. Этот вариант предназначен для тестирования. Не используйте
это, если вы не знаете, что делаете.
ffmpeg -cpuflags -sse + mmx ...
ffmpeg -cpuflags ммх...
ffmpeg -cpuflags 0 ...
Возможные флаги для этой опции:
x86
MMX
mmxext
SSE
sse2
sse2slow
sse3
sse3slow
сссе3
атом
sse4.1
sse4.2
avx
avx2
ХОР
fma3
fma4
3dnow
3dnowext
ИМТ1
ИМТ2
смов
ARM
Armv5te
ARMv6
Armv6t2
ВФП
vfpv3
неоновый
сидеть
AAArch64
ARMv8
ВФП
неоновый
PowerPC
альтивек
Конкретный Процессоры
Pentium2
Pentium3
Pentium4
k6
k62
Athlon
Athlonxp
k8
-opencl_bench
Эта опция используется для тестирования всех доступных устройств OpenCL и печати результатов.
Эта опция доступна, только если FFmpeg скомпилирован с помощью "--enable-opencl".
Когда FFmpeg настроен с помощью "--enable-opencl", параметры для глобального OpenCL
контекст устанавливаются через -opencl_options. См. Раздел «Параметры OpenCL» в ffmpeg-
руководство по утилите для получения полного списка поддерживаемых опций. Среди прочего, эти параметры
включить возможность выбора конкретной платформы и устройства для запуска кода OpenCL
на. По умолчанию FFmpeg запускается на первом устройстве первой платформы. В то время как
опции для глобального контекста OpenCL предоставляют пользователю гибкость при выборе
Устройство OpenCL по своему выбору, большинство пользователей, вероятно, захотят выбрать самое быстрое
Устройство OpenCL для своей системы.
Эта опция помогает выбрать наиболее эффективную конфигурацию, определяя
соответствующее устройство для системы пользователя. Встроенный тест выполняется на всех
Устройства OpenCL и производительность измеряется для каждого устройства. Устройства в
список результатов отсортирован в зависимости от их производительности с указанием самого быстрого устройства
первый. Пользователь может впоследствии вызвать FFmpeg использование устройства считается наиболее
соответствующий через -opencl_options чтобы получить лучшую производительность для OpenCL
ускоренный код.
Типичное использование самого быстрого устройства OpenCL включает следующие шаги.
Выполните команду:
ffmpeg -opencl_bench
Запишите идентификатор платформы (пидкс) и ID устройства (дидкс) первого, то есть самого быстрого устройства
в списке. Выберите платформу и устройство с помощью команды:
ffmpeg -opencl_options platform_idx = : device_idx = ...
-opencl_options кредита (Глобальный)
Установите параметры среды OpenCL. Эта опция доступна, только если FFmpeg был
скомпилирован с помощью "--enable-opencl".
кредита должен быть список ключ=ценностное пары опций, разделенные знаком ":". См. Документ OpenCL
Параметры '' в руководстве по ffmpeg-utils для получения списка поддерживаемых параметров.
AVОпции
Эти параметры предоставляются напрямую libavformat, libavdevice и libavcodec.
библиотеки. Чтобы увидеть список доступных AVOptions, используйте -Помощь вариант. Они есть
разделены на две категории:
родовой
Эти параметры можно установить для любого контейнера, кодека или устройства. Общие варианты:
перечислены в параметрах AVFormatContext для контейнеров / устройств и в разделе AVCodecContext
варианты кодеков.
частная
Эти параметры зависят от конкретного контейнера, устройства или кодека. Частные варианты
перечислены в соответствующих им контейнерах / устройствах / кодеках.
Например, чтобы записать заголовок ID3v2.3 вместо ID3v2.4 по умолчанию в файл MP3, используйте
id3v2_версия частная опция мультиплексора MP3:
ffmpeg -i input.flac -id3v2_version 3 out.mp3
Все AVOptions кодека относятся к потоку, поэтому спецификатор потока должен быть прикреплен к
их.
Обратите внимание -опция синтаксис не может использоваться для логических AVOptions, используйте -Option 0/-Option 1.
Примечание: старый недокументированный способ указания AVOptions для каждого потока путем добавления v / a / s к
имя параметров устарело и скоро будет удалено.
Главная кредита
-f FMT (ввод, вывод)
Принудительный формат входного или выходного файла. Формат обычно автоматически определяется для ввода
файлы и угадываются по расширению файла для выходных файлов, поэтому этот параметр не
нужен в большинстве случаев.
-i имя файла (вход)
имя входного файла
-y (Глобальный)
Перезаписывать выходные файлы без запроса.
-n (Глобальный)
Не перезаписывать выходные файлы и немедленно выйти, если указанный выходной файл уже
существует.
-c [:поток_спецификатор] кодер-декодер (ввод / вывод, на поток)
-codec [:поток_спецификатор] кодер-декодер (ввод / вывод, на поток)
Выберите кодировщик (при использовании перед выходным файлом) или декодер (при использовании до
входной файл) для одного или нескольких потоков. кодер-декодер это имя декодера / кодировщика или
специальное значение «копировать» (только вывод), чтобы указать, что поток не должен быть повторно
закодировано.
Например
ffmpeg -i INPUT -map 0 -c: v libx264 -c: копия ВЫХОДА
кодирует все видеопотоки с помощью libx264 и копирует все аудиопотоки.
Для каждого потока применяется последняя совпадающая опция "c", поэтому
ffmpeg -i INPUT -map 0 -c copy -c: v: 1 libx264 -c: a: 137 libvorbis ВЫХОД
скопирует все потоки, кроме второго видео, которое будет закодировано с помощью libx264,
и 138-й звук, который будет закодирован с помощью libvorbis.
-t продолжительность (ввод, вывод)
При использовании в качестве параметра ввода (перед "-i") ограничьте продолжительность данных, прочитанных из
входной файл.
При использовании в качестве параметра вывода (перед именем файла вывода) прекратить запись вывода
после того, как его продолжительность достигнет продолжительность.
продолжительность должно быть указанием продолжительности времени, см. Время продолжительность . in
ffmpeg-утилиты(1) руководство.
-to и -t являются взаимоисключающими, а -t имеет приоритет.
-в должность (выходной)
Прекратить писать вывод в должность. должность должно быть указанием продолжительности времени,
посмотреть Время продолжительность . in ffmpeg-утилиты(1) руководство.
-to и -t являются взаимоисключающими, а -t имеет приоритет.
-фс limit_size (выходной)
Установите ограничение на размер файла, выраженное в байтах.
-ss должность (ввод, вывод)
При использовании в качестве параметра ввода (перед "-i") ищет в этом входном файле должность. Заметка
что в большинстве форматов невозможно точно искать, поэтому FFmpeg будет стремиться к
ближайшая точка поиска до должность. При перекодировании и -accurate_seek включен
(по умолчанию), этот дополнительный сегмент между точкой поиска и должность будет декодирован
и выбросили. При копировании потока или когда -noaccurate_seek используется, это будет
сохранились.
При использовании в качестве параметра вывода (перед именем файла вывода) декодирует, но отбрасывает ввод
пока метки времени не достигнут должность.
должность должно быть указанием продолжительности времени, см. Время продолжительность . in
ffmpeg-утилиты(1) руководство.
-ссеоф должность (ввод, вывод)
Аналогично опции «-ss», но относительно «конца файла». То есть отрицательные значения
ранее в файле 0 находится в EOF.
-itoffset смещение (вход)
Установите смещение времени ввода.
смещение должно быть указанием продолжительности времени, см. Время продолжительность . in
ffmpeg-утилиты(1) руководство.
Смещение добавляется к отметкам времени входных файлов. Указание положительного смещения
означает, что соответствующие потоки задерживаются на время, указанное в
смещение.
-метка времени даты (выходной)
Установите отметку времени записи в контейнере.
даты должна быть указана дата, см. Время . in ffmpeg-утилиты(1) руководство.
-metadata [: спецификатор_метаданных] ключ=ценностное (вывод, по метаданным)
Установите пару ключ / значение метаданных.
Необязательный метаданные_спецификатор может быть предоставлен для установки метаданных в потоках или главах.
См. Документацию "-map_metadata" для деталей.
Эта опция переопределяет метаданные, установленные с помощью "-map_metadata". Также возможно удалить
метаданные с использованием пустого значения.
Например, для установки заголовка в выходном файле:
ffmpeg -i in.avi -metadata title = "мой заголовок" out.flv
Чтобы установить язык первого аудиопотока:
ffmpeg -i INPUT -metadata: s: a: 0 language = eng ВЫВОД
-целевой напишите (выходной)
Укажите тип целевого файла («vcd», «svcd», «dvd», «dv», «dv50»). напишите может быть префиксом
с «pal-», «ntsc-» или «film-» для использования соответствующего стандарта. Все в формате
параметры (битрейт, кодеки, размеры буфера) затем устанавливаются автоматически. Вы можете просто ввести:
ffmpeg -i myfile.avi -целевой vcd /tmp/vcd.mpg
Тем не менее вы можете указать дополнительные параметры, если знаете, что они не
противоречит стандарту, например:
ffmpeg -i myfile.avi -целевой vcd -bf 2 /tmp/vcd.mpg
-dframes номер (выходной)
Установите количество кадров данных для вывода. Это псевдоним для «-frames: d».
-frames [:поток_спецификатор] количество кадров (вывод, на поток)
Прекратить запись в поток после количество кадров кадры.
-q [:поток_спецификатор] q (вывод, на поток)
-qscale [:поток_спецификатор] q (вывод, на поток)
Используйте фиксированную шкалу качества (VBR). Значение q/масштаб зависит от кодека. Если масштаб
используется без поток_спецификатор то это относится только к видеопотоку, это
для обеспечения совместимости с предыдущим поведением и указанием того же кодека
конкретное значение для 2 разных кодеков, то есть аудио и видео, как правило, не то, что
предназначен, когда не используется stream_specifier.
-фильтр[:поток_спецификатор] фильтрграф (вывод, на поток)
Создайте фильтрграф, указанный фильтрграф и используйте его для фильтрации потока.
фильтрграф - описание графа фильтров, применяемого к потоку, и должно иметь
один вход и один выход одного и того же типа потока. В графе фильтров
вход связан с меткой «вход», а выход - с меткой «выход». Увидеть
Руководство по ffmpeg-filters для получения дополнительной информации о синтаксисе графа фильтров.
Смотрите пост в -filter_complex вариант если вы хотите создать графы фильтров с несколькими входами
и / или выходы.
-filter_script [:поток_спецификатор] имя файла (вывод, на поток)
Этот вариант похож на -фильтр, с той лишь разницей, что его аргументом является
имя файла, из которого следует прочитать описание графа фильтра.
-pre [:поток_спецификатор] имя_настройки (вывод, на поток)
Укажите предустановку для совпадающего потока (ов).
-статистика (Глобальный)
Прогресс / статистика кодирования печати. По умолчанию он включен, чтобы явно отключить его, вы
необходимо указать "-nostats".
-прогресс URL (Глобальный)
Отправляйте удобную для программы информацию о прогрессе на адрес URL.
Информация о прогрессе пишется примерно каждую секунду и в конце
процесс кодирования. Оно сделано из "ключ=ценностное "линии. ключ состоит только из буквенно-цифровых
символы. Последним ключом в последовательности информации о ходе выполнения всегда является «прогресс».
-стдин
Включить взаимодействие при стандартном вводе. По умолчанию включен, если стандартный ввод не используется как
вход. Чтобы явно отключить взаимодействие, вам нужно указать «-nostdin».
Отключение взаимодействия со стандартным вводом полезно, например, если ffmpeg находится в
группа фоновых процессов. Примерно того же результата можно достичь с помощью "ffmpeg ...
/ dev / null ", но для этого требуется оболочка.
-debug_ts (Глобальный)
Распечатать информацию о метке времени. По умолчанию он выключен. Эта опция в основном полезна для
в целях тестирования и отладки, а формат вывода может меняться от одной версии к другой.
другой, поэтому его не следует использовать в переносимых скриптах.
См. Также параметр «-fdebug ts».
-прикреплять имя файла (выходной)
Добавьте вложение к выходному файлу. Это поддерживается несколькими форматами, такими как Matroska.
например, шрифты, используемые при рендеринге субтитров. Вложения реализованы в виде специфических
тип потока, поэтому этот параметр добавит в файл новый поток. Тогда возможно
использовать параметры каждого потока в этом потоке обычным образом. Созданы потоки прикрепленных файлов
с этой опцией будут созданы после всех других потоков (т. е. тех, которые созданы с
"-map" или автоматические сопоставления).
Обратите внимание, что для Matroska вам также необходимо установить тег метаданных mimetype:
ffmpeg -i INPUT -attach DejaVuSans.ttf -metadata: s: 2 mimetype = application / x-truetype-font out.mkv
(при условии, что поток вложений будет третьим в выходном файле).
-dump_attachment [:поток_спецификатор] имя файла (ввод, на поток)
Извлеките соответствующий поток вложений в файл с именем имя файла. Если имя файла is
пусто, то будет использоваться значение тега метаданных "имя файла".
Например, чтобы извлечь первое вложение в файл с именем out.ttf:
ffmpeg -dump_attachment: t: 0 out.ttf -i INPUT
Чтобы извлечь все вложения в файлы, определенные тегом "имя файла":
ffmpeg -dump_attachment: t "" -i ВХОД
Техническое примечание - вложения реализованы как дополнительные данные кодека, поэтому эта опция может
фактически использоваться для извлечения дополнительных данных из любого потока, а не только из вложений.
-нет автоповорота
Отключите автоматический поворот видео на основе метаданных файла.
Видео Опции
-vframes номер (выходной)
Установите количество видеокадров для вывода. Это псевдоним для «-frames: v».
-р[:поток_спецификатор] кадров в секунду (ввод / вывод, на поток)
Установите частоту кадров (значение в Гц, дробь или аббревиатуру).
В качестве варианта ввода игнорируйте любые временные метки, хранящиеся в файле, и вместо этого генерируйте
временные метки, предполагающие постоянную частоту кадров кадров в секунду. Это не то же самое, что -частота кадров
параметр, используемый для некоторых форматов ввода, таких как image2 или v4l2 (раньше он был таким же в
старые версии FFmpeg). В случае сомнений используйте -частота кадров вместо опции ввода -r.
В качестве варианта вывода дублируйте или отбрасывайте входные кадры для достижения постоянного выходного кадра.
скорость кадров в секунду.
-s [:поток_спецификатор] размер (ввод / вывод, на поток)
Установите размер кадра.
В качестве варианта ввода это ярлык для размер видео частный опцион, признанный
некоторыми демультиплексорами, размер кадра которых либо не хранится в файле, либо
настраиваемый - например, сырое видео или видео грабберы.
В качестве варианта вывода он вставляет "масштабный" видеофильтр в конец
соответствующий фильтрграф. Пожалуйста, используйте фильтр "масштаб", чтобы вставить его в
начало или другое место.
Формат ШхВ (по умолчанию - то же, что и исходный).
-aspect [:поток_спецификатор] внешний вид (вывод, на поток)
Установите соотношение сторон дисплея видео, указанное внешний вид.
внешний вид может быть числовой строкой с плавающей запятой или строкой в форме Num:день, Где
Num и день - числитель и знаменатель соотношения сторон. Например "4: 3",
«16: 9», «1.3333» и «1.7777» являются допустимыми значениями аргументов.
Если используется вместе с -вкодек копия, это повлияет на соотношение сторон, сохраненное в
уровень контейнера, но не соотношение сторон, сохраненное в закодированных кадрах, если оно существует.
-вн (выходной)
Отключить запись видео.
-вкодек кодер-декодер (выходной)
Установите видеокодек. Это псевдоним для "-codec: v".
-проходят[:поток_спецификатор] n (вывод, на поток)
Выберите номер пропуска (1 или 2). Он используется для двухпроходного кодирования видео. В
статистика видео записывается при первом проходе в файл журнала (см. также
option -passlogfile), а во втором проходе этот файл журнала используется для генерации
видео с точно запрошенным битрейтом. На первом проходе вы можете просто отключить звук и
установите для вывода значение null, примеры для Windows и Unix:
ffmpeg -i foo.mov -c: v libxvid -pass 1 -an -f rawvideo -y NUL
ffmpeg -i foo.mov -c: v libxvid -pass 1 -an -f rawvideo -y / dev / null
-passlogfile [:поток_спецификатор] префикс (вывод, на поток)
Установите префикс имени файла журнала для двух проходов на префикс, префикс имени файла по умолчанию -
`` ffmpeg2pass ''. Полное имя файла будет ПРЕФИКС-N.log, где N - число
специфичный для выходного потока
-vf фильтрграф (выходной)
Создайте фильтрграф, указанный фильтрграф и используйте его для фильтрации потока.
Это псевдоним для "-filter: v", см. -фильтр вариант.
Фильтр Видео кредита
-pix_fmt [:поток_спецификатор] формат (ввод / вывод, на поток)
Установите формат пикселей. Используйте «-pix_fmts», чтобы показать все поддерживаемые форматы пикселей. Если
выбранный формат пикселей не может быть выбран, ffmpeg напечатает предупреждение и выберет
лучший формат пикселей, поддерживаемый кодировщиком. Если pix_fmt имеет префикс "+", ffmpeg
выйдет с ошибкой, если запрошенный формат пикселей не может быть выбран, и
автоматические преобразования внутри графов фильтров отключены. Если pix_fmt это одиночный "+",
ffmpeg выбирает тот же формат пикселей, что и ввод (или вывод графика), и автоматически
преобразования отключены.
-sws_flags Флаги (ввод, вывод)
Установите флаги SwScaler.
-вдт n
Отменить порог.
-rc_override [:поток_спецификатор] переопределение (вывод, на поток)
Переопределение управления скоростью для определенных интервалов, отформатированных как список "int, int, int"
разделены косой чертой. Два первых значения - это номера начального и конечного кадра, последнее
один - квантователь, если он положительный, или коэффициент качества, если он отрицательный.
-илме
Поддержка принудительной чересстрочной развертки в кодировщике (только MPEG-2 и MPEG-4). Используйте эту опцию, если
ваш входной файл чересстрочный, и вы хотите сохранить чересстрочный формат как минимум
убытки. Альтернативой является деинтерлейсинг входного потока с помощью - деинтерлейс, Но
деинтерлейсинг приносит убытки.
-пснр
Рассчитайте PSNR сжатых кадров.
-vstats
Выгрузить статистику кодирования видео в vstats_ЧЧММСС.log.
-vstats_file файл
Выгрузить статистику кодирования видео в файл.
-верхняя[:поток_спецификатор] n (вывод, на поток)
top = 1 / bottom = 0 / auto = -1 первое поле
-Округ Колумбия точность
Intra_dc_precision.
-vtag fourcc / тег (выходной)
Принудительный тег видео / fourcc. Это псевдоним для «-tag: v».
-qphist (Глобальный)
Показать гистограмму QP
-vbsf битовый_фильтр
Устарело см. -Bsf
-force_key_frames [:поток_спецификатор] время[,время...] (вывод, на поток)
-force_key_frames [:поток_спецификатор] выражение:выраж (вывод, на поток)
Принудительно установить ключевые кадры в указанные временные метки, точнее в первые кадры после
каждый указанный раз.
Если аргумент имеет префикс «expr:», строка выраж интерпретируется как
выражение и оценивается для каждого кадра. Ключевой кадр принудительно используется в случае
оценка не нулевая.
Если один из времен - "" главы "[дельта] ", он расширен до времени
начало всех глав в файле, смещенное на дельта, выраженное как время в
секунд. Эта опция может быть полезна, чтобы убедиться, что точка поиска присутствует в
метка главы или любое другое обозначенное место в выходном файле.
Например, чтобы вставить ключевой кадр через 5 минут плюс ключевые кадры за 0.1 секунды до
начало каждой главы:
-force_key_frames 0: 05: 00, главы-0.1
Выражение в выраж может содержать следующие константы:
n номер текущего обрабатываемого кадра, начиная с 0
n_ принудительно
количество принудительных кадров
prev_formed_n
номер предыдущего принудительного кадра, это "NAN", если не было принудительного ключевого кадра.
еще
prev_formed_t
время предыдущего принудительного кадра, это "NAN", если еще не было принудительно задано ни одного ключевого кадра.
t время текущего обрабатываемого кадра
Например, чтобы принудительно отображать ключевой кадр каждые 5 секунд, вы можете указать:
-force_key_frames выражение: gte (t, n_force * 5)
Для принудительной установки ключевого кадра через 5 секунд после последнего принудительного кадра, начиная с
второй 13:
-force_key_frames expr: if (isnan (prev_formed_t), gte (t, 13), gte (t, prev_forced_t + 5))
Обратите внимание, что форсирование слишком большого количества ключевых кадров очень вредно для алгоритмов опережающего просмотра.
определенные кодировщики: использование параметров фиксированной группы изображений или аналогичных было бы более эффективным.
-copyinkf [:поток_спецификатор] (вывод, на поток)
При копировании потока копируйте также неключевые кадры, найденные в начале.
-hwaccel [:поток_спецификатор] Hwaccel (ввод, на поток)
Используйте аппаратное ускорение для декодирования совпадающих потоков. Допустимые значения
Hwaccel составляют:
никто
Не использовать аппаратное ускорение (по умолчанию).
автоматический
Автоматический выбор метода аппаратного ускорения.
VDA Используйте аппаратное ускорение Apple VDA.
вдпау
Используйте аппаратное ускорение VDPAU (Video Decode and Presentation API for Unix).
dxva2
Используйте аппаратное ускорение DXVA2 (DirectX Video Acceleration).
Эта опция не действует, если выбранный hwaccel недоступен или не поддерживается
выбранный декодер.
Обратите внимание, что большинство методов ускорения предназначены для воспроизведения и не будут быстрее
чем программное декодирование на современных процессорах. Кроме того, FFmpeg обычно нужно скопировать
декодированные кадры из памяти графического процессора в системную память, в результате чего в дальнейшем
потеря производительности. Таким образом, эта опция в основном полезна для тестирования.
-hwaccel_device [:поток_спецификатор] hwaccel_device (ввод, на поток)
Выберите устройство, которое будет использоваться для аппаратного ускорения.
Этот вариант имеет смысл только тогда, когда -hwaccel опция также указывается. Его точный
значение зависит от конкретного выбранного метода аппаратного ускорения.
вдпау
Для VDPAU этот параметр указывает используемый дисплей / экран X11. Если эта опция
не указано, значение ДИСПЛЕЙ переменная окружения используется
dxva2
Для DXVA2 эта опция должна содержать номер используемого видеоадаптера.
Если этот параметр не указан, используется адаптер по умолчанию.
-hwaccels
Перечислите все методы аппаратного ускорения, поддерживаемые в этой сборке ffmpeg.
Аудио Опции
-рамки номер (выходной)
Установите количество аудиокадров для вывода. Это псевдоним для «-frames: a».
-ar [:поток_спецификатор] частота (ввод / вывод, на поток)
Установите частоту дискретизации звука. Для выходных потоков по умолчанию установлено значение
частота соответствующего входного потока. Для входных потоков эта опция делает только
sense для устройств захвата звука и необработанных демультиплексоров и сопоставляется с соответствующими
параметры демультиплексора.
-ак q (выходной)
Установите качество звука (зависит от кодека, VBR). Это псевдоним для -q: a.
-ac [:поток_спецификатор] каналы (ввод / вывод, на поток)
Установите количество аудиоканалов. Для выходных потоков по умолчанию установлено значение
количество входных аудиоканалов. Для входных потоков этот параметр имеет смысл только для
устройства захвата звука и необработанные демультиплексоры и сопоставлены с соответствующим демультиплексором
настройки.
-an (выходной)
Отключить запись звука.
-акодек кодер-декодер (ввод, вывод)
Установите аудиокодек. Это псевдоним для "-codec: a".
-sample_fmt [:поток_спецификатор] sample_fmt (вывод, на поток)
Установите формат аудио образца. Используйте "-sample_fmts", чтобы получить список поддерживаемых образцов.
форматов.
-af фильтрграф (выходной)
Создайте фильтрграф, указанный фильтрграф и используйте его для фильтрации потока.
Это псевдоним для "-filter: a", см. -фильтр вариант.
Фильтр Аудио кредита
-атаг fourcc / тег (выходной)
Заставить аудио тег / fourcc. Это псевдоним для «-tag: a».
-абсф битовый_фильтр
Устарело, см. -Bsf
-guess_layout_max каналы (ввод, на поток)
Если какая-то раскладка входного канала неизвестна, попробуйте угадать, только ли она соответствует
максимально указанное количество каналов. Например, 2 сообщает FFmpeg признать 1
канал как моно и 2 канала как стерео, но не 6 каналов как 5.1. По умолчанию
всегда пытайтесь угадать. Используйте 0, чтобы отключить все угадывание.
подзаголовок кредита
-скодек кодер-декодер (ввод, вывод)
Установите кодек субтитров. Это псевдоним для "-codec: s".
-sn (выходной)
Отключить запись субтитров.
-sbsf битовый_фильтр
Устарело, см. -Bsf
Фильтр подзаголовок кредита
-fix_sub_duration
Исправьте продолжительность субтитров. Для каждого субтитра дождитесь следующего пакета в том же
Stream и отрегулируйте продолжительность первого, чтобы избежать дублирования. Это необходимо с
некоторые кодеки субтитров, особенно субтитры DVB, потому что продолжительность в оригинале
пакет - это только приблизительная оценка, и конец фактически отмечен пустым субтитром
Рамка. Если не использовать эту опцию при необходимости, это может привести к завышенной продолжительности.
или сбои мультиплексирования из-за немонотонных временных меток.
Обратите внимание, что эта опция задержит вывод всех данных до следующего пакета субтитров.
декодируется: это может значительно увеличить потребление памяти и задержку.
-размер холста размер
Установите размер холста, используемого для рендеринга субтитров.
Фильтр кредита
-map [-]input_file_id[:поток_спецификатор] [,sync_file_id[:поток_спецификатор]] | [метка ссылки]
(выходной)
Назначьте один или несколько входных потоков в качестве источника для выходного файла. Каждый входной поток
идентифицируется индексом входного файла input_file_id и индекс входного потока
input_stream_id во входном файле. Оба индекса начинаются с 0. Если указано,
sync_file_id:поток_спецификатор устанавливает, какой входной поток используется в качестве синхронизации презентации
Справка.
Первая опция «-map» в командной строке указывает источник для выходного потока 0,
вторая опция «-map» указывает источник для выходного потока 1 и т. д.
Символ «-» перед идентификатором потока создает «отрицательное» отображение. Это
отключает соответствующие потоки из уже созданных сопоставлений.
Альтернатива [метка ссылки] форма будет отображать выходные данные из сложных графов фильтров (см.
-filter_complex option) в выходной файл. ссылка должен соответствовать определенному
метка выходной ссылки на графике.
Например, чтобы отобразить ВСЕ потоки из первого входного файла в выходной
ffmpeg -i INPUT -map 0 вывод
Например, если у вас есть два аудиопотока в первом входном файле, эти потоки
обозначается «0: 0» и «0: 1». Вы можете использовать "-map", чтобы выбрать, какие потоки поместить в
выходной файл. Например:
ffmpeg -i ВХОД -map 0: 1 out.wav
отобразит входной поток в ВХОД идентифицируется как "0: 1" для (одиночного) выходного потока
in out.wav.
Например, чтобы выбрать поток с индексом 2 из входного файла а.мов (указано
идентификатор "0: 2") и поток с индексом 6 из ввода б.мов (указано
идентификатор "1: 6") и скопируйте их в выходной файл out.mov:
ffmpeg -i a.mov -i b.mov -c copy -map 0: 2 -map 1: 6 out.mov
Чтобы выбрать все видео и третий аудиопоток из входного файла:
ffmpeg -i ВХОД -map 0: v -map 0: a: 2 ВЫХОД
Чтобы сопоставить все потоки, кроме второго аудио, используйте отрицательные сопоставления
ffmpeg -i ВХОД -map 0 -map -0: a: 1 ВЫХОД
Чтобы выбрать аудиопоток на английском языке:
ffmpeg -i ВХОД -map 0: m: язык: eng ВЫВОД
Обратите внимание, что использование этой опции отключает сопоставления по умолчанию для этого выходного файла.
-ignore_unknown
Игнорировать входные потоки с неизвестным типом вместо сбоя, если копирование таких потоков
попытался.
-copy_unknown
Разрешить копирование входных потоков с неизвестным типом вместо сбоя при копировании таких
потоков.
-map_channel
[input_file_id.поток_спецификатор.идентификатор_канала| -1] [:выходной_файл_id.поток_спецификатор]
Сопоставьте аудиоканал от данного входа к выходу. Если
выходной_файл_id.поток_спецификатор не установлен, аудиоканал будет отображаться на всех
аудиопотоки.
Использование «-1» вместо input_file_id.поток_спецификатор.идентификатор_канала отобразит приглушенный
канал.
Например, если предположить ВХОД стерео аудиофайл, вы можете переключать два аудио
каналы с помощью следующей команды:
ffmpeg -i ВХОД -map_channel 0.0.1 -map_channel 0.0.0 ВЫХОД
Если вы хотите отключить звук первого канала и оставить второй:
ffmpeg -i ВХОД -map_channel -1 -map_channel 0.0.1 ВЫХОД
Порядок параметра "-map_channel" определяет порядок каналов в
выходной поток. Расположение выходных каналов определяется по количеству сопоставленных каналов.
(моно, если один "-map_channel", стерео, если два, и т. д.). Использование "-ac" в сочетании с
"-map_channel" обновляет уровни усиления канала, если входной и выходной канал
макеты не совпадают (например, две опции "-map_channel" и "-ac 6").
Вы также можете выделить каждый канал входа на определенные выходы; следующее
команда извлекает два канала из ВХОД аудиопоток (файл 0, поток 0) в
те ВЫХОД_CH0 и ВЫХОД_CH1 выходы:
ffmpeg -i INPUT -map_channel 0.0.0 OUTPUT_CH0 -map_channel 0.0.1 OUTPUT_CH1
В следующем примере каналы стереовхода разделяются на два отдельных потока.
которые помещаются в тот же выходной файл:
ffmpeg -i stereo.wav -map 0: 0 -map 0: 0 -map_channel 0.0.0: 0.0 -map_channel 0.0.1: 0.1 -y out.ogg
Обратите внимание, что в настоящее время каждый выходной поток может содержать каналы только с одного входа.
ручей; вы не можете, например, использовать "-map_channel" для выбора нескольких входных аудиоканалов
содержащихся в разных потоках (из одного или разных файлов) и объединить их в
единый выходной поток. Поэтому в настоящее время невозможно, например, повернуть
два отдельных монопотока в один стереопоток. Однако разделение стерео
возможен поток в два одноканальных монопотока.
Если вам нужна эта функция, одним из возможных обходных путей является использование объединять фильтр. За
Например, если вам нужно объединить медиа (здесь вход.mkv) с 2 монофоническими аудиопотоками в
один аудиопоток стереоканала (и сохранить видеопоток), вы можете использовать
следующая команда:
ffmpeg -i input.mkv -filter_complex "[0: 1] [0: 2] amerge" -c: a pcm_s16le -c: v копировать output.mkv
-map_metadata [:метаданные_spec_out] вводить[:метаданные_spec_in] (вывод, по метаданным)
Установить информацию метаданных следующего выходного файла из вводить. Обратите внимание, что это файл
индексы (с нуля), а не имена файлов. По желанию metadata_spec_in / out параметры
укажите, какие метаданные копировать. Спецификатор метаданных может иметь следующие формы:
g глобальные метаданные, то есть метаданные, которые применяются ко всему файлу
s[:поток_спец]
метаданные для каждого потока. поток_спец - спецификатор потока, как описано в Поток
спецификаторы глава. В спецификаторе входных метаданных первым совпадающим потоком является
скопировано из. В спецификаторе выходных метаданных копируются все совпадающие потоки.
c:индекс_главы
метаданные для каждой главы. индекс_главы отсчитываемый от нуля указатель глав.
p:индекс_программы
метаданные для каждой программы. индекс_программы - индекс программы с отсчетом от нуля.
Если спецификатор метаданных опущен, по умолчанию используется глобальный.
По умолчанию глобальные метаданные копируются из первого входного файла для каждого потока и каждого потока.
метаданные главы копируются вместе с потоками / главами. Эти сопоставления по умолчанию
отключено путем создания любого сопоставления соответствующего типа. Отрицательный индекс файла может быть
используется для создания фиктивного сопоставления, которое просто отключает автоматическое копирование.
Например, чтобы скопировать метаданные из первого потока входного файла в глобальный
метаданные выходного файла:
ffmpeg -i in.ogg -map_metadata 0: s: 0 out.mp3
Чтобы сделать обратное, то есть скопировать глобальные метаданные во все аудиопотоки:
ffmpeg -i in.mkv -map_metadata: s: a 0: g out.mkv
Обратите внимание, что простой 0 также будет работать в этом примере, поскольку глобальные метаданные
предполагается по умолчанию.
-map_chapters input_file_index (выходной)
Копировать главы из входного файла с индексом input_file_index в следующий выходной файл. Если
сопоставление глав не указано, главы копируются из первого входного файла
хотя бы с одной главой. Используйте отрицательный индекс файла, чтобы отключить любое копирование глав.
-бенчмарк (Глобальный)
Показывать контрольную информацию в конце кодирования. Показывает используемое время ЦП и
максимальное потребление памяти. Максимальное потребление памяти поддерживается не на всех
систем, он обычно отображается как 0, если не поддерживается.
-benchmark_all (Глобальный)
Показывать контрольную информацию во время кодирования. Показывает процессорное время, используемое на различных этапах
(кодирование / декодирование аудио / видео).
-лимит времени продолжительность (Глобальный)
Выйти после того, как ffmpeg был запущен в течение продолжительность секунд.
-дамп (Глобальный)
Выгрузите каждый входной пакет в stderr.
-шестнадцатеричный (Глобальный)
При выгрузке пакетов также выгружайте полезную нагрузку.
-re (вход)
Чтение ввода с исходной частотой кадров. В основном используется для имитации захвата. или живой ввод
поток (например, при чтении из файла). Не следует использовать с настоящими грейферами или
живые входные потоки (где это может привести к потере пакетов). По умолчанию FFmpeg пытается
прочтите ввод (ы) как можно быстрее. Эта опция замедлит чтение
input (s) с собственной частотой кадров ввода (ов). Это полезно для вывода в реальном времени
(например, прямая трансляция).
-loop_input
Прокрутите входной поток. В настоящее время работает только с потоками изображений. Этот вариант
используется для автоматического тестирования FFserver. Эта опция устарела, используйте -loop 1.
-loop_output количество раз
Повторно зацикливать вывод для форматов, поддерживающих зацикливание, таких как анимированный GIF (0 будет
зацикливать вывод бесконечно). Эта опция устарела, используйте -loop.
-vsync параметр
Метод синхронизации видео. По соображениям совместимости старые значения могут быть указаны как числа.
Новые добавленные значения всегда должны указываться как строки.
0, сквозной
Каждый кадр передается от демультиплексора к мультиплексору со своей меткой времени.
1, ЧФР
Кадры будут дублироваться и удаляться, чтобы достичь точно запрошенной константы.
частота кадров.
2, VFR
Кадры передаются с их отметкой времени или отбрасываются, чтобы предотвратить 2
кадры с одинаковой меткой времени.
падение
Как сквозной, но уничтожает все временные метки, заставляя мультиплексор генерировать свежие
временные метки на основе частоты кадров.
-1, автоматический
Выбирает от 1 до 2 в зависимости от возможностей мультиплексора. Это по умолчанию
метод.
Обратите внимание, что после этого временные метки могут быть изменены мультиплексором. За
Например, в случае, если параметр формата избежать_негативных_ц включен.
С помощью -map вы можете выбрать, из какого потока следует брать отметки времени. Ты сможешь
оставьте видео или аудио без изменений и синхронизируйте оставшиеся потоки с
неизменный.
-frame_drop_threshold параметр
Порог отбрасывания кадров, который указывает, насколько видеокадры могут отставать до того, как они
сброшены. В единицах частоты кадров 1.0 - это один кадр. По умолчанию -1.1. Один
возможный вариант использования - избегать кадровых капель в случае зашумленных временных меток или увеличивать
точность падения кадра в случае точных отметок времени.
-асинхронный Samples_per_second
Метод синхронизации звука. "Растягивает / сжимает" аудиопоток в соответствии с отметками времени,
Параметр - это максимальное количество отсчетов в секунду, на которое изменяется звук. -async 1
это особый случай, когда исправляется только начало аудиопотока без каких-либо
позднее исправление.
Обратите внимание, что после этого временные метки могут быть изменены мультиплексором. За
Например, в случае, если параметр формата избежать_негативных_ц включен.
Эта опция устарела. Вместо этого используйте звуковой фильтр "aresample".
-копии
Не обрабатывать временные метки ввода, но сохранять их значения, не пытаясь очистить
их. В частности, не удаляйте начальное значение смещения времени начала.
Обратите внимание, что в зависимости от VSync вариант или на конкретную обработку мультиплексора (например, в случае
вариант формата избежать_негативных_ц включен) временные метки вывода могут не совпадать
с метками времени ввода, даже если выбран этот параметр.
-start_at_zero
При использовании с копии, сдвиньте временные метки ввода, чтобы они начинались с нуля.
Это означает, что при использовании, например, "-ss 50" метки времени вывода начинаются с 50 секунд,
независимо от того, с какой отметки времени начался входной файл.
-copytb Режим
Укажите, как установить временную развертку кодировщика при копировании потока. Режим целое число
числовое значение и может принимать одно из следующих значений:
1 Используйте временную развертку демультиплексора.
База времени копируется в выходной кодер с соответствующего входа.
демультиплексор. Иногда это требуется, чтобы избежать немонотонного увеличения
отметки времени при копировании видеопотоков с переменной частотой кадров.
0 Используйте временную развертку декодера.
База времени копируется в выходной кодер с соответствующего входа.
декодер.
-1 Попробуйте сделать выбор автоматически, чтобы получить нормальный результат.
Значение по умолчанию -1.
-коротчайший (выходной)
Завершите кодирование, когда закончится самый короткий входной поток.
-dts_delta_threshold
Дельта-порог разрыва временной метки.
-muxdelay секунды (вход)
Установите максимальную задержку демультиплексирования.
-muxpreload секунды (вход)
Установите начальную задержку демультиплексирования.
-streamid выходной поток-индекс:новое значение (выходной)
Назначьте новое значение идентификатора потока выходному потоку. Этот вариант следует указать
перед выходным именем файла, к которому он применяется. Для ситуации, когда несколько
выходные файлы существуют, streamid можно переназначить на другое значение.
Например, чтобы установить PID потока 0 на 33 и PID потока 1 на 36 для вывода
mpegts файл:
ffmpeg -i infile -streamid 0:33 -streamid 1:36 out.ts
-bsf [:поток_спецификатор] битстрим_фильтры (вывод, на поток)
Установите фильтры битового потока для сопоставления потоков. битстрим_фильтры через запятую
список фильтров битового потока. Используйте опцию "-bsfs", чтобы получить список битового потока.
фильтры.
ffmpeg -i h264.mp4 -c: v copy -bsf: v h264_mp4toannexb -an out.h264
ffmpeg -i file.mov -an -vn -bsf: s mov2textsub -c: s copy -f rawvideo sub.txt
-тег[:поток_спецификатор] codec_tag (ввод / вывод, на поток)
Установите тег / fourcc для сопоставления потоков.
-таймкод hh:mm:ssСентябрьff
Укажите временной код для записи. Сентябрь это ':' для тайм-кода без выпадения и ';' (или '.') для
понижаться.
ffmpeg -i input.mpg -timecode 01: 02: 03.04 -r 30000/1001 -s ntsc output.mpg
-filter_complex фильтрграф (Глобальный)
Определите сложный граф фильтра, то есть с произвольным числом входов и / или выходов.
Для простых графиков - с одним входом и одним выходом одного типа - см.
-фильтр настройки. фильтрграф это описание графа фильтров, как описано в
Раздел `` Синтаксис Filtergraph '' руководства ffmpeg-filters.
Ярлыки входных ссылок должны относиться к входным потокам с использованием
Синтаксис "[file_index: stream_specifier]" (т. е. такой же, как -map использует). Если
поток_спецификатор соответствует нескольким потокам, будет использован первый. Немаркированный
input будет подключен к первому неиспользуемому входному потоку соответствующего типа.
Метки выходных ссылок обозначаются -map. Непомеченные выходы добавляются к первому
выходной файл.
Обратите внимание, что с этой опцией можно использовать только источники lavfi без обычных
входные файлы.
Например, чтобы наложить изображение на видео
ffmpeg -i video.mkv -i image.png -filter_complex '[0: v] [1: v] overlay [out]' -map
'[out]' out.mkv
Здесь «[0: v]» относится к первому видеопотоку в первом входном файле, который связан
на первый (основной) вход оверлейного фильтра. Аналогично первый видеопоток в
второй вход связан со вторым (оверлейным) входом оверлея.
Предполагая, что в каждом входном файле есть только один видеопоток, мы можем опустить метки входа,
так что приведенное выше эквивалентно
ffmpeg -i video.mkv -i image.png -filter_complex 'overlay [out]' -map
'[out]' out.mkv
Кроме того, мы можем опустить метку вывода и единственный вывод из графа фильтра.
будет добавлен в выходной файл автоматически, поэтому мы можем просто написать
ffmpeg -i video.mkv -i image.png -filter_complex 'оверлей' out.mkv
Чтобы сгенерировать 5 секунд чистого красного видео с использованием источника lavfi "color":
ffmpeg -filter_complex 'цвет = c = красный' -t 5 out.mkv
-лавфи фильтрграф (Глобальный)
Определите сложный граф фильтра, то есть с произвольным числом входов и / или выходов.
Эквивалентно -filter_complex.
-filter_complex_script имя файла (Глобальный)
Этот вариант похож на -filter_complex, с той лишь разницей, что его аргумент
имя файла, из которого следует прочитать описание сложного графа фильтра.
-accurate_seek (вход)
Эта опция включает или отключает точный поиск во входных файлах с -ss опцию.
По умолчанию он включен, поэтому при перекодировании поиск выполняется точно. Использовать
-noaccurate_seek чтобы отключить его, что может быть полезно, например, при копировании некоторых потоков и
перекодирование остальных.
-seek_timestamp (вход)
Эта опция включает или отключает поиск по метке времени во входных файлах с -ss
вариант. По умолчанию он отключен. Если включено, аргумент -ss опция
считается фактической меткой времени и не компенсируется временем начала файла. Этот
имеет значение только для файлов, которые не начинаются с отметки времени 0, например транспортных потоков.
-thread_queue_size размер (вход)
Эта опция устанавливает максимальное количество пакетов в очереди при чтении из файла или
устройство. При потоковой передаче с низкой задержкой / высокой скоростью пакеты могут быть отброшены, если они
не читаются своевременно; повышение этого значения может избежать этого.
-override_ffсервер (Глобальный)
Переопределяет входные спецификации из ффсервер. Используя эту опцию, вы можете сопоставить любой
входной поток в ффсервер и контролировать многие аспекты кодирования из FFmpeg, Без
этот вариант FFmpeg будет передавать ффсервер что требует ффсервер.
Опция предназначена для случаев, когда требуются функции, которые нельзя указать для
ффсервер но может быть FFmpeg.
-sdp_file файл (Глобальный)
Распечатать информацию sdp для выходного потока в файл. Это позволяет сбрасывать sdp
информация, когда хотя бы один выход не является потоком rtp. (Требуется хотя бы один из
форматы вывода должны быть rtp).
-отказаться (вход)
Позволяет отбрасывать определенные потоки или кадры потоков в демультиплексоре. Не все
демультиплексоры поддерживают это.
никто
Не отбрасывайте ни одного кадра.
по умолчанию
По умолчанию, при котором фреймы не отбрасываются.
норэф
Отбросьте все нереференсные кадры.
бидир
Отбросьте все двунаправленные кадры.
нет ключа
Отменить все кадры, кроме ключевых кадров.
Найти Отменить все кадры.
-xerror (Глобальный)
Остановить и выйти при ошибке
В качестве особого исключения вы можете использовать в качестве входных данных поток растровых субтитров: он будет
конвертируется в видео того же размера, что и самое большое видео в файле, или 720x576, если
видео нет. Обратите внимание, что это экспериментальное и временное решение. Это будет
удаляется, когда libavfilter правильно поддерживает субтитры.
Например, чтобы жестко закодировать субтитры поверх записи DVB-T, хранящейся в формате MPEG-TS,
задержка субтитров на 1 секунду:
ffmpeg -i input.ts -filter_complex \
'[# 0x2ef] setpts = PTS + 1 / TB [sub]; [# 0x2d0] [под] оверлей '\
-sn -map '# 0x2dc' output.mkv
(0x2d0, 0x2dc и 0x2ef - идентификаторы PID MPEG-TS соответственно видео, аудио и
субтитры потоков; 0: 0, 0: 3 и 0: 7 тоже сработали бы)
Предустановленная файлов
Файл предустановок содержит последовательность вариант=ценностное пары, по одной для каждой строки, с указанием
последовательность опций, которые было бы неудобно указывать в командной строке. Линии начинаются
с символом решетки ('#') игнорируются и используются для комментариев. Проверить
пресеты каталог в дереве исходных текстов FFmpeg для примеров.
Есть два типа файлов предустановок: файлы ffpreset и avpreset.
ffpreset файлов
Файлы ffpreset указываются с параметрами «vpre», «apre», «spre» и «fpre». В
Параметр "fpre" принимает имя файла предустановки вместо имени предустановки в качестве входных данных и может
использоваться для любого кодека. Для параметров "vpre", "apre" и "spre" параметры
указанные в файле предустановок, применяются к текущему выбранному кодеку того же типа, что и
предустановленный вариант.
Аргумент, переданный параметрам предустановки "vpre", "apre" и "spre", определяет предустановку.
файл использовать в соответствии со следующими правилами:
Сначала ffmpeg ищет файл с именем аргумент.ffpreset в каталогах $ FFMPEG_DATADIR (если
набор), и $ HOME / .ffmpeg, и в каталоге данных, определенном во время настройки (обычно
ПРЕФИКС / share / ffmpeg) или в ffpresets папка по исполняемому файлу на win32, в этом
приказ. Например, если аргумент - «libvpx-1080p», он будет искать файл
libvpx-1080p.ffпредустановка.
Если такой файл не найден, то ffmpeg будет искать файл с именем имя_кодека-аргумент.ffpreset
в вышеупомянутых каталогах, где имя_кодека это имя кодека, к которому
будут применены предустановленные параметры файла. Например, если вы выберете видеокодек с
"-vcodec libvpx" и используйте "-vpre 1080p", тогда он будет искать файл
libvpx-1080p.ffпредустановка.
авпресет файлов
Файлы avpreset указываются с параметром «pre». Они работают аналогично файлам ffpreset,
но они допускают только параметры, специфичные для кодировщика. Следовательно, вариант=ценностное пара с указанием
кодировщик использовать нельзя.
Если указана опция «pre», ffmpeg будет искать файлы с расширением .avpreset.
в каталогах $ AVCONV_DATADIR (если установлено), и $ HOME / .avconv, а в datadir определенном
во время настройки (обычно ПРЕФИКС / share / ffmpeg), в этой последовательности.
Сначала ffmpeg ищет файл с именем имя_кодека-аргумент.avpreset в вышеупомянутом
каталоги, где имя_кодека это имя кодека, для которого предустановленные параметры файла
будет применяться. Например, если вы выбираете видеокодек с помощью «-vcodec libvpx» и используете
"-pre 1080p", тогда он будет искать файл libvpx-1080p.avpreset.
Если такой файл не найден, то ffmpeg будет искать файл с именем аргумент.avpreset в
те же каталоги.
ПРИМЕРЫ
Видео и Аудио захват
Если вы укажете формат ввода и устройство, тогда ffmpeg сможет напрямую захватывать видео и аудио.
ffmpeg -f oss -i / dev / dsp -f video4linux2 -i / dev / video0 /tmp/out.mpg
Или с аудиоисточником ALSA (моновход, идентификатор карты 1) вместо OSS:
ffmpeg -f alsa -ac 1 -i hw: 1 -f video4linux2 -i / dev / video0 /tmp/out.mpg
Обратите внимание, что перед запуском ffmpeg необходимо активировать правильный источник видео и канал.
с любым телезрителем, напримерhttp://linux.bytesex.org/xawtv/> Автор: Герд Кнорр. У вас также есть
для правильной установки уровней записи звука с помощью стандартного микшера.
X11 захват
Возьмите дисплей X11 с помощью ffmpeg через
ffmpeg -f x11grab -video_size cif -framerate 25 -i: 0.0 /tmp/out.mpg
0.0 - это номер экрана display.screen вашего сервера X11, то же самое, что и переменная среды DISPLAY.
ffmpeg -f x11grab -video_size cif -framerate 25 -i: 0.0 + 10,20 /tmp/out.mpg
0.0 - это номер экрана display.screen вашего сервера X11, то же самое, что и переменная среды DISPLAY.
10 - это смещение по оси X, а 20 - смещение по оси Y для захвата.
Видео и Аудио файл формат Преобразование
Любой поддерживаемый формат файла и протокол могут служить входными данными для ffmpeg:
Примеры:
· В качестве входных данных можно использовать файлы YUV:
ffmpeg -i / tmp / test% dY /tmp/out.mpg
Он будет использовать файлы:
/tmp/test0.Y, /tmp/test0.U, /tmp/test0.V,
/tmp/test1.Y, /tmp/test1.U, /tmp/test1.V и т. д.
Файлы Y используют вдвое большее разрешение, чем файлы U и V. Это необработанные файлы без
заголовок. Их могут генерировать все приличные видеодекодеры. Необходимо указать размер
изображения с -s вариант, если ffmpeg не может его угадать.
· Вы можете ввести из необработанного файла YUV420P:
ffmpeg -i /tmp/test.yuv /tmp/out.avi
test.yuv - это файл, содержащий необработанные планарные данные YUV. Каждый кадр состоит из Y
плоскость, за которой следуют плоскости U и V с половинным разрешением по вертикали и горизонтали.
· Вы можете выводить в необработанный файл YUV420P:
ffmpeg -i mydivx.avi огромный файл.yuv
· Вы можете установить несколько файлов ввода и файлов вывода:
ffmpeg -i /tmp/a.wav -s 640x480 -i /tmp/a.yuv /tmp/a.mpg
Преобразует аудиофайл a.wav и необработанный видеофайл YUV a.yuv в файл MPEG a.mpg.
· Вы также можете одновременно преобразовывать аудио и видео:
ffmpeg -i /tmp/a.wav -ar 22050 /tmp/a.mp2
Преобразует a.wav в аудио MPEG с частотой дискретизации 22050 Гц.
· Вы можете кодировать в несколько форматов одновременно и определять отображение из ввода
поток в потоки вывода:
ffmpeg -i /tmp/a.wav -map 0: a -b: a 64k /tmp/a.mp2 -map 0: a -b: a 128k /tmp/b.mp2
Преобразует a.wav в a.mp2 со скоростью 64 кбит и в b.mp2 со скоростью 128 кбит. '-map файл: индекс'
указывает, какой входной поток используется для каждого выходного потока, в порядке
определение выходных потоков.
· Вы можете перекодировать дешифрованные VOB:
ffmpeg -i snatch_1.vob -f avi -c: v mpeg4 -b: v 800k -g 300 -bf 2 -c: a libmp3lame -b: 128k snatch.avi
Это типичный пример копирования DVD; вход - файл VOB, выход - файл AVI
с видео в формате MPEG-4 и аудио в формате MP3. Обратите внимание, что в этой команде мы используем B-кадры, поэтому
Поток MPEG-4 совместим с DivX5, а размер GOP составляет 300, что означает один внутренний кадр.
каждые 10 секунд для входящего видео со скоростью 29.97 кадра в секунду. Кроме того, аудиопоток
Кодируется в формате MP3, поэтому вам нужно включить поддержку LAME, передав "--enable-libmp3lame" в
настроить. Сопоставление особенно полезно для перекодирования DVD, чтобы получить желаемый результат.
язык аудио.
ПРИМЕЧАНИЕ. Чтобы увидеть поддерживаемые форматы ввода, используйте «ffmpeg -formats».
· Вы можете извлекать изображения из видео или создавать видео из множества изображений:
Для извлечения изображений из видео:
ffmpeg -i foo.avi -r 1 -s WxH -f image2 foo-% 03d.jpeg
Это будет извлекать из видео один видеокадр в секунду и выводить их в
файлы, названные foo-001.jpeg, foo-002.jpegи т. д. Изображение будет изменено в соответствии с новым
Значения WxH.
Если вы хотите извлечь только ограниченное количество кадров, вы можете использовать указанную выше команду
в сочетании с параметром -vframes или -t, или в сочетании с параметром -ss для запуска
извлечение с определенного момента времени.
Для создания видео из множества изображений:
ffmpeg -f изображение2 -framerate 12 -i foo-% 03d.jpeg -s WxH foo.avi
Синтаксис «foo-% 03d.jpeg» указывает на использование десятичного числа, состоящего из трех цифр.
дополненный нулями, чтобы выразить порядковый номер. Такой же синтаксис поддерживается
функция C printf, но подходят только форматы, принимающие нормальное целое число.
При импорте последовательности изображений -i также поддерживает подстановочный знак в стиле оболочки.
шаблоны (глобусы) внутри, путем выбора специфичного для image2 "-pattern_type glob"
опцию.
Например, для создания видео из имен файлов, соответствующих шаблону глобуса
"foo - *. jpeg":
ffmpeg -f image2 -pattern_type glob -framerate 12 -i 'foo - *. jpeg' -s WxH foo.avi
· Вы можете поместить в вывод несколько потоков одного типа:
ffmpeg -i test1.avi -i test2.avi -map 1: 1 -map 1: 0 -map 0: 1 -map 0: 0 -c copy -y test12.nut
Результирующий выходной файл test12.гайка будет содержать первые четыре потока из
входные файлы в обратном порядке.
· Для принудительного вывода видео CBR:
ffmpeg -i myfile.avi -b 4000k -minrate 4000k -maxrate 4000k -bufsize 1835k out.m2v
· Четыре параметра lmin, lmax, mblmin и mblmax используют единицы лямбда, но вы можете использовать
Константа QP2LAMBDA для простого преобразования из единиц q:
ffmpeg -i src.ext -lmax 21 * QP2LAMBDA dst.ext
Используйте ffmpeg онлайн с помощью сервисов onworks.net