Это команда ffmpeg-sizes, которую можно запустить в провайдере бесплатного хостинга OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.
ПРОГРАММА:
ИМЯ
ffmpeg-sizes - форматы FFmpeg
ОПИСАНИЕ
В этом документе описаны поддерживаемые форматы (мультиплексоры и демультиплексоры), предоставляемые
Библиотека libavformat.
ФОРМАТ ДОПОЛНИТЕЛЬНЫЕ ОПЦИИ
Библиотека libavformat предоставляет некоторые общие глобальные параметры, которые можно установить на всех
мультиплексоры и демультиплексоры. Кроме того, каждый мультиплексор или демультиплексор может поддерживать так называемые частные
параметры, специфичные для этого компонента.
Параметры можно установить, указав -вариант ценностное в инструментах FFmpeg или установив
значение явно в параметрах "AVFormatContext" или с помощью libavutil / opt.h API для
программное использование.
Список поддерживаемых опций следующий:
авиафлаги Флаги (ввод, вывод)
Возможные значения:
направлять
Уменьшите буферизацию.
зондировать целое (вход)
Установите размер зондирования в байтах, то есть размер данных для анализа для получения потока
Информация. Более высокое значение позволит обнаружить больше информации, если она
рассеивается в потоке, но увеличивает задержку. Должно быть целым числом не меньше
чем 32. По умолчанию это 5000000.
размер пакета целое (выходной)
Установите размер пакета.
флаги Флаги (ввод, вывод)
Установите флаги формата.
Возможные значения:
игнидкс
Игнорировать index.
быстрый поиск
Включите быстрый, но неточный поиск для некоторых форматов.
Genpts
Сгенерируйте PTS.
нофиллин
Не заполняйте недостающие значения, которые можно точно рассчитать.
непродуманный
Отключите AVParsers, для этого тоже нужен "+ нофиллин".
воспламеняется
Игнорировать DTS.
отбросить
Отбросьте поврежденные кадры.
сорта
Попробуйте чередовать выходные пакеты по DTS.
крепость
Не объединяйте побочные данные.
латм
Включите полезную нагрузку RTP MP4A-LATM.
нобуфер
Уменьшите задержку, вызванную дополнительной буферизацией
битоточный
Записывайте только данные, не зависящие от платформы, сборки и времени. Это гарантирует, что файл
контрольные суммы данных воспроизводимы и совпадают между платформами. Его основное использование
предназначен для регрессионного тестирования.
искать2любой целое (вход)
Разрешить поиск неключевых кадров на уровне демультиплексора, если поддерживается, если установлено значение 1. По умолчанию
это 0.
анализируемая продолжительность целое (вход)
Укажите, сколько микросекунд анализируется для проверки ввода. Более высокое значение будет
позволит обнаруживать более точную информацию, но увеличит задержку. По умолчанию
5,000,000 5 XNUMX микросекунд = XNUMX секунд.
криптоключ шестнадцатеричный string (вход)
Установите ключ дешифрования.
индексная память целое (вход)
Установите максимальный объем памяти, используемый для индекса отметки времени (для каждого потока).
rtbufsize целое (вход)
Установите максимальный объем памяти, используемый для буферизации кадров реального времени.
fdebug Флаги (ввод, вывод)
Распечатайте конкретную отладочную информацию.
Возможные значения:
ts
max_delay целое (ввод, вывод)
Установите максимальную задержку мультиплексирования или демультиплексирования в микросекундах.
fpsprobesize целое (вход)
Установите количество кадров, используемых для проверки fps.
audio_preload целое (выходной)
Установите микросекунды, на которые аудиопакеты должны чередоваться раньше.
chunk_duration целое (выходной)
Установите микросекунды для каждого фрагмента.
размер_чанка целое (выходной)
Установите размер в байтах для каждого блока.
ошибка_обнаружение, f_err_detect Флаги (вход)
Установите флаги обнаружения ошибок. "f_err_detect" устарел и должен использоваться только через
FFmpeg инструмент.
Возможные значения:
crccheck
Проверьте встроенные CRC.
битовый поток
Обнаружение отклонений спецификации битового потока.
буфер
Обнаружить неправильную длину битового потока.
взорваться
Прервать декодирование при обнаружении незначительной ошибки.
тщательный
Считайте вещи, которые нарушают спецификацию и не были замечены в дикой природе как
ошибки.
уступчивый
Считайте все несоответствия спецификациям ошибками.
агрессивный
Считайте ошибки, которые нормальный кодировщик не должен делать.
max_interleave_delta целое (выходной)
Установите максимальную продолжительность буферизации для чередования. Продолжительность выражается в
микросекунд, по умолчанию 1000000 (1 секунда).
Чтобы гарантировать правильное чередование всех потоков, libavformat будет ждать, пока он
имеет хотя бы один пакет для каждого потока перед фактической записью каких-либо пакетов в
выходной файл. Когда некоторые потоки "разреженные" (т. Е. Есть большие промежутки между
последовательные пакеты), это может привести к чрезмерной буферизации.
В этом поле указывается максимальная разница между отметками времени первого и
последний пакет в очереди мультиплексирования, выше которого libavformat выведет пакет
независимо от того, поставил ли он в очередь пакет для всех потоков.
Если установлено значение 0, libavformat продолжит буферизацию пакетов до тех пор, пока не получит пакет для
каждый поток, независимо от максимальной разницы в отметках времени между буферизованными
пакеты.
use_walllock_as_timestamps целое (вход)
Используйте настенные часы в качестве отметок времени.
избежать_негативных_ц целое (выходной)
Возможные значения:
make_non_negative
Сдвиньте временные метки, чтобы сделать их неотрицательными. Также обратите внимание, что это влияет только на
ведущие отрицательные временные метки, а не немонотонные отрицательные временные метки.
make_zero
Сдвиньте отметки времени так, чтобы первая отметка времени была 0.
автоматический (По умолчанию)
Включает смещение, когда это требуется целевым форматом.
инвалид
Отключает смещение отметки времени.
Когда смещение включено, все временные метки вывода смещаются на одинаковую величину. Аудио,
сохраняются рассинхронизация видео и субтитров, а также относительная разница в отметках времени
по сравнению с тем, как они были бы без переключения.
Skip_initial_bytes целое (вход)
Установите количество байтов, которые нужно пропустить перед чтением заголовка и фреймов, если установлено значение 1. По умолчанию
0.
правильно_ts_overflow целое (вход)
Исправьте переполнение одиночной временной метки, если установлено значение 1. По умолчанию - 1.
flash_packets целое (выходной)
Очищать основной поток ввода-вывода после каждого пакета. По умолчанию 1 включает его и имеет
эффект уменьшения латентности; 0 отключает его и может немного повысить производительность в
некоторые случаи.
output_ts_offset смещение (выходной)
Установите смещение времени вывода.
смещение должно быть указанием продолжительности времени, см. Время продолжительность . in
ffmpeg-утилиты(1) руководство.
Смещение добавляется мультиплексором к выходным отметкам времени.
Указание положительного смещения означает, что соответствующие потоки задерживаются на
продолжительность времени, указанная в смещение. Значение по умолчанию - 0 (это означает, что смещение не
применяемый).
format_whitelist список (вход)
Разделенный "," Список разрешенных демультиплексоров. По умолчанию все разрешены.
dump_separator string (вход)
Разделитель, используемый для разделения полей, напечатанных в командной строке о потоке.
параметры. Например, чтобы разделить поля новой строкой и отступом:
ffprobe -dump_separator "
"-i ~ / видео / matrixbench_mpeg2.mpg
Формат поток спецификаторы
Спецификаторы потока формата позволяют выбрать один или несколько потоков, соответствующих определенному
свойства.
Возможные формы спецификаторов потока:
поток_индекс
Соответствует потоку с этим индексом.
тип_потока[:поток_индекс]
тип_потока может быть одним из следующих: 'v' для видео, 'a' для аудио, 's' для субтитров, 'd'
для данных и "t" для вложений. Если поток_индекс дается, то он соответствует
номер потока поток_индекс этого типа. В противном случае он соответствует всем потокам этого
тип.
p:идентификатор_программы[:поток_индекс]
If поток_индекс задан, то он соответствует потоку с номером поток_индекс в
программа с идентификатором идентификатор_программы. В противном случае он соответствует всем потокам в программе.
#поток_ид
Соответствует потоку по идентификатору, зависящему от формата.
Точная семантика спецификаторов потока определяется
Функция avformat_match_stream_specifier (), объявленная в libavformat / avformat.h
заголовка.
ДЕМУКСЕРЫ
Демультиплексоры - это сконфигурированные элементы в FFmpeg, которые могут читать мультимедийные потоки из
конкретный тип файла.
При настройке сборки FFmpeg все поддерживаемые демультиплексоры включены по умолчанию.
Вы можете перечислить все доступные, используя параметр конфигурации "--list-demuxers".
Вы можете отключить все демультиплексоры, используя параметр конфигурации "--disable-demuxers", и
выборочно включить один демультиплексор с помощью опции "--enable-demuxer ="ДЕМУКСЕР ", или отключить
это с опцией "--disable-demuxer ="ДЕМУКСЕР ".
Параметр "-formats" инструментов ff * отобразит список включенных демультиплексоров.
Ниже приводится описание некоторых из доступных в настоящее время демультиплексоров.
aa
Audible Format 2, 3 и 4 демультиплексор.
Этот демультиплексор используется для демультиплексирования файлов Audible Format 2, 3 и 4 (.aa).
яблоко
Демультиплексор Apple HTTP Live Streaming.
Этот демультиплексор представляет все AVStreams из всех вариантных потоков. В поле id установлено значение
порядковый номер варианта битрейта. Установив флаги сброса для AVStreams (нажав 'a'
или 'v' в ffplay), вызывающий может решить, какие варианты потоков фактически принимать. В
общий битрейт варианта, которому принадлежит поток, доступен в ключе метаданных
с именем "вариант_битрейт".
apng
Демультиплексор переносимой анимированной сетевой графики.
Этот демультиплексор используется для демультиплексирования файлов APNG. Все заголовки, кроме подписи PNG, до (но
не включая) первый фрагмент fcTL передаются как дополнительные данные. Затем кадры разделяются
как все фрагменты между двумя фрагментами fcTL или между последними фрагментами fcTL и IEND.
-ignore_loop BOOL
Игнорируйте переменную цикла в файле, если она установлена.
-max_fps Int
Максимальная частота кадров в кадрах в секунду (0 без ограничения).
-default_fps Int
Частота кадров по умолчанию в кадрах в секунду, если в файле ничего не указано (0 означает
как можно быстрее).
АФС
Демультиплексор Advanced Systems Format.
Этот демультиплексор используется для демультиплексирования файлов ASF и сетевых потоков MMS.
-no_resync_search BOOL
Не пытайтесь выполнить повторную синхронизацию, ища определенный необязательный стартовый код.
CONCAT
Демультиплексор скрипта виртуальной конкатенации.
Этот демультиплексор считывает список файлов и других директив из текстового файла и демультиплексирует их.
один за другим, как если бы все их пакеты были объединены вместе.
Метки времени в файлах настраиваются так, чтобы первый файл начинался с 0, а каждый следующий
файл начинается там, где заканчивается предыдущий. Обратите внимание, что это делается глобально и может вызвать
промежутки, если все потоки не имеют одинаковой длины.
Все файлы должны иметь одинаковые потоки (одинаковые кодеки, одинаковую временную развертку и т. Д.).
Продолжительность каждого файла используется для настройки отметок времени следующего файла: если
продолжительность неверна (потому что она была вычислена с использованием скорости передачи данных или потому что файл
усеченный, например), это может вызвать артефакты. Директива duration может использоваться для
переопределить продолжительность, хранящуюся в каждом файле.
Синтаксис
Сценарий представляет собой текстовый файл в расширенном коде ASCII с одной директивой в каждой строке. Пустые строки,
ведущие пробелы и строки, начинающиеся с символа "#", игнорируются. Следующая директива
признал:
"файл путь"
Путь к файлу для чтения; специальные символы и пробелы должны быть экранированы обратной косой чертой
или одинарные кавычки.
Все последующие директивы, относящиеся к файлу, применяются к этому файлу.
"ffconcat версия 1.0 "
Определите тип и версию скрипта. Он также устанавливает безопасный вариант 1, если это было
по умолчанию -1.
Чтобы FFmpeg распознавал формат автоматически, эта директива должна отображаться точно
как есть (без лишнего пробела или отметки порядка байтов) в самой первой строке скрипта.
"продолжительность жесткий"
Продолжительность файла. Эту информацию можно указать из файла; уточняя это
здесь может быть более эффективно или помочь, если информация из файла недоступна
или точный.
Если длительность задана для всех файлов, то можно искать по всему
объединенное видео.
"inpoint" отметка времени"
В точке файла. Когда демультиплексор открывает файл, он мгновенно ищет
указанная отметка времени. Поиск выполняется так, чтобы все потоки могли быть успешно представлены
в точке.
Эта директива лучше всего работает с внутрикадровыми кодеками, потому что для не-внутрикадровых кодеков
вы обычно получаете дополнительные пакеты до фактической точки входа и декодированного содержимого
скорее всего, будет также содержать фреймы до точки In.
Для каждого файла пакеты до точки входа в файл будут иметь метки времени меньше, чем
вычисленная отметка времени начала файла (отрицательная в случае первого файла), и
продолжительность файлов (если не указана директивой "duration") будет уменьшена
на основе их указанного в пункте.
Из-за потенциальных пакетов до указанной точки входа временные метки пакетов могут
перекрытие двух объединенных файлов.
"точка выхода" отметка времени"
Конечная точка файла. Когда демультиплексор достигает указанной отметки времени декодирования в
любой из потоков, он обрабатывает его как условие конца файла и пропускает текущий
и все остальные пакеты из всех потоков.
Точка выхода является исключительной, что означает, что демультиплексор не будет выводить пакеты с
временная метка декодирования больше или равна точке выхода.
Эта директива лучше всего работает с внутрикадровыми кодеками и форматами, в которых все потоки
плотно чередующиеся. Для кодеков без внутрикадрового кодека вы обычно получаете дополнительные
пакеты с отметкой времени представления после точки выхода, поэтому декодированный контент будет
скорее всего, содержат кадры и после точки выхода. Если ваши потоки не плотно
с чередованием вы не можете получить все пакеты из всех потоков до точки выхода, и вы
может декодировать только самый ранний поток до точки выхода.
Продолжительность файлов (если не указана в директиве "duration") будет
уменьшается в зависимости от указанной точки выхода.
"file_packet_metadata ключ = значение"
Метаданные пакетов файла. Указанные метаданные будут установлены для каждого файла
пакет. Вы можете указать эту директиву несколько раз, чтобы добавить несколько метаданных
записей.
"поток"
Добавьте поток в виртуальный файл. Все последующие директивы, относящиеся к потоку
применяется к последнему введенному потоку. Некоторые свойства потоков должны быть установлены, чтобы
позволяют идентифицировать совпадающие потоки в подфайлах. Если потоки не определены в
скрипта копируются потоки из первого файла.
"точный_стрим_ид" id"
Установите идентификатор потока. Если указана эта директива, строка с
будет использоваться соответствующий идентификатор в подфайлах. Это особенно полезно для MPEG-PS.
(VOB) файлы, порядок потоков которых ненадежен.
Возможности
Этот демультиплексор принимает следующие параметры:
безопасный
Если установлено значение 1, отклонять небезопасные пути к файлам. Путь к файлу считается безопасным, если он не
содержат спецификацию протокола и являются относительными, и все компоненты содержат только
символы из переносимого набора символов (буквы, цифры, точка, подчеркивание и
дефис) без точки в начале компонента.
Если установлено значение 0, принимается любое имя файла.
По умолчанию -1, это эквивалентно 1, если формат был автоматически проверен и 0
в противном случае.
auto_convert
Если установлено значение 1, попробуйте выполнить автоматическое преобразование пакетных данных, чтобы потоки
соединяемый. По умолчанию 1.
В настоящее время единственное преобразование - это добавление фильтра битового потока h264_mp4toannexb в
Потоки H.264 в формате MP4. Это особенно необходимо, если есть разрешение
изменений.
FLV
Демультиплексор Adobe Flash Video Format.
Этот демультиплексор используется для демультиплексирования файлов FLV и сетевых потоков RTMP.
-flv_метаданные BOOL
Распределите потоки в соответствии с содержимым массива onMetaData.
библиотека
Библиотека Game Music Emu - это коллекция эмуляторов музыкальных файлов видеоигр.
Видетьhttp://code.google.com/p/game-music-emu/> для получения дополнительной информации.
Некоторые файлы содержат несколько дорожек. По умолчанию демультиплексор выберет первую дорожку. В
track_index опцию можно использовать для выбора другой дорожки. Индексы треков начинаются с 0.
демультиплексор экспортирует количество треков как треков ввод метаданных.
Для очень больших файлов макс_размер вариант, возможно, придется отрегулировать.
libquvi
Воспроизведение медиафайлов из интернет-сервисов с помощью проекта quvi.
Демультиплексор принимает формат возможность запросить конкретное качество. По умолчанию установлено значение
лучший.
Видетьhttp://quvi.sourceforge.net/> для получения дополнительной информации.
FFmpeg должен быть построен с помощью "--enable-libquvi", чтобы этот демультиплексор был включен.
GIF
Демультиплексор анимированных GIF.
Он принимает следующие варианты:
мин_задержка
Установите минимальную допустимую задержку между кадрами в сотых долях секунды. Диапазон от 0 до
6000. Значение по умолчанию - 2.
max_gif_delay
Установите максимально допустимую задержку между кадрами в сотых долях секунды. Диапазон от 0 до
65535. Значение по умолчанию - 65535 (почти одиннадцать минут), максимальное значение, разрешенное
спецификация.
default_delay
Установите задержку по умолчанию между кадрами в сотых долях секунды. Диапазон от 0 до 6000.
Значение по умолчанию 10.
ignore_loop
Файлы GIF могут содержать информацию, повторяющуюся определенное количество раз (или бесконечно).
If ignore_loop установлен на 1, то установка цикла со входа будет проигнорирована и
зацикливания не произойдет. Если установлено значение 0, то будет происходить цикл, и число будет циклически повторяться.
раз по GIF. Значение по умолчанию - 1.
Например, с фильтром наложения поместите бесконечный цикл GIF поверх другого видео:
ffmpeg -i input.mp4 -ignore_loop 0 -i input.gif -filter_complex overlay = short = 1 out.mkv
Обратите внимание, что в приведенном выше примере самый короткий вариант для оверлейного фильтра используется для завершения
выводить видео по длине самого короткого входного файла, который в данном случае ввод.mp4 as
GIF в этом примере зацикливается бесконечно.
image2
Демультиплексор файла образа.
Этот демультиплексор читает из списка файлов изображений, заданных шаблоном. Синтаксис и
значение узора задается опцией Шаблонный тип.
Шаблон может содержать суффикс, который используется для автоматического определения формата
изображения, содержащиеся в файлах.
Размер, формат пикселей и формат каждого изображения должны быть одинаковыми для всех
файлы в последовательности.
Этот демультиплексор принимает следующие параметры:
Частота кадров
Установите частоту кадров для видеопотока. По умолчанию 25.
поиска
Если установлено в 1, перебрать вход. Значение по умолчанию - 0.
Шаблонный тип
Выберите тип шаблона, используемый для интерпретации указанного имени файла.
Шаблонный тип принимает одно из следующих значений.
нет
Отключите сопоставление с образцом, поэтому видео будет содержать только указанные
изображение. Вам следует использовать эту опцию, если вы не хотите создавать последовательности из
несколько изображений и имена ваших файлов могут содержать специальные символы шаблона.
последовательность
Выберите тип шаблона последовательности, используемый для указания последовательности файлов, проиндексированных
порядковые номера.
Шаблон последовательности может содержать строку «% d» или «% 0».Nd ", который определяет
положение символов, представляющих порядковый номер в каждом имени файла
соответствует образцу. Если форма "% d0Nd ", строка, представляющая
число в каждом имени файла дополняется нулями и N это общее количество цифр, дополненных нулями
представляющий число. В шаблоне можно указать буквальный символ '%'
со строкой "%%".
Если шаблон последовательности содержит «% d» или «% 0»Nd ", первое имя файла
список, указанный в шаблоне, должен содержать число, заключенное между
начальный_номер и начальный_номер+начальный_номер_диапазона-1 и все следующие числа
должны быть последовательными.
Например, шаблон «img-% 03d.bmp» будет соответствовать последовательности имен файлов
форма img-001.bmp, img-002.bmp..., img-010.bmp, и т.д.; шаблон
"i %% m %% g-% d.jpg" loading = "lazy" будет соответствовать последовательности имен файлов в форме я% m% g-1.jpg,
я% m% g-2.jpg..., я% m% g-10.jpg, и т.д.
Обратите внимание, что шаблон не обязательно должен содержать «% d» или «% 0».Nd ", например, чтобы
преобразовать один файл изображения изображение.jpeg вы можете использовать команду:
ffmpeg -i img.jpeg img.png
земной шар
Выберите тип шаблона подстановочного знака glob.
Шаблон интерпретируется как шаблон «glob ()». Это можно выбрать, только если
libavformat был скомпилирован с поддержкой подстановки.
glob_sequence (устарело, предусматривает be удален)
Выберите смешанный шаблон подстановочного знака / последовательности.
Если ваша версия libavformat была скомпилирована с поддержкой подстановки, и
предоставленный шаблон содержит по крайней мере один метасимвол глобуса среди "% *? [] {}", который
перед неэкранированным "%" шаблон интерпретируется как шаблон "glob ()",
в противном случае это интерпретируется как шаблон последовательности.
Все специальные символы glob "% *? [] {}" Должны иметь префикс "%". Чтобы избежать
буквальный "%" вы должны использовать "%%".
Например, шаблон «foo -% *. Jpeg» будет соответствовать всем именам файлов с префиксом
"foo-" с завершением на ".jpeg" и "foo -%?%?% ?. jpeg" будут соответствовать всем
имена файлов с префиксом "foo-", за которым следует последовательность из трех символов, и
заканчивается на ".jpeg".
Этот тип шаблона не рекомендуется в пользу земной шар и последовательность.
Значение по умолчанию glob_sequence.
формат_пикселя
Установите пиксельный формат считываемых изображений. Если не указан формат пикселей
угадывается из первого файла изображения в последовательности.
начальный_номер
Установите индекс файла, совпадающий с шаблоном файла изображения, с которого начинается чтение.
Значение по умолчанию 0.
начальный_номер_диапазона
Задайте диапазон интервала индекса для проверки при поиске первого файла изображения в
последовательность, начиная с начальный_номер. Значение по умолчанию - 5.
ts_from_file
Если установлено значение 1, метка времени кадра будет соответствовать времени изменения файла изображения. Обратите внимание, что
не обеспечивается однообразие временных меток: изображения идут в том же порядке, что и без этого
вариант. Значение по умолчанию - 0. Если установлено на 2, установит временную метку кадра для модификации.
время файла изображения с точностью до наносекунды.
размер видео
Установите размер видео для чтения. Если не указано иное, угадывается размер видео
из первого файла изображения в последовательности.
Примеры
· Использовать FFmpeg для создания видео из изображений в последовательности файлов img-001.jpeg,
img-002.jpeg, ..., предполагая, что входная частота кадров составляет 10 кадров в секунду:
ffmpeg -framerate 10 -i 'img-% 03d.jpeg' out.mkv
· То же, что и выше, но начните с чтения из файла с индексом 100 в следующей последовательности:
ffmpeg -framerate 10 -start_number 100 -i 'img-% 03d.jpeg' out.mkv
· Считывать изображения, соответствующие шаблону глобуса "* .png" loading = "lazy", то есть все файлы, заканчивающиеся на
суффикс ".png" loading = "ленивый":
ffmpeg -framerate 10 -pattern_type glob -i "* .png" loading = "ленивый" out.mkv
mov / mp4 / 3gp / Quicktme
Демультиплексор Quicktime / MP4.
Этот демультиплексор принимает следующие параметры:
Enable_drefs
Разрешить загрузку внешних треков, по умолчанию отключено. Включение этого может
теоретически утечка информации в некоторых случаях использования.
use_absolute_path
Позволяет загружать внешние треки по абсолютным путям, по умолчанию отключено. Включение
это создает угрозу безопасности. Его следует включать только в том случае, если известно, что источник не
злонамеренный.
MPEGTS
Демультиплексор транспортного потока MPEG-2.
Этот демультиплексор принимает следующие параметры:
resync_size
Установите ограничение на размер для поиска новой синхронизации. Значение по умолчанию - 65536.
fix_teletext_pts
Заменить значения PTS и DTS пакета телетекста на временные метки, рассчитанные из
PCR первой программы, частью которой является поток телетекста, не отбрасывается.
Значение по умолчанию - 1, установите для этого параметра значение 0, если вы хотите, чтобы ваш пакет телетекста PTS и DTS.
ценности нетронутые.
ts_packetsize
Параметр вывода, содержащий размер необработанного пакета в байтах. Показать обнаруженный необработанный пакет
размер, не может быть установлен пользователем.
scan_all_pmts
Отсканируйте и объедините все PMT. Значение представляет собой целое число от -1 до 1 (-1 означает
автоматическая настройка, 1 означает включено, 0 означает отключено). Значение по умолчанию -1.
сырое видео
Демультиплексор сырого видео.
Этот демультиплексор позволяет читать необработанные видеоданные. Поскольку нет заголовка, определяющего
предполагаемые параметры видео, пользователь должен указать их, чтобы иметь возможность декодировать
данные правильно.
Этот демультиплексор принимает следующие параметры:
Частота кадров
Установите частоту кадров входного видео. Значение по умолчанию - 25.
формат_пикселя
Установите формат пикселей входного видео. Значение по умолчанию - «yuv420p».
размер видео
Установите размер входного видео. Это значение должно быть указано явно.
Например, чтобы прочитать файл rawvideo input.raw ffplay, предполагая, что формат пикселей
«rgb24», размер видео «320x240» и частота кадров 10 изображений в секунду, используйте
команда:
ffplay -f rawvideo -pixel_format rgb24 -video_size 320x240 -частота кадров 10 input.raw
SBG
Демультиплексор скриптов SBaGen.
Этот демультиплексор читает скриптовый язык, используемый SBaGen.http://uazu.net/sbagen/> к
генерировать сеансы бинауральных ритмов. Скрипт SBG выглядит так:
-se
a: 300-2.5/3 440+4.5/0
b: 300-2.5/0 440+4.5/3
выключенный: -
СЕЙЧАС == а
+0: 07: 00 == б
+0: 14: 00 == а
+0: 21: 00 == б
+0: 30: 00 выкл.
Сценарий SBG может смешивать абсолютные и относительные отметки времени. Если в сценарии используется только
абсолютные временные метки (включая время начала скрипта) или только относительные, то его
макет фиксирован, а преобразование не вызывает затруднений. С другой стороны, если сценарий
смешивает оба типа временных меток, затем СЕЙЧАС ссылка для относительных отметок времени будет
взято из текущего времени суток в момент чтения скрипта, а макет скрипта
будет заморожен в соответствии с этой ссылкой. Это означает, что если сценарий напрямую
воспроизведено, фактическое время будет соответствовать абсолютным отметкам времени до звукового контроллера
точность часов, но если пользователь каким-то образом приостанавливает воспроизведение или ищет, все время будет
соответственно сместился.
Тедкапции
Подписи JSON, используемые дляhttp://www.ted.com/>.
TED не предоставляет ссылок на подписи, но их можно угадать со страницы. В
файл инструменты / bookmarklets.html из исходного дерева FFmpeg содержит букмарклет для отображения
их.
Этот демультиплексор принимает следующие параметры:
начальное время
Установите время начала выступления TED в миллисекундах. По умолчанию - 15000 (15 с). это
используется для синхронизации субтитров с загружаемыми видео, поскольку они содержат
интро.
Пример: конвертируйте подписи в формат, понятный большинству игроков:
ffmpeg -я http://www.ted.com/talks/subtitles/id/1/lang/en talk1-ru.srt
МУКСЕРЫ
Муксеры - это сконфигурированные элементы в FFmpeg, которые позволяют записывать мультимедийные потоки в
конкретный тип файла.
При настройке сборки FFmpeg все поддерживаемые мультиплексоры включены по умолчанию. Ты
может вывести список всех доступных мультиплексоров, используя параметр конфигурации "--list-muxers".
Вы можете отключить все мультиплексоры с помощью параметра конфигурации "--disable-muxers" и
выборочно включать / отключать одиночные мультиплексоры с помощью параметров "--enable-muxer ="MUXER " /
"--disable-muxer =MUXER ".
Параметр «-formats» инструментов ff * отображает список включенных мультиплексоров.
Ниже приводится описание некоторых из доступных в настоящее время мультиплексоров.
AIFF
Мультиплексор формата аудиообмена.
Возможности
Он принимает следующие варианты:
write_id3v2
Включите запись тегов ID3v2, если установлено значение 1. По умолчанию - 0 (отключено).
id3v2_версия
Выберите версию ID3v2 для записи. В настоящее время только версии 3 и 4 (также известные как ID3v2.3 и
ID3v2.4) поддерживаются. По умолчанию - версия 4.
CRC
Формат тестирования CRC (Cyclic Redundancy Check).
Этот мультиплексор вычисляет и печатает CRC Adler-32 всех входных аудио- и видеокадров.
По умолчанию аудиокадры преобразуются в 16-битные необработанные аудиофайлы со знаком, а видеокадры - в необработанные.
видео до вычисления CRC.
Выход мультиплексора состоит из единственной строки вида: CRC = 0xCRC, Где CRC - это
шестнадцатеричное число, дополненное 0 до 8 цифр, содержащее CRC для всего декодированного ввода
кадры.
См. Также кадр мультиплексор.
Примеры
Например, чтобы вычислить CRC ввода и сохранить его в файле out.crc:
ffmpeg -i ВХОД -f crc out.crc
Вы можете распечатать CRC в стандартный вывод с помощью команды:
ffmpeg -i ВХОД -f crc -
Вы можете выбрать выходной формат каждого кадра с помощью FFmpeg указав аудио и
видеокодек и формат. Например, чтобы вычислить CRC входящего звука, преобразованного в PCM.
беззнаковый 8-битный и входное видео преобразовано в видео MPEG-2, используйте команду:
ffmpeg -i ВХОД -c: a pcm_u8 -c: v mpeg2video -f crc -
кадр
Посадочный формат тестирования CRC (Cyclic Redundancy Check).
Этот мультиплексор вычисляет и печатает CRC Adler-32 для каждого аудио и видео пакета. От
аудиокадры по умолчанию преобразуются в 16-битные необработанные аудиофайлы со знаком, а видеокадры - в необработанные.
видео до вычисления CRC.
Выход мультиплексора состоит из строки для каждого аудио- и видеопакета вида:
, , , , , 0x
CRC представляет собой шестнадцатеричное число с дополнением 0 до 8 цифр, содержащее CRC пакета.
Примеры
Например, чтобы вычислить CRC аудио и видео кадров в ВХОД, преобразовано в необработанный
аудио- и видеопакеты, и сохранить их в файле out.crc:
ffmpeg -i ВХОД -f framecrc out.crc
Чтобы вывести информацию на стандартный вывод, используйте команду:
ffmpeg -i ВХОД -f framecrc -
В FFmpeg, вы можете выбрать выходной формат, в котором будут отображаться аудио- и видеокадры.
кодируется перед вычислением CRC для каждого пакета путем указания аудио- и видеокодеков.
Например, чтобы вычислить CRC каждого декодированного входного аудиокадра, преобразованного в PCM
беззнаковый 8-битный и для каждого декодированного входного видеокадра, преобразованного в видео MPEG-2, используйте
команда:
ffmpeg -i INPUT -c: a pcm_u8 -c: v mpeg2video -f framecrc -
См. Также CRC мультиплексор.
кадрмд5
Посадочный формат тестирования MD5.
Этот мультиплексор вычисляет и печатает хэш MD5 для каждого аудио и видео пакета. По умолчанию
аудиокадры преобразуются в 16-битное необработанное аудио со знаком, а видеокадры - в необработанное видео до
вычисление хэша.
Выход мультиплексора состоит из строки для каждого аудио- и видеопакета вида:
, , , , ,
MD5 - шестнадцатеричное число, представляющее вычисленный хэш MD5 для пакета.
Примеры
Например, чтобы вычислить MD5 аудио и видео кадров в ВХОД, преобразовано в необработанный
аудио- и видеопакеты, и сохранить их в файле аут.md5:
ffmpeg -i ВХОД -f framemd5 out.md5
Чтобы вывести информацию на стандартный вывод, используйте команду:
ffmpeg -i ВХОД -f framemd5 -
См. Также md5 мультиплексор.
GIF
Анимированный GIF мультиплексор.
Он принимает следующие варианты:
поиска
Установите количество циклов вывода. Используйте «-1» для отсутствия цикла, 0 для цикла
бессрочно (по умолчанию).
Final_delay
Установить задержку (выраженную в сантисекундах) после последнего кадра. Каждый кадр заканчивается
задержка до следующего кадра. Значение по умолчанию - «-1», что является специальным значением, чтобы сообщить
мультиплексор, чтобы повторно использовать предыдущую задержку. В случае цикла вы можете настроить
это значение, например, чтобы отметить паузу.
Например, чтобы закодировать 10-кратный цикл gif с задержкой в 5 секунд между циклами:
ffmpeg -i INPUT -loop 10 -final_delay 500 out.gif
Примечание 1: если вы хотите извлечь кадры в отдельные файлы GIF, вам необходимо принудительно
image2 мультиплексор:
ffmpeg -i INPUT -c: v gif -f image2 "out% d.gif"
Примечание 2: формат GIF имеет очень маленькую временную базу: задержка между двумя кадрами не может быть
меньше одного сантиметра секунды.
HLS
Мультиплексор Apple HTTP Live Streaming, который сегментирует MPEG-TS в соответствии с HTTP Live Streaming
(HLS) спецификация.
Он создает файл списка воспроизведения и один или несколько файлов сегментов. Имя выходного файла указывает
имя файла списка воспроизведения.
По умолчанию мультиплексор создает файл для каждого произведенного сегмента. Эти файлы имеют одинаковые
имя в качестве списка воспроизведения, за которым следует порядковый номер и расширение .ts.
Например, чтобы преобразовать входной файл с FFmpeg:
ffmpeg -i вход.нут выход.m3u8
В этом примере будет создан список воспроизведения, аут.m3u8, и файлы сегментов: out0.ts, out1.ts,
out2.ts, и т.д.
См. Также сегмент мультиплексор, который обеспечивает более общую и гибкую реализацию
segmenter и может использоваться для выполнения сегментации HLS.
Возможности
Этот мультиплексор поддерживает следующие параметры:
hls_time секунды
Установите длину сегмента в секундах. Значение по умолчанию - 2.
hls_list_size размер
Установите максимальное количество записей в плейлисте. Если установлено значение 0, файл списка будет содержать все
сегменты. Значение по умолчанию - 5.
hls_ts_options options_list
Установите параметры формата вывода, используя разделенный: список параметров ключ = значение. Ценности
содержащие ":" специальные символы должны быть экранированы.
hls_wrap заворачивать
Задайте номер, после которого номер файла сегмента (номер, указанный в каждом
сегментный файл). Если установлено значение 0, число никогда не будет перенесено. Значение по умолчанию - 0.
Эта опция полезна, чтобы избежать заполнения диска большим количеством файлов сегментов, и ограничивает
максимальное количество файлов сегментов, записываемых на диск заворачивать.
начальный_номер номер
Начать порядковый номер списка воспроизведения с номер. Значение по умолчанию - 0.
hls_allow_cache разрешить кэш
Явно устанавливает, МОЖЕТ ли клиент \fIS0(1) или НЕ ДОЛЖЕН \fIS0(0) кэш-носитель
сегменты.
hls_base_url базовый URL
присоединять базовый URL к каждой записи в плейлисте. Полезно для создания плейлистов с
абсолютные пути.
Обратите внимание, что порядковый номер списка воспроизведения должен быть уникальным для каждого сегмента и не является
следует путать с порядковым номером имени файла сегмента, который может быть циклическим, например
пример, если заворачивать опция указана.
hls_segment_filename имя файла
Задайте имя файла сегмента. Если не установлен hls_flags single_file имя файла используется как
строковый формат с номером сегмента:
ffmpeg in.nut -hls_segment_filename 'file% 03d.ts' out.m3u8
В этом примере будет создан список воспроизведения, аут.m3u8, и файлы сегментов: файл000.ts,
файл001.ts, файл002.ts, и т.д.
hls_key_info_file ключевой_информационный_файл
Используйте информацию в ключевой_информационный_файл для сегментного шифрования. Первая строка
ключевой_информационный_файл указывает ключевой URI, записанный в список воспроизведения. Ключевой URL-адрес используется для
получить доступ к ключу шифрования во время воспроизведения. Вторая строка указывает путь к
key файл, используемый для получения ключа в процессе шифрования. Ключевой файл читается как
единый упакованный массив из 16 октетов в двоичном формате. Необязательная третья строка указывает
вектор инициализации (IV) в виде шестнадцатеричной строки, которая будет использоваться вместо
порядковый номер сегмента (по умолчанию) для шифрования. Изменения к ключевой_информационный_файл приведет к
в сегментном шифровании с новым ключом / IV и записью в плейлисте для нового ключа
URI / IV.
Формат файла ключевой информации:
(по желанию)
Пример ключевых URI:
http://server/file.key
/путь/к/файлу.ключ
файл.key
Примеры путей к ключевым файлам:
файл.key
/путь/к/файлу.ключ
Пример IV:
0123456789ABCDEF0123456789ABCDEF
Пример файла с ключевой информацией:
http://server/file.key
/путь/к/файлу.ключ
0123456789ABCDEF0123456789ABCDEF
Пример сценария оболочки:
#!/ Бен / ш
BASE_URL = $ {1: - '.'}
openssl rand 16> файл.key
echo $ BASE_URL / file.key> file.keyinfo
echo file.key >> file.keyinfo
эхо $ (openssl rand -hex 16) >> file.keyinfo
ffmpeg -f lavfi -re -i testsrc -c: v h264 -hls_flags delete_segments \
-hls_key_info_file файл.keyinfo out.m3u8
hls_flags отдельный файл
Если этот флаг установлен, мультиплексор сохранит все сегменты в одном файле MPEG-TS, и
будет использовать байтовые диапазоны в списке воспроизведения. Плейлисты HLS, созданные таким образом, будут иметь
номер версии 4. Например:
ffmpeg -i in.nut -hls_flags одиночный_файл out.m3u8
Составлю плейлист, аут.m3u8, и односегментный файл, вых.тс.
hls_flags delete_segments
Файлы сегментов, удаленные из списка воспроизведения, удаляются по истечении периода времени, равного
продолжительность сегмента плюс продолжительность списка воспроизведения.
ICO
Мультиплексор файлов ICO.
Формат файлов значков Microsoft (ICO) имеет некоторые строгие ограничения, на которые следует обратить внимание:
· Размер не может превышать 256 пикселей в любом измерении.
· Могут быть сохранены только изображения BMP и PNG
· Если используется изображение BMP, оно должно быть одного из следующих форматов пикселей:
Битовая глубина BMP Формат пикселей FFmpeg
1 бит pal8
4 бит pal8
8 бит pal8
16-битный rgb555le
24-битный bgr24
32-битная бгра
· Если используется изображение BMP, оно должно использовать заголовок BITMAPINFOHEADER DIB.
· Если используется изображение PNG, оно должно использовать формат пикселей rgba.
image2
Мультиплексор файлов изображений.
Мультиплексор файлов изображений записывает видеокадры в файлы изображений.
Имена выходных файлов задаются шаблоном, который можно использовать для последовательного создания
пронумерованные серии файлов. Шаблон может содержать строку «% d» или «% 0».Nd ", эта строка
определяет положение символов, представляющих нумерацию в именах файлов. Если
форма "% 0Nd ", строка, представляющая номер в каждом имени файла, дополняется 0 до N
цифры. Буквальный символ «%» можно указать в шаблоне со строкой «%%».
Если шаблон содержит «% d» или «% 0»Nd ", первое имя указанного списка файлов будет
содержат цифру 1, все следующие числа будут последовательными.
Шаблон может содержать суффикс, который используется для автоматического определения формата
файлы изображений для записи.
Например, шаблон «img-% 03d.bmp» будет указывать последовательность имен файлов в форме
img-001.bmp, img-002.bmp..., img-010.bmpи т. д. В шаблоне "img %% -% d.jpg" loading = "lazy" будет указано
последовательность имен файлов в форме img% -1.jpg, img% -2.jpg..., img% -10.jpg, и т.д.
Примеры
В следующем примере показано, как использовать FFmpeg для создания последовательности файлов
img-001.jpeg, img-002.jpeg, ..., снимая по одному изображению каждую секунду из входного видео:
ffmpeg -i in.avi -vsync 1 -r 1 -f image2 'img-% 03d.jpeg'
Обратите внимание, что с FFmpeg, если формат не указан с параметром "-f" и вывод
filename указывает формат файла изображения, мультиплексор image2 выбирается автоматически, поэтому
предыдущую команду можно записать как:
ffmpeg -i in.avi -vsync 1 -r 1 'img-% 03d.jpeg'
Также обратите внимание, что шаблон не обязательно должен содержать «% d» или «% 0».Nd ", например, чтобы
создать единый файл изображения изображение.jpeg из входного видео вы можете использовать команду:
ffmpeg -i in.avi -f image2 -frames: v 1 img.jpeg
Команда стрфтайм опция позволяет расширить имя файла информацией о дате и времени.
Проверьте синтаксис в документации функции strftime ().
Например, чтобы сгенерировать файлы изображений из шаблона "strftime ()" "% Y-% m-% d_% H-% M-% S",
после FFmpeg можно использовать команду:
ffmpeg -f v4l2 -r 1 -i / dev / video0 -f image2 -strftime 1 "% Y-% m-% d_% H-% M-% S.jpg"
Возможности
начальный_номер
Начать последовательность с указанного номера. Значение по умолчанию - 0.
обновление
Если установлено значение 1, имя файла всегда будет интерпретироваться как просто имя файла, а не как имя файла.
шаблон, и соответствующий файл будет постоянно перезаписываться новыми изображениями.
Значение по умолчанию 0.
стрфтайм
Если установлено в 1, расширьте имя файла информацией о дате и времени из "strftime ()".
Значение по умолчанию 0.
Мультиплексор изображений поддерживает формат файлов изображений .YUV. Этот формат особенный тем, что
каждый кадр изображения состоит из трех файлов для каждого из компонентов YUV420P. Читать или
напишите этот формат файла изображения, укажите имя файла '.Y'. Мультиплексор будет
автоматически открывать файлы .U и .V по мере необходимости.
Matroska
Контейнерный мультиплексор Matroska.
Этот мультиплексор реализует спецификации контейнера matroska и webm.
Метаданные
Распознаваемые настройки метаданных в этом мультиплексоре:
название
Задайте название заголовка для отдельной дорожки.
язык
Укажите язык трека в форме Matroska languages.
Языком может быть трехбуквенная библиографическая форма ISO-3-639 (ISO 2-639 / B).
(например, "fre" для французского) или код языка, смешанный с кодом страны для специальностей
в языках (например, "fre-ca" для канадского французского).
стерео_режим
Установите стерео 3D-макет видео с двумя видами на одной видеодорожке.
Признаны следующие ценности:
моно
видео не стерео
лево право
Оба вида расположены рядом, вид для левого глаза находится слева.
снизу сверху
Оба вида расположены в ориентации сверху вниз, вид для левого глаза - внизу.
верх_низ
Оба вида расположены в ориентации сверху вниз, вид для левого глаза сверху.
шахматная доска_rl
Каждое представление расположено в виде чередующегося рисунка шахматной доски, вид для левого глаза
первый
шахматная доска_lr
Каждое представление расположено в виде чередующегося рисунка шахматной доски, вид правым глазом
первый
row_interleaved_rl
Каждое представление состоит из чередования на основе строк, вид правым глазом - первая строка
row_interleaved_lr
Каждое представление состоит из чередования на основе строк, вид для левого глаза - первая строка
col_interleaved_rl
Оба представления расположены в порядке чередования столбцов, вид правым глазом
первый столбец
col_interleaved_lr
Оба вида расположены в порядке чередования столбцов, вид для левого глаза
первый столбец
анаглиф_циан_красный
Все кадры имеют анаглифический формат и просматриваются через красно-голубые фильтры.
право лево
Оба вида расположены рядом, вид правым глазом находится слева.
анаглиф_зеленый_пурпурный
Все кадры имеют анаглифический формат и просматриваются через фильтры зелено-пурпурного цвета.
блок_лр
Оба глаза соединены в один блок, сначала левый глаз
блок_рл
Оба глаза соединены в один блок, сначала вид правым глазом
Например, клип 3D WebM можно создать с помощью следующей командной строки:
ffmpeg -i sample_left_right_clip.mpg -an -c: v libvpx -metadata stereo_mode = left_right -y stereo_clip.webm
Возможности
Этот мультиплексор поддерживает следующие параметры:
Reserve_index_space
По умолчанию этот мультиплексор записывает индекс для поиска (называемый репликами в терминах Matroska) в
конец файла, потому что он не может заранее знать, сколько места оставить для
index в начале файла. Однако для некоторых случаев использования - например, для потоковой передачи.
где поиск возможен, но медленный - полезно поставить индекс в начале
файла.
Если для этой опции установлено ненулевое значение, мультиплексор зарезервирует заданное количество
пробела в заголовке файла, а затем попытайтесь записать туда реплики, когда мультиплексирование
отделка. Если доступного пространства недостаточно, мультиплексирование завершится ошибкой. Безопасный размер для
в большинстве случаев требуется около 50 КБ на час видео.
Обратите внимание, что реплики записываются только в том случае, если вывод доступен для поиска, и эта опция не будет иметь
эффект, если это не так.
md5
Формат тестирования MD5.
Этот мультиплексор вычисляет и печатает хэш MD5 всех входных аудио- и видеокадров. От
аудиокадры по умолчанию преобразуются в 16-битные необработанные аудиофайлы со знаком, а видеокадры - в необработанные.
видео перед вычислением хэша.
Выход мультиплексора состоит из единственной строки вида: MD5 =MD5, Где MD5 - это
шестнадцатеричное число, представляющее вычисленный хэш MD5.
Например, чтобы вычислить хэш MD5 входного сигнала, преобразованного в необработанное аудио и видео, и
сохранить это в файле аут.md5:
ffmpeg -i ВХОД -f md5 out.md5
Вы можете распечатать MD5 на стандартный вывод с помощью команды:
ffmpeg -i ВХОД -f md5 -
См. Также кадрмд5 мультиплексор.
мов, mp4, измв
MOV / MP4 / ISMV (Smooth Streaming) мультиплексор.
Мультиплексор mov / mp4 / ismv поддерживает фрагментацию. Обычно файл MOV / MP4 имеет все
метаданные обо всех пакетах, хранящихся в одном месте (записанные в конце файла, они могут
переместите в начало для лучшего воспроизведения, добавив FastStart до movflagsили используя
qt-быстрый запуск инструмент). Фрагментированный файл состоит из ряда фрагментов, в которых пакеты
и метаданные об этих пакетах хранятся вместе. Запись фрагментированного файла имеет
преимущество в том, что файл декодируется, даже если запись прервана (в то время как нормальный
MOV / MP4 нельзя декодировать, если он не закончен должным образом), и для него требуется меньше памяти, когда
запись очень длинных файлов (поскольку при записи обычных файлов MOV / MP4 сохраняется информация о каждом отдельном
пакет в памяти до закрытия файла). Обратной стороной является то, что он менее совместим.
с другими приложениями.
Возможности
Фрагментация включается путем установки одного из параметров AVOptions, которые определяют, как вырезать файл.
на фрагменты:
-moov_size байт
Резервирует место для атома moov в начале файла вместо размещения
атом moov в конце. Если зарезервированного пространства недостаточно, мультиплексирование завершится ошибкой.
-movflags фрагмент_ключевого кадра
Начинайте новый фрагмент с каждого ключевого кадра видео.
-frag_duration продолжительность
Создавайте фрагменты, которые продолжительность микросекунды долго.
-frag_size размер
Создавайте фрагменты, содержащие до размер байты данных полезной нагрузки.
-movflags фрагмент_custom
Позвольте вызывающему абоненту вручную выбирать, когда вырезать фрагменты, позвонив
«av_write_frame (ctx, NULL)» для записи фрагмента с уже записанными пакетами. (Этот
полезен только с другими приложениями, интегрирующими libavformat, а не с FFmpeg.)
-min_frag_duration продолжительность
Не создавайте фрагменты короче, чем продолжительность микросекунды долго.
Если указано более одного условия, фрагменты будут вырезаны, когда одно из указанных
условия выполнены. Исключением является "-min_frag_duration", которое должно быть
выполняется для применения любых других условий.
Кроме того, способ записи выходного файла можно настроить с помощью нескольких других
опции:
-movflags пустой_moov
Напишите начальный атом moov прямо в начале файла, не описывая никаких
образцы в нем. Обычно пара mdat / moov записывается в начале файла как
обычный файл MOV / MP4, содержащий только короткую часть файла. С этой опцией
установлено, что начального атома mdat нет, а атом moov описывает только треки, но
имеет нулевую продолжительность.
Этот параметр неявно устанавливается при записи файлов ismv (Smooth Streaming).
-movflags отдельный_муф
Напишите отдельный атом муфа (фрагмента фильма) для каждого трека. Обычно пакеты для всех
треки записываются в атоме moof (что немного более эффективно), но с этим
установленный параметр, мультиплексор записывает одну пару moof / mdat для каждого трека, что упрощает
отдельные треки.
Этот параметр неявно устанавливается при записи файлов ismv (Smooth Streaming).
-movflags FastStart
Выполните второй проход, переместив индекс (атом moov) в начало файла. Этот
операция может занять некоторое время и не будет работать в различных ситуациях, например, при фрагментированной
вывод, поэтому по умолчанию он не включен.
-movflags ртфинт
Добавьте треки хинтинга RTP в выходной файл.
-movflags отключить_чпл
Отключить маркеры глав Nero (атом chpl). Обычно и главы Nero, и
Дорожка главы QuickTime записывается в файл. Если этот параметр установлен, только
Будет записана дорожка главы QuickTime. Главы Nero могут вызывать сбои, когда
файл обрабатывается с помощью определенных программ тегов, таких как mp3Tag 2.61a и iTunes 11.3,
скорее всего, затронуты и другие версии.
-movflags опустить_tfhd_offset
Не записывайте никаких абсолютных значений base_data_offset в атомах tfhd. Это позволяет избежать связывания фрагментов
в абсолютные байтовые позиции в файле / потоках.
-movflags default_base_moof
Подобно omit_tfhd_offset, этот флаг позволяет избежать записи абсолютного
base_data_offset в атомах tfhd, но делает это с помощью нового default-base-is-
флаг moof вместо этого. Этот флаг появился впервые с 14496 по 12: 2012. Это может сделать фрагменты
легче анализировать при определенных обстоятельствах (избегая определения местоположения фрагмента трека
вычисления на неявном конце предыдущего фрагмента трека).
Пример
С помощью этого
мультиплексор. Пример:
ffmpeg -re < > -movflags isml + frag_keyframe -f ismv http://server/publishingpoint.isml/Streams(Кодер 1)
Звуковой AAX
Файлы Audible AAX - это зашифрованные файлы M4B, и их можно расшифровать, указав 4
байтовый секрет активации.
ffmpeg -activation_bytes 1CEB00DA -i test.aax -vn -c: копия output.mp4
mp3
Мультиплексор MP3 записывает необработанный поток MP3 со следующими дополнительными функциями:
· Заголовок метаданных ID3v2 в начале (по умолчанию включен). Версии 2.3 и 2.4
поддерживаются, закрытый параметр "id3v2_version" определяет, какой из них используется (3 или 4).
Установка «id3v2_version» в 0 полностью отключает заголовок ID3v2.
Мультиплексор поддерживает запись прикрепленных изображений (кадров APIC) в заголовок ID3v2. В
изображения поступают в мультиплексор в виде видеопотока с одним пакетом.
Таких потоков может быть любое количество, каждый будет соответствовать одному кадру APIC.
Теги метаданных потока название и комментарий карта в APIC описание и картина напишите
соответственно. Видетьhttp://id3.org/id3v2.4.0-frames> для разрешенных типов изображений.
Обратите внимание, что кадры APIC должны быть записаны в начале, поэтому мультиплексор будет буферизовать
звуковые кадры, пока не получат все изображения. Поэтому рекомендуется предоставить
изображения как можно скорее, чтобы избежать чрезмерной буферизации.
· Кадр Xing / LAME сразу после заголовка ID3v2 (если присутствует). По умолчанию он включен,
но будет записан только в том случае, если вывод доступен для поиска. Частная опция "write_xing"
можно использовать для его отключения. Кадр содержит различную информацию, которая может быть полезна
декодеру, например длительность звука или задержка кодировщика.
· Устаревший тег ID3v1 в конце файла (по умолчанию отключен). Это может быть включено
с закрытым параметром "write_id3v1", но поскольку его возможности очень ограничены, его
использование не рекомендуется.
Примеры:
Напишите mp3 с заголовком ID3v2.3 и нижним колонтитулом ID3v1:
ffmpeg -i ВХОД -id3v2_version 3 -write_id3v1 1 out.mp3
Чтобы прикрепить изображение к mp3-файлу, выберите и аудио, и поток изображений с помощью
"карта":
ffmpeg -i input.mp3 -i Cover.png -c копировать -map 0 -map 1
-metadata: s: v title = "Обложка альбома" -metadata: s: v comment = "Cover (Front)" out.mp3
Напишите «чистый» MP3 без каких-либо дополнительных функций:
ffmpeg -i input.wav -write_xing 0 -id3v2_version 0 out.mp3
MPEGTS
Мультиплексор транспортного потока MPEG.
Этот мультиплексор соответствует стандарту ISO 13818-1 и части ETSI EN 300 468.
Распознаваемые настройки метаданных в мультиплексоре MPEGTS: «service_provider» и
"наименование услуги". Если они не установлены, по умолчанию для "service_provider" будет "FFmpeg", а
по умолчанию для "service_name" установлено "Service01".
Возможности
Варианты мультиплексора:
-mpegts_original_network_id номер
Установите original_network_id (по умолчанию 0x0001). Это уникальный идентификатор сети.
в DVB. Его основное использование - уникальная идентификация услуги через путь
Original_Network_ID, Transport_Stream_ID.
-mpegts_transport_stream_id номер
Установите transport_stream_id (по умолчанию 0x0001). Это идентифицирует транспондер в DVB.
-mpegts_service_id номер
Установите service_id (по умолчанию 0x0001), также известный как программа в DVB.
-mpegts_service_type номер
Установите программу service_type (по умолчанию Цифровое телевидение), см. ниже список предопределенных
значения.
-mpegts_pmt_start_pid номер
Установите первый PID для PMT (по умолчанию 0x1000, максимум 0x1f00).
-mpegts_start_pid номер
Установите первый PID для пакетов данных (по умолчанию 0x0100, максимум 0x0f00).
-mpegts_m2ts_mode номер
Включите режим m2ts, если он установлен на 1. Значение по умолчанию -1, что отключает режим m2ts.
-мультискорость номер
Установите постоянную мультиплексорную скорость (по умолчанию VBR).
-pcr_ period Numer
Отменить время повторной передачи PCR по умолчанию (по умолчанию 20 мс), игнорируется, если переменная
выбран муксрат.
пат_период номер
Максимальное время в секундах между таблицами PAT / PMT.
sdt_период номер
Максимальное время в секундах между таблицами SDT.
-pes_payload_size номер
Установите минимальную полезную нагрузку пакета PES в байтах.
-mpegts_flags Флаги
Установите флаги (см. Ниже).
-mpegts_copyts номер
Сохранить исходные отметки времени, если установлено значение 1. Значение по умолчанию - -1, что приводит к
в смещении отметок времени так, чтобы они начинались с 0.
-tables_version номер
Установите версию PAT, PMT и SDT (по умолчанию 0, допустимые значения от 0 до 31 включительно).
Эта опция позволяет обновлять структуру потока, чтобы стандартный потребитель мог обнаружить
изменять. Для этого повторно откройте выходной AVFormatContext (в случае использования API) или перезапустите
Экземпляр ffmpeg, циклически меняющий значение tables_version:
ffmpeg -i source1.ts -codec copy -f mpegts -tables_version 0 UDP: //1.1.1.1: 1111
ffmpeg -i source2.ts -codec copy -f mpegts -tables_version 1 UDP: //1.1.1.1: 1111
...
ffmpeg -i source3.ts -codec copy -f mpegts -tables_version 31 UDP: //1.1.1.1: 1111
ffmpeg -i source1.ts -codec copy -f mpegts -tables_version 0 UDP: //1.1.1.1: 1111
ffmpeg -i source2.ts -codec copy -f mpegts -tables_version 1 UDP: //1.1.1.1: 1111
...
Опция mpegts_service_type принимает следующие значения:
шестнадцатеричное_значение
Любое шестнадцатеричное значение от 0x01 до 0xff, как определено в ETSI 300 468.
Цифровое телевидение
Услуга цифрового ТВ.
цифровое_радио
Служба цифрового радио.
телетекст
Услуга телетекста.
Advanced_codec_digital_radio
Услуга Advanced Codec Digital Radio.
mpeg2_digital_hdtv
MPEG2 Digital HDTV сервис.
Advanced_codec_digital_sdtv
Advanced Codec Digital SDTV сервис.
Advanced_codec_digital_hdtv
Advanced Codec Digital HDTV сервис.
Опция mpegts_flags может принимать набор таких флагов:
Resend_headers
Повторно отправьте PAT / PMT перед записью следующего пакета.
латм
Используйте пакетирование LATM для AAC.
pat_pmt_at_frames
Повторно отправляйте PAT и PMT на каждом кадре видео.
Пример
ffmpeg -i файл.mpg -c копировать \
-mpegts_original_network_id 0x1122 \
-mpegts_transport_stream_id 0x3344 \
-mpegts_service_id 0x5566 \
-mpegts_pmt_start_pid 0x1500 \
-mpegts_start_pid 0x150 \
-metadata service_provider = "Какой-то провайдер" \
-metadata service_name = "Некоторый канал" \
-y вне.тс
мультимедиа, mxf_d10
MXF мультиплексор.
Возможности
Варианты мультиплексора:
store_user_comments BOOL
Установите, следует ли сохранять комментарии пользователей, если они доступны, или никогда. ИРТ Д-10 не позволяет
комментарии пользователей. Таким образом, по умолчанию они записываются для mxf, но не для mxf_d10.
нуль
Нулевой мультиплексор.
Этот мультиплексор не генерирует выходной файл, он в основном полезен для тестирования или
сравнительный анализ.
Например, чтобы протестировать декодирование с помощью FFmpeg вы можете использовать команду:
ffmpeg -benchmark -i INPUT -f null out.null
Обратите внимание, что приведенная выше команда не читает и не записывает out.null файл, но указав
выходной файл требуется FFmpeg синтаксис.
В качестве альтернативы вы можете написать команду как:
ffmpeg -benchmark -i INPUT -f null -
натс
-синкпойнты Флаги
Измените использование точки синхронизации в орехе:
по умолчанию использование "обычные" низкие накладные расходы поиск СПИД.
нет do использование точки синхронизации at все, снижение накладные расходы но изготовление поток
не требующий поиска;
Использовать эту опцию не рекомендуется, так как полученные файлы сильно повреждаются.
чувствительный и поиск невозможен. Также в целом накладные расходы от
точек синхронизации незначительно. Примечание, -C 0 можно использовать для отключения
все растущие таблицы данных, что позволяет объединять бесконечные потоки с ограниченной памятью
и без этих недостатков.
временная метка продлить точка синхронизации a настенные часы поле.
Команда нет и временная метка флаги экспериментальные.
-write_index BOOL
Напишите индекс в конце, по умолчанию нужно написать индекс.
ffmpeg -i INPUT -f_strict экспериментально -syncpoints нет - | процессор
OGG
Муксер для контейнеров Ogg.
-page_duration продолжительность
Желаемая длительность страницы в микросекундах. Мультиплексор попытается создать страницы, которые
приблизительно продолжительность микросекунды долго. Это позволяет пользователю пойти на компромисс
между детализацией поиска и накладными расходами контейнера. По умолчанию 1 секунда. Значение 0
заполнит все сегменты, сделав страницы максимально большими. Значение 1 будет
эффективно использовать 1 пакет на страницу в большинстве ситуаций, обеспечивая небольшую степень детализации поиска
за счет дополнительных накладных расходов контейнера.
-serial_offset ценностное
Серийное значение, от которого можно установить порядковый номер потока. Установка его на разные и
достаточно большие значения гарантируют, что созданные файлы ogg могут быть безопасно связаны в цепочку.
сегмент, поток_сегмент, сегмент
Базовый сегментатор потока.
Этот мультиплексор выводит потоки в несколько отдельных файлов почти фиксированной продолжительности. Вывод
шаблон имени файла может быть установлен аналогично image2, или используя "strftime"
шаблон, если стрфтайм опция включена.
stream_segment - это вариант мультиплексора, который используется для записи в потоковые выходные форматы, т. е.
которые не требуют глобальных заголовков и рекомендуется для вывода, например, в MPEG
сегменты транспортного потока. «ssegment» - это более короткий псевдоним для «stream_segment».
Каждый сегмент начинается с ключевого кадра выбранного эталонного потока, который установлен
через reference_stream опцию.
Обратите внимание: если вам нужно точное разделение видеофайла, вам нужно сделать ключ ввода
кадры соответствуют точному времени разделения, ожидаемому сегментером, или сегментом
мультиплексор начнет новый сегмент с ключевого кадра, найденного следующим после указанного начала
времени.
Сегментный мультиплексор лучше всего работает с одиночным видео с постоянной частотой кадров.
При желании он может сгенерировать список созданных сегментов, установив опцию
сегмент_лист. Тип списка определяется тип_списка_сегмента вариант. Вход
имена файлов в списке сегментов по умолчанию устанавливаются равными базовому имени соответствующего
файлы сегментов.
См. Также HLS мультиплексор, который обеспечивает более конкретную реализацию HLS
сегментация.
Возможности
Мультиплексор сегментов поддерживает следующие параметры:
reference_stream спецификатор
Установите ссылочный поток, как указано в строке спецификатор. Если спецификатор установлен
на «авто» ссылка выбирается автоматически. В противном случае это должен быть поток
спецификатор (см. главу `` Спецификаторы потока '' в руководстве по ffmpeg), который определяет
эталонный поток. Значение по умолчанию - «авто».
сегмент_формат формат
Переопределить формат внутреннего контейнера, по умолчанию он определяется по имени файла
расширение.
сегмент_format_options options_list
Установите параметры формата вывода, используя разделенный: список параметров ключ = значение. Ценности
содержащий специальный символ ":", необходимо экранировать.
сегмент_лист имя
Создайте также файл списка с именем имя. Если не указано иное, файл списка не создается.
сегмент_list_flags Флаги
Установить флаги, влияющие на формирование списка сегментов.
В настоящее время он поддерживает следующие флаги:
кэш
Разрешить кэширование (влияет только на файлы списков M3U8).
жить
Разрешить создание файлов в реальном времени.
сегмент_список_размер размер
Обновите файл списка так, чтобы он содержал не более размер сегменты. Если 0 файл списка
будет содержать все сегменты. Значение по умолчанию - 0.
сегмент_list_entry_prefix префикс
Подготовить префикс к каждой записи. Полезно для создания абсолютных путей. По умолчанию без префикса
применены.
тип_списка_сегмента напишите
Выберите формат объявления.
Признаны следующие ценности:
плоский
Создайте плоский список для созданных сегментов, по одному сегменту в строке.
CSV, Ext
Создайте список для созданных сегментов, по одному сегменту на строку, каждая строка соответствует
формат (значения, разделенные запятыми):
, ,
имя_файла_сегмента это имя выходного файла, сгенерированного мультиплексором в соответствии с
по предоставленному шаблону. Экранирование CSV (согласно RFC4180) применяется, если
требуется.
сегмент_начало_время и сегмент_окончание_времени укажите время начала и окончания сегмента
выражается в секундах.
Файл списка с суффиксом «.csv» или «.ext» будет автоматически выбирать этот формат.
Ext устарел в пользу или CSV.
ffconcat
Создайте файл ffconcat для созданных сегментов. Полученный файл можно прочитать
используя FFmpeg CONCAT демультиплексор.
Файл списка с суффиксом «.ffcat» или «.ffconcat» автоматически выберет этот формат.
m3u8
Создайте расширенный файл M3U8 версии 3, совместимый с
<http://tools.ietf.org/id/draft-pantos-http-live-streaming>.
Файл списка с расширением ".m3u8" автоматически выберет этот формат.
Если не указан, то тип определяется по суффиксу имени файла списка.
сегмент_время время
Установите продолжительность сегмента на время, значение должно быть указанием продолжительности. Дефолт
значение равно «2». Также сегмент_время опцию.
Обратите внимание, что разделение может быть неточным, если вы не принудительно нажмете клавишу эталонного потока.
кадры в данный момент. См. Вводную информацию и примеры ниже.
сегмент_atclocktime 1 | 0
Если установлено значение «1», разбивать на равные временные интервалы, начиная с 00:00 часов. В
время значение, указанное в сегмент_время используется для установки длины разделения
интервал.
Например с сегмент_время установлено значение «900», что позволяет создавать файлы на
12:00, 12:15, 12:30 и т. Д.
Значение по умолчанию - «0».
сегмент_время_дельта дельта
Укажите время точности при выборе времени начала для сегмента, выраженное как
спецификация продолжительности. Значение по умолчанию - «0».
Если указана дельта, ключевой кадр начнет новый сегмент, если его PTS удовлетворяет требованиям
связь:
PTS> = start_time - time_delta
Эта опция полезна при разделении видеоконтента, который всегда разделяется по GOP.
границ, в случае, если ключевой кадр найден непосредственно перед указанным временем разделения.
В частности, может использоваться в сочетании с FFmpeg вариант Force_key_frames,
время ключевых кадров, указанное Force_key_frames не может быть установлен точно из-за
проблемы с округлением, в результате чего время ключевого кадра может быть установлено непосредственно перед
указанное время. Для видео с постоянной частотой кадров значение 1 / (2 *частота кадров) должен
устранить наихудшее несоответствие между указанным временем и временем, установленным
Force_key_frames.
сегмент_время раз
Задайте список точек разделения. раз содержит список продолжительности, разделенной запятыми
спецификации в порядке возрастания. Также сегмент_время опцию.
сегмент_фреймы кадры
Укажите список номеров разделенных видеокадров. кадры содержит список разделенных запятыми
целые числа в порядке возрастания.
Эта опция указывает, что новый сегмент запускается всякий раз, когда ключевой кадр опорного потока
найдено и порядковый номер (начиная с 0) кадра больше или равен
следующее значение в списке.
сегмент_обертка предел
Обернуть индекс сегмента, как только он достигнет предел.
номер_начального_сегмента номер
Установите порядковый номер первого сегмента. По умолчанию 0.
стрфтайм 1 | 0
Используйте функцию «strftime», чтобы определить имя новых сегментов для записи. Если это
выбрано, имя выходного сегмента должно содержать шаблон функции "strftime".
Значение по умолчанию 0.
Break_non_keyframes 1 | 0
Если этот параметр включен, разрешите сегментам начинаться с кадров, отличных от ключевых. Это улучшает
поведение некоторых игроков, когда время между ключевыми кадрами несовместимо, но может
для других дела обстоят хуже и могут вызывать некоторые странности во время поиска. По умолчанию 0.
reset_timestamps 1 | 0
Сбрасывать отметки времени в начале каждого сегмента, чтобы каждый сегмент начинался с
отметки времени, близкие к нулю. Это предназначено для облегчения воспроизведения сгенерированных сегментов. Мая
не работают с некоторыми комбинациями мультиплексоров / кодеков. По умолчанию установлено значение 0.
начальное_смещение смещение
Укажите смещение отметки времени для применения к отметкам времени выходного пакета. Аргумент должен
- спецификация продолжительности времени, по умолчанию - 0.
Примеры
· Ремиксировать содержимое файла дюйм.мкв к списку сегментов из-000.гайка, из-001.гайкаИ т.д.
и записать список сгенерированных сегментов в вне.список:
ffmpeg -i in.mkv -codec copy -map 0 -f segment -segment_list out.list out% 03d.nut
· Сегментный ввод и установка параметров формата вывода для выходных сегментов:
ffmpeg -i in.mkv -f сегмент -segment_time 10 -segment_format_options movflags = + faststart out% 03d.mp4
· Сегментируйте входной файл в соответствии с точками разделения, указанными сегмент_время
опции:
ffmpeg -i in.mkv -codec copy -map 0 -f segment -segment_list out.csv -segment_times 1,2,3,5,8,13,21 out% 03d.nut
· Использовать FFmpeg Force_key_frames возможность принудительно включить ключевые кадры на входе в
указанное местоположение вместе с опцией сегмента сегмент_время_дельта для учета
возможные округления, используемые при установке времени ключевых кадров.
ffmpeg -i in.mkv -force_key_frames 1,2,3,5,8,13,21 -codec: v mpeg4 -codec: a pcm_s16le -map 0 \
-f сегмент -segment_list out.csv -segment_times 1,2,3,5,8,13,21 -segment_time_delta 0.05 out% 03d.nut
Чтобы принудительно включить ключевые кадры во входной файл, требуется перекодирование.
· Сегментируйте входной файл, разбивая входной файл в соответствии с номерами кадров
последовательность, указанная с помощью сегмент_фреймы опции:
ffmpeg -i in.mkv -codec copy -map 0 -f segment -segment_list out.csv -segment_frames 100,200,300,500,800 out% 03d.nut
· Преобразовать дюйм.мкв в сегменты TS с использованием кодировщиков libx264 и libfaac:
ffmpeg -i in.mkv -map 0 -codec: v libx264 -codec: a libfaac -f ssegment -segment_list out.list out% 03d.ts
· Сегментируйте входной файл и создайте живой плейлист M3U8 (может использоваться как live HLS
источник):
ffmpeg -re -i in.mkv -codec copy -map 0 -f segment -segment_list playlist.m3u8\
-segment_list_flags + live -segment_time 10 из% 03d.mkv
плавное течение
Мультиплексор Smooth Streaming генерирует набор файлов (манифест, чанки), пригодных для обслуживания.
с обычным веб-сервером.
размер_окна
Укажите количество фрагментов, хранящихся в манифесте. По умолчанию 0 (оставить все).
extra_window_size
Укажите количество фрагментов, хранящихся за пределами манифеста, перед удалением из
диск. По умолчанию 5.
просмотр_счета
Укажите количество фрагментов просмотра вперед. По умолчанию 2.
min_frag_duration
Укажите минимальную продолжительность фрагмента (в микросекундах). По умолчанию 5000000.
Remove_at_exit
Укажите, нужно ли удалять все фрагменты по окончании. По умолчанию 0 (не удалять).
тройник
Tee-мультиплексор можно использовать для записи одних и тех же данных в несколько файлов или в любой другой тип файла.
мультиплексор. Его можно использовать, например, как для потоковой передачи видео в сеть, так и для сохранения его в
диск одновременно.
Это отличается от указания нескольких выходов для FFmpeg инструмент командной строки, потому что
аудио и видео данные будут кодироваться только один раз с помощью тройника мультиплексора; кодирование может быть
очень дорогой процесс. Это бесполезно при прямом использовании API libavformat, потому что
тогда можно напрямую подавать одни и те же пакеты в несколько мультиплексоров.
Выходы подчиненного устройства указываются в имени файла, присвоенном мультиплексору, через '|'. Если
любое имя подчиненного устройства содержит символ '|' разделитель, начальные или конечные пробелы или любые
специальный символ, он должен быть экранирован (см. "Цитирование и побег " . in
ffmpeg-утилиты(1) руководство).
Параметры мультиплексора могут быть указаны для каждого ведомого устройства, добавив их в виде списка ключ=ценностное
пары, разделенные знаком ":" в квадратных скобках. Если значения параметров содержат специальный
символ или разделитель ":", они должны быть экранированы; обратите внимание, что это второй уровень
побег.
Также распознаются следующие специальные опции:
f Укажите название формата. Полезно, если его нельзя угадать по суффиксу имени вывода.
bsfs [/спецификация]
Укажите список фильтров битового потока, применяемых к указанному выходу.
Можно указать, к каким потокам применяется данный фильтр битового потока, с помощью
добавление спецификатора потока к опции, разделенной "/". спецификация должен быть поток
спецификатор (см. Формат поток спецификаторы). Если спецификатор потока не указан,
фильтры битового потока будут применяться ко всем потокам на выходе.
Можно указать несколько фильтров битового потока, разделенных знаком «,».
выберите
Выберите потоки, которые должны быть сопоставлены с выходом ведомого устройства, указанным потоком
спецификатор. Если не указано, по умолчанию используются все входные потоки.
Примеры
· Закодируйте что-то, и оба архивируйте это в файл WebM, и передавайте его как MPEG-TS через UDP.
(потоки должны быть явно отображены):
ffmpeg -i ... -c: v libx264 -c: a mp2 -f tee -map 0: v -map 0: a
"archive-20121107.mkv | [f = mpegts] udp: //10.0.1.255: 1234 /"
· Использовать FFmpeg для кодирования ввода и отправки вывода по трем разным адресатам.
Фильтр битового потока "dump_extra" используется для добавления дополнительной информации ко всем
выводить пакеты ключевых кадров видео в соответствии с требованиями формата MPEG-TS. Вариант выбора
применяется к вне.aac чтобы он содержал только аудиопакеты.
ffmpeg -i ... -map 0 -flags + global_header -c: v libx264 -c: aac -strict экспериментальный
-f tee "[bsfs / v = dump_extra] out.ts | [movflags = + faststart] out.mp4 | [select = a] out.aac"
· Как показано ниже, но для вывода звука выберите только поток «a: 1». Обратите внимание, что второй уровень
необходимо выполнить экранирование, поскольку «:» - это специальный символ, используемый для разделения параметров.
ffmpeg -i ... -map 0 -flags + global_header -c: v libx264 -c: aac -strict экспериментальный
-f tee "[bsfs / v = dump_extra] out.ts | [movflags = + faststart] out.mp4 | [select = \ 'a: 1 \'] out.aac"
Примечание: для некоторых кодеков могут потребоваться разные параметры в зависимости от формата вывода; авто-
обнаружение этого не может работать с тройником мультиплексора. Главный пример - это global_header
флаг.
webm_dash_manifest
Мультиплексор манифеста WebM DASH.
Этот мультиплексор реализует спецификацию манифеста WebM DASH для генерации манифеста DASH.
XML. Он также поддерживает создание манифеста для прямых трансляций DASH.
Для получения дополнительной информации см .:
· Спецификация WebM DASH:
<https://sites.google.com/a/webmproject.org/wiki/adaptive-streaming/webm-dash-specification>
· Спецификация ISO DASH:
<http://standards.iso.org/ittf/PubliclyAvailableStandards/c065274_ISO_IEC_23009-1_2014.zip>
Возможности
Этот мультиплексор поддерживает следующие параметры:
адаптации_наборы
Этот параметр имеет следующий синтаксис: «id = x, streams = a, b, c id = y, streams = d, e», где x
и y - уникальные идентификаторы наборов адаптации, а a, b, c, d и e -
индексы соответствующих аудио- и видеопотоков. Любое количество комплектов адаптации
можно добавить с помощью этой опции.
жить
Установите значение 1, чтобы создать манифест DASH в прямом эфире. По умолчанию: 0.
chunk_start_index
Начальный индекс первого чанка. Это войдет в стартовый номер атрибут
Шаблон сегмента элемент в манифесте. По умолчанию: 0.
chunk_duration_ms
Продолжительность каждого фрагмента в миллисекундах. Это войдет в продолжительность атрибут
Шаблон сегмента элемент в манифесте. По умолчанию: 1000.
utc_timing_url
URL-адрес страницы, которая вернет метку времени в формате UTC в формате ISO. Это войдет в
ценностное атрибут UTC элемент в манифесте. По умолчанию: Нет.
time_shift_buffer_глубина
Наименьшее время (в секундах) сдвига буфера, для которого гарантируется любое Представление
быть доступным. Это войдет в времяShiftBufferDepth атрибут MPD
элемент. По умолчанию: 60.
минимальный_период_обновления
Минимальный период обновления манифеста (в секундах). Это войдет в
минимальный период обновления атрибут MPD элемент. По умолчанию: 0.
Пример
ffmpeg -f webm_dash_manifest -i video1.webm \
-f webm_dash_manifest -i video2.webm \
-f webm_dash_manifest -i audio1.webm \
-f webm_dash_manifest -i audio2.webm \
-карта 0 -карта 1 -карта 2 -карта 3 \
-c копировать \
-f webm_dash_manifest \
-adaptation_sets "id = 0, streams = 0,1 id = 1, streams = 2,3" \
манифест.xml
вебм_чанк
WebM Live Chunk Muxer.
Этот мультиплексор записывает заголовки и фрагменты WebM как отдельные файлы, которые могут использоваться
клиенты, поддерживающие потоки WebM Live через DASH.
Возможности
Этот мультиплексор поддерживает следующие параметры:
chunk_start_index
Индекс первого чанка (по умолчанию 0).
заголовок
Имя файла заголовка, в который будут записаны данные инициализации.
audio_chunk_duration
Продолжительность каждого звукового фрагмента в миллисекундах (по умолчанию 5000).
Пример
ffmpeg -f v4l2 -i / dev / video0 \
-f alsa -i hw: 0 \
-map 0: 0 \
-c: v libvpx-vp9 \
-s 640x360 -keyint_min 30 -g 30 \
-f вебм_чанк \
-заголовок webm_live_video_360.hdr \
-chunk_start_index 1 \
webm_live_video_360_% d.chk \
-map 1: 0 \
-c: libvorbis \
-b: 128k \
-f вебм_чанк \
-заголовок webm_live_audio_128.hdr \
-chunk_start_index 1 \
-audio_chunk_duration 1000 \
webm_live_audio_128_% d.chk
METADATA
FFmpeg может сбрасывать метаданные из медиафайлов в простой INI-подобный текст в кодировке UTF-8.
файл, а затем загрузите его обратно с помощью мультиплексора / демультиплексора метаданных.
Формат файла следующий:
1. Файл состоит из заголовка и ряда тегов метаданных, разделенных на разделы, каждый
на собственной линии.
2. Заголовок представляет собой ; FFMETADATA строка, за которой следует номер версии (теперь 1).
3. Теги метаданных имеют форму ключ = значение
4. Сразу после заголовка следуют глобальные метаданные.
5. После глобальных метаданных могут быть разделы с метаданными для каждого потока / главы.
6. Раздел начинается с названия раздела в верхнем регистре (например, ПОТОК или ГЛАВА) в
скобки ([, ]) и заканчивается следующим разделом или концом файла.
7. В начале раздела главы может быть необязательная временная шкала, которая будет использоваться для
начальные / конечные значения. Это должно быть по форме БАЗА ВРЕМЕНИ =Num/день, Где Num и день целые числа.
Если развертка отсутствует, предполагается, что время начала / окончания указано в миллисекундах.
Затем раздел главы должен содержать время начала и окончания главы в форме START =Num,
КОНЕЦ =Num, Где Num является положительным целым числом.
8. Пустые строки и строки, начинающиеся с ; or # игнорируются.
9. Ключи или значения метаданных, содержащие специальные символы (=, ;, #, \ и новая строка) должны
экранировать обратную косую черту \.
10. Обратите внимание, что пробелы в метаданных (например, Foo = бар) считается частью
тег (в приведенном выше примере ключ Foo , значение
бар).
Файл ffmetadata может выглядеть так:
; FFMETADATA1
title = велосипед \ сарай
; это комментарий
artist = Команда троллей FFmpeg
[ГЛАВА]
БАЗА ВРЕМЕНИ = 1/1000
START = 0
# глава заканчивается в 0:01:00
END = 60000
title = chapter \ # 1
[ТРАНСЛИРОВАТЬ]
title = multi \
линия
Используя мультиплексор и демультиплексор ffmetadata, можно извлекать метаданные из входных данных.
файл в файл ffmetadata, а затем перекодируйте файл в выходной файл с
отредактированный файл ffmetadata.
Извлечение файла ffmetadata с помощью FFmpeg идет следующим образом:
ffmpeg -i INPUT -f ffmetadata ФАЙЛ МЕТАДАННЫХ
Повторная вставка отредактированной информации метаданных из файла FFMETADATAFILE может быть выполнена следующим образом:
ffmpeg -i INPUT -i FFMETADATAFILE -map_metadata 1 -codec copy ВЫВОД
Используйте ffmpeg-форматы онлайн с помощью сервисов onworks.net