Превод на ffmpeg документация на български език
ffmpeg документация
Превод на страницата http://ffmpeg.org/ffmpeg.html от 13 февруари 2016 г.
Файлът е изтеглен от Pulp Blog. http://chtivo.by/blog/ и финализирано от Xintrea.
Вижте също прикачения PDF (необработена версия, необработен машинен превод)
3. Подробно описание
3.1.1. Прости графични филтри
3.1.2. Комплексни графични филтри
3.2. Поточно копие
5.1. Спецификатори на потока
5.4. Основни опции
5.8. Разширени аудио опции
5.9. Опции за субтитри
5.10. Разширени опции за субтитри
5.11. Допълнителни опции
5.12. Предварително инсталирани файлове
5.12.1. ffpreset файлове
5.12.2. avpreset файлове
6.1. Видео и аудио заснемане
6.3. Формати за конвертиране на видео и аудио файлове
7. Вижте също
Синтаксисът на командата е както следва:
Тоест важи правилото: първо опциите, после файла. С други думи, опциите засягат следния файл. Историческа характеристика: входният файл се посочва чрез опцията -i, а изходният файл се посочва просто като име на файл, без опция.
ffmpeg чете данни от произволен брой входни потоци (които могат да бъдат обикновени файлове, канали, мрежови потоци, устройства за улавяне и т.н.), посочени с опцията -i, и записва в изходния файл или поток. Всички опции на командния ред, които не могат да се интерпретират като опция, ще бъдат третирани като име на изходен файл.
Всеки входен или изходен файл може по принцип да съдържа произволен брой потоци от различни типове (видео/аудио/субтитри/прикачен файл/данни). Разрешеният брой и/или типове потоци може да бъде ограничен от формата на контейнера. Изборът кои потоци от кой вход към кой ще отидатизходът се извършва автоматично или с опцията -map (вижте главата за избор на поток).
За достъп до входните файлове трябва да използвате техните индекси (броенето започва от нула). Например, първият входен файл е 0, вторият е 1 и т.н. По същия начин потоците във файл се идентифицират чрез техните индекси. Например 2:3 се отнася до четвъртия поток в третия входен файл. Вижте също спецификаторите в главата за нишката.
Обикновено опциите се прилагат към следващия посочен файл след тях. Следователно редът е важен, но можете да използвате една и съща опция няколко пъти в командния ред. След това всяко събитие се прилага към следващия входен или изходен файл. (Тези две изречения не са съвсем ясни – бележка на преводача). Изключение от това правило са глобалните опции, които трябва да бъдат зададени първи.
Важно е да не смесвате входни и изходни файлове - първо трябва да посочите всички входни файлове, а след това всички изходни файлове. Освен това не смесвайте опции, които принадлежат към различни файлове. Всички опции се прилагат само за следващия входен или изходен файл и се нулират между файловете.
ffmpeg -i input.avi -b:v 64k -bufsize 64k output.avi
За да зададете кадровата честота на изходния файл на 24 кадъра в секунда:
ffmpeg -i input.avi -r 24 output.avi
За да зададете кадровата честота на входния файл (валидно само за "сурови" формати) на 1 кадър в секунда и кадровата честота на изходния файл на 24 кадъра в секунда:
ffmpeg -r 1 -i input.m2v -r 24 output.avi
Може да се изисква настройка на формат за сурови входни файлове.
3 . Подробно описание
Процесът на транскодиране в ffmpeg за всеки файл може да бъде описан в следната диаграма:

ffmpeg извиква библиотекатаlibavformat (който съдържа алгоритми за демуксиране) за четене на входни файлове и получаване на пакети, съдържащи кодирани данни. Когато има множество входни файлове, ffmpeg се опитва да ги поддържа синхронизирани чрез проследяване на етикети с ниска латентност в активния входен поток.
3.1.1. Прости графични филтри
Простите филтри (filtergraphs) са тези, които имат точно един вход и изход, и двата от един и същи тип. В горната диаграма те могат да бъдат представени просто чрез вмъкване на допълнителна стъпка между кодирането и декодирането:

Имайте предвид, че някои филтри променят свойствата на рамките, но не и съдържанието на рамките. Например филтърът fps променя броя на кадрите, но не засяга съдържанието на кадрите. Друг пример е филтърът setpts, който задава само клеймото за време и предава кадрите непроменени.
3.1.2. Комплексни графични филтри
Сложните филтри са тези, които не могат да бъдат описани просто като линейна верига от обработка, приложена към единичен поток. Това е възможно, например, когато графиката има повече от един вход и/или изход, или когато типът на изходния поток е различен от входа. Такива филтри могат да бъдат представени чрез следната диаграма:

Сложните филтри се конфигурират с опцията -filter_complex. Обърнете внимание, че тази опция е глобална, тъй като сложните филтри по своята същност не могат да бъдат уникално свързани с един поток или файл.
Забележка: Опцията -lavfi е еквивалентна на -filter_complex.
3.2. Поточно копие
Тъй като няма декодиране или кодиране, това преобразуване е много бързо и няма загуба на качество. Възможно е обаче да не работи в някоислучаи поради много фактори. Прилагането на филтри очевидно също не е възможно, тъй като филтрите работят върху некомпресирани данни.
4 . Избор на поток
Можете да деактивирате това поведение по подразбиране, като посочите опциите -vn/-an/-sn. За пълен ръчен контрол можете да използвате опцията -map, която деактивира избора на параметри на изходния поток по подразбиране.
Всички числени параметри, освен ако не е посочено друго, приемат като вход низ, представляващ число, което може да бъде последвано от един от суфиксите на единиците (в оригинала - префикси, не е ясно защо) в единиците SI, например: 'K', 'M' или 'G'.
Ако „i“ се добави към блока със SI префикс, пълният префикс ще се интерпретира като единичен префикс за двоични кратни, които се основават на степени на 1024 вместо на степени на 1000. Добавянето на „B“ към префикса на SI единиците умножава стойността по 8. Това позволява например: „KB“, „MiB“, „G“ и „B“ като брой суфикси. (Този параграф трябва да бъде преработен)
Опциите, които приемат булеви аргументи на опцията, се считат за истина. Те могат да бъдат зададени на false, като пред името на параметъра поставите низа "no". Например, използването на опцията "-nofoo" ще зададе булевия флаг с име "foo" на false.
5.1. Спецификатори на потока
Някои опции се прилагат за конкретни потоци, като битрейт на кодек. Спецификаторът на потока се използва, за да посочи точно към кой поток(и) се отнася опцията.
Спецификаторът на потока е низ и обикновено се добавя към името на опцията и се отделя от него с двоеточие. Възможни имена на спецификатори:
Например опцията -codec:a:1 ac3 съдържа спецификатора на потока a:1, който съответства на втория аудио поток. В такъв случайac3 кодек е избран за втория аудио поток.
Спецификаторът на поток може да съответства на множество потоци, така че тази опция може да се приложи към всички потоци от същия тип наведнъж. Например спецификаторът на потока -b:a 128k съответства на всички аудио потоци.
Възможните форми на спецификатори на потока са:
Съвпада с потока с този индекс. Например -threads:1 4 ще зададе броячите на нишките за втората нишка на 4.
p:program_id[:stream_index]
Ако е даден stream_index, тогава той съответства на потока с номер stream_index в програмата с идентификатора program_id. В противен случай той съответства на всички нишки в програмата.
#stream_id или i:stream_id
Съвпадение на потока чрез поток за идентичност (напр. PID в MPEG-TS контейнер).
Потокът съвпада с помощта на ключ за тагове с метаданни, който има дадената стойност. Ако не е дадена стойност, съвпада с потоци, които съдържат дадения етикет с произволна стойност.
Имайте предвид, че в ffmpeg съвпадението на метаданни ще работи правилно само за входни файлове.
5.2. Общи опции
Тези параметри са често срещани сред инструментите FF*.
-h, -?, -help, --help [ arg ]
Покажете помощ. Може да се даде незадължителен параметър за отпечатване на помощ за конкретен елемент. Ако не са дадени аргументи, се показват само основните (неразширени) опции на инструмента.
Възможните стойности на аргумента са:
Отпечатайте разширени настройки на инструмента в допълнение към основните настройки на инструмента.
Отпечатайте пълен списък с опции, включително общи и специални опции за енкодери, декодери, демультиплексори, мултиплексори, филтри и др.
Отпечатайте подробна информация за декодера с име decoder_name. Използвайте опцията -decoders, за давземете списък с всички декодери.
Отпечатайте подробна информация за името на енкодера encoder_name. Използвайте опцията -encoders, за да получите списък с всички енкодери.
Отпечатайте подробна информация за името на demuxer demuxer_name. Използвайте опцията -formats, за да получите списък с всички демультиплексори и мултиплексори.
Отпечатайте подробна информация за името на муксера muxer_name. Използвайте опцията -formats, за да получите списък с всички мултиплексори и демуксери.
Отпечатайте подробна информация за името на филтъра FILTER_NAME. Използвайте опцията -filters, за да получите списък с всички филтри.
Показване на наличните формати (включително устройства).
Показване на наличните устройства.
Показване на всички кодеци, известни от кодека.
Обърнете внимание, че терминът "кодек" се използва в техническата документация като пряк път за това, което е по-правилно да се нарича мултимедиен растерен формат.
Показване на наличните декодери.
Показване на всички налични енкодери.
Показване на наличните филтри за битов поток.
Показване на наличните протоколи.
Показване на наличните филтри за libavfilter.
Показване на наличните пикселни формати.
Показване на наличните примерни размери.
Показване на имена на канали и стандартни канални формати.
Показване на имена на разпознати цветове.
Показване на отменени входни източници на устройство. Някои устройства може да предоставят зависещи от системата имена на източници, които може да не са налични автоматично. Върнатият списък не може да се счита винаги за пълен.
ffmpeg -източници импулс,сървър=192.168.0.4
Дисплеят се определя автоматично от мивките на изходното устройство. Някои устройства може да предоставят системно зависими имена на черупки, които не могат да бъдатавтоматично. Върнатият списък не може да се счита винаги за пълен.
ffmpeg -поглъща импулс, сървър = 192.168.0.4
-loglevel [повторение+]loglevel -v [повторение+]loglevel
Задайте референтното ниво, използвано от библиотеката. Добавянето на „повтаряне +“ означава, че изходът от повторения дневник не трябва да бъде компресиран до първия ред и редът „Последното съобщение, повторено n пъти“ ще бъде пропуснат. „Повторение“ може да се използва и самостоятелно. Ако „повтаряне“ се използва самостоятелно и без предварително задаване на LOGLEVEL, ще се използва LogLevel по подразбиране. Когато са дадени няколко параметъра LOGLEVEL, използването на „Повторение“ няма да промени LogLevel LogLevel е низ или число, съдържащо една от следните стойности.:
Не показвайте нищо; Бъди тих.
Показване само на фатални грешки, които могат да доведат до срив на процеса, например, и заявяване на неуспех. Това време не се използва за нищо.
Показване само на фатални грешки. Това са грешки, след които процесът абсолютно не може да продължи.
Показване на всички грешки, включително тези, от които могат да бъдат извлечени.
Показване на всички предупреждения и грешки. Ще се покаже всяко съобщение, свързано с евентуално неправилни или неочаквани събития.
Показване на информационни съобщения по време на обработка. Това е в допълнение към грешките и предупрежденията. Това е стойността по подразбиране.
Същото като информацията, но е по-подробно.
Показване на всичко, включително информация за отстраняване на грешки.
По подразбиране програмата регистрира стандартна грешка, ако оцветяването се поддържа от терминала, цветовете се използват за обозначаване на грешки и предупреждения. Оцветяването на журнала може да бъде деактивирано чрез задаване на променливата на средата AV_LOG_FORCE_NOCOLOR или NO_COLOR, или може да бъдепринудително чрез настройка на променливата на средата AV_LOG_FORCE_COLOR. Използването на променливата на средата NO_COLOR е отхвърлено и ще бъде премахнато в следващата версия на FFmpeg.
Изхвърлете целия изход от командния ред и конзолата във файл с име program - YYYYMMDD - HHMMSS .log в текущата директория. Този файл може да бъде полезен за докладване на грешки. Това също предполага -loglevel verbose.
Задаването на променливата на средата FFREPORT на произволна стойност има същия ефект. Ако стойността е ':' - поредица от разделен ключ = стойност, тези опции ще засегнат отчета; Стойностите на опциите трябва да бъдат екранирани, ако съдържат специални знаци или разделителя на опции ':' (вижте раздела "Кавиране и екраниране" на ръководството на FFMpeg-Utility).
Показват се следните опции:
задайте името на файла за отчета; %p се разширява до име на програма, %t се разширява до клеймо за време, %% се разширява до прост %
задайте нивото на подробност на дневника, като използвате числова стойност (вижте -loglevel).
Например, за да изведете отчет във файл с име ffreport.log, като използвате ниво на журнал 32 (псевдоним за информация за ниво на журнал):
FFREPORT=файл=ffreport.log:ниво=32 ffmpeg -i вход изход
Грешките при анализирането на променлива на средата не са фатални и няма да бъдат докладвани.
Потискане на печата на банери.
-cpuflags знамена (глобални)
Позволява задаване и изчистване на флагове на процесора. Тази опция е за тестване. Не го използвайте, ако не знаете какво правите.