FFPLAY(1) FFPLAY(1)
НАЗВА
ffplay - Медіаплеєр FFplay
СИНТАКСИС
ffplay [options] [input_url]
ОПИС
FFplay - це дуже простий і портативний медіаплеєр, який використовує бібліотеки FFmpeg і бібліотеку SDL. Він переважно використовується як тестовий стенд для різних API FFmpeg.
ОПЦІЇ
Усі числові опції, якщо не вказано інше, приймають рядок, що представляє число, за яким може слідувати один із префіксів одиниць SI, наприклад: 'K', 'M' або 'G'.
Якщо до префікса одиниці SI додається 'i', весь префікс інтерпретується як одиниця для бінарних кратних, які базуються на степенях 1024 замість 1000. Додавання 'B' до префікса одиниці SI множить значення на 8. Це дозволяє використовувати, наприклад: 'KB', 'MiB', 'G' і 'B' як числові суфікси.
Опції, які не приймають аргументів, є булевими опціями і встановлюють відповідне значення в true. Їх можна встановити в false, додавши до назви опції префікс "no". Наприклад, використання "-nofoo" встановить булеву опцію з назвою "foo" у false.
Опції, які приймають аргументи, підтримують спеціальний синтаксис, де аргумент, указаний у командному рядку, інтерпретується як шлях до файлу, з якого завантажується фактичне значення аргументу. Щоб скористатися цією функцією, додайте скісну риску '/' безпосередньо перед назвою опції (після початкового дефіса). Наприклад:
ffmpeg -i INPUT -/filter:v filter.script OUTPUT
завантажить опис фільтрографа з файлу під назвою filter.script.
Специфікатори потоку
Деякі опції застосовуються до окремих потоків, наприклад, бітрейт або кодек. Специфікатори потоку використовуються для точного визначення, до якого потоку застосовується дана опція.
Специфікатор потоку - це рядок, який зазвичай додається до назви опції та відокремлюється від неї двокрапкою. Наприклад, "-codec:a:1 ac3" містить специфікатор потоку "a:1", який відповідає другому аудіопотоку. Таким чином, він вибере кодек ac3 для другого аудіопотоку.
Специфікатор потоку може відповідати кільком потокам, щоб опція застосовувалася до всіх них. Наприклад, специфікатор потоку в "-b:a 128k" відповідає всім аудіопотокам.
Порожній специфікатор потоку відповідає всім потокам. Наприклад, "-codec copy" або "-codec: copy" скопіює всі потоки без перекодування.
Можливі форми специфікаторів потоку:
stream_index
Відповідає потоку з цим індексом. Наприклад, "-threads:1 4" встановить кількість потоків для другого потоку на 4. Якщо stream_index використовується як додатковий специфікатор потоку (див. нижче), то він вибирає потік номер stream_index із відповідних потоків. Нумерація потоків базується на порядку потоків, виявлених libavformat, за винятком випадків, коли також указаний специфікатор групи потоків або ідентифікатор програми. У цьому випадку вона базується на порядку потоків у групі або програмі.
stream_type[:additional_stream_specifier]
stream_type - це один із таких: 'v' або 'V' для відео, 'a' для аудіо, 's' для субтитрів, 'd' для даних і 't' для вкладень. 'v' відповідає всім відеопотокам, 'V' відповідає лише відеопотокам, які не є прикріпленими зображеннями, відеомініатюрами або обкладинками. Якщо використовується additional_stream_specifier, то він відповідає потокам, які мають цей тип і відповідають додатковому специфікатору. В іншому випадку він відповідає всім потокам указаного типу.
g:group_specifier[:additional_stream_specifier]
Відповідає потокам, які належать до групи з указаним group_specifier. Якщо використовується additional_stream_specifier, то він відповідає потокам, які є частиною групи та відповідають додатковому специфікатору. group_specifier може бути одним із таких:
group_index
Відповідає потоку з цим індексом групи.
#group_id або i:group_id
Відповідає потоку з цим ідентифікатором групи.
p:program_id[:additional_stream_specifier]
Відповідає потокам, які належать до програми з ідентифікатором program_id. Якщо використовується additional_stream_specifier, то він відповідає потокам, які є частиною програми та відповідають додатковому специфікатору.
#stream_id або i:stream_id
Відповідає потоку за ідентифікатором потоку (наприклад, PID у контейнері MPEG-TS).
m:key[:value]
Відповідає потокам із тегом метаданих key, який має указане значення. Якщо значення не вказано, відповідає потокам, які містять указаний тег із будь-яким значенням. Символ двокрапки ':' у key або value потребує екранування зворотною скісною рискою.
disp:dispositions[:additional_stream_specifier]
Відповідає потокам із указаними диспозиціями. disp:dispositions - це список із однієї або кількох диспозицій (як виводиться опцією -dispositions), об’єднаних символом '+'.
u Відповідає потокам із придатною конфігурацією, кодек повинен бути визначений, а також основна інформація, така як розміри відео або частота дискретизації аудіо, повинна бути присутньою.
Зверніть увагу, що у ffmpeg відповідність за метаданими працюватиме належним чином лише для вхідних файлів.
Загальні опції
Ці опції спільні для всіх інструментів ff*.
-L Показати ліцензію.
-h, -?, -help, --help [arg]
Показати довідку. Додатковий параметр може бути вказаний для виведення довідки про конкретний елемент. Якщо аргумент не вказано, показуються лише основні (не розширені) опції інструменту.
Можливі значення arg:
long
Вивести розширені опції інструменту на додаток до основних опцій.
full
Вивести повний список опцій, включаючи спільні та приватні опції для кодерів, декодерів, демультиплексорів, мультиплексорів, фільтрів тощо.
decoder=decoder_name
Вивести детальну інформацію про декодер із назвою decoder_name. Використовуйте опцію -decoders, щоб отримати список усіх декодерів.
encoder=encoder_name
Вивести детальну інформацію про кодер із назвою encoder_name. Використовуйте опцію -encoders, щоб отримати список усіх кодерів.
demuxer=demuxer_name
Вивести детальну інформацію про демультиплексор із назвою demuxer_name. Використовуйте опцію -formats, щоб отримати список усіх демультиплексорів і мультиплексорів.
muxer=muxer_name
Вивести детальну інформацію про мультиплексор із назвою muxer_name. Використовуйте опцію -formats, щоб отримати список усіх мультиплексорів і демультиплексорів.
filter=filter_name
Вивести детальну інформацію про фільтр із назвою filter_name. Використовуйте опцію -filters, щоб отримати список усіх фільтрів.
bsf=bitstream_filter_name
Вивести детальну інформацію про фільтр бітового потоку з назвою bitstream_filter_name. Використовуйте опцію -bsfs, щоб отримати список усіх фільтрів бітового потоку.
protocol=protocol_name
Вивести детальну інформацію про протокол із назвою protocol_name. Використовуйте опцію -protocols, щоб отримати список усіх протоколів.
-version
Показати версію.
-buildconf
Показати конфігурацію збірки, по одній опції на рядок.
-formats
Показати доступні формати (включаючи пристрої).
-demuxers
Показати доступні демультиплексори.
-muxers
Показати доступні мультиплексори.
-devices
Показати доступні пристрої.
-codecs
Показати всі кодеки, відомі libavcodec.
Зверніть увагу, що термін 'codec' у цій документації використовується як скорочення для того, що правильніше називається форматом медіапотоку.
-decoders
Показати доступні декодери.
-encoders
Показати всі доступні кодери.
-bsfs
Показати доступні фільтри бітового потоку.
-protocols
Показати доступні протоколи.
-filters
Показати доступні фільтри libavfilter.
-pix_fmts
Показати доступні піксельні формати.
-sample_fmts
Показати доступні формати вибірки.
-layouts
Показати назви каналів і стандартні розкладки каналів.
-dispositions
Показати диспозиції потоку.
-colors
Показати розпізнані назви кольорів.
-sources device[,opt1=val1[,opt2=val2]...]
Показати автоматично виявлені джерела вхідного пристрою. Деякі пристрої можуть надавати системно-залежні назви джерел, які не можуть бути автоматично виявлені. Список, що повертається, не завжди може вважатися повним.
ffmpeg -sources pulse,server=192.168.0.4
-sinks device[,opt1=val1[,opt2=val2]...]
Показати автоматично виявлені приймачі вихідного пристрою. Деякі пристрої можуть надавати системно-залежні назви приймачів, які не можуть бути автоматично виявлені. Список, що повертається, не завжди може вважатися повним.
ffmpeg -sinks pulse,server=192.168.0.4
-loglevel [flags+]loglevel | -v [flags+]loglevel
Встановити рівень і прапори журналювання, які використовуються бібліотекою.
Додаткові прапори можуть складатися з таких значень:
repeat
Вказує, що повторюваний вивід журналу не повинен стискатися до першого рядка, а рядок "Останнє повідомлення повторено n разів" буде пропущено.
level
Вказує, що вивід журналу повинен додавати префікс "[level]" до кожного рядка повідомлення. Це може бути використано як альтернатива кольоровому журналюванню, наприклад, при виведенні журналу у файл.
Прапори також можуть використовуватися окремо, додаючи префікс '+' або '-' для встановлення/скидання одного прапора без впливу на інші прапори або зміни рівня журналювання. При встановленні прапорів і рівня журналювання між останнім значенням прапора і рівнем журналювання очікується роздільник '+'.
loglevel - це рядок або число, що містить одне з таких значень:
quiet, -8
Нічого не показувати; бути тихим.
panic, 0
Показувати лише фатальні помилки, які можуть призвести до збою процесу, наприклад, збій твердження. Наразі не використовується.
fatal, 8
Показувати лише фатальні помилки. Це помилки, після яких процес абсолютно не може продовжувати роботу.
error, 16
Показувати всі помилки, включаючи ті, від яких можна відновитися.
warning, 24
Показувати всі попередження та помилки. Будь-яке повідомлення, пов’язане з можливо неправильними або несподіваними подіями, буде показано.
info, 32
Показувати інформаційні повідомлення під час обробки. Це на додаток до попереджень і помилок. Це значення за замовчуванням.
verbose, 40
Те саме, що "info", але більш детально.
debug, 48
Показувати все, включаючи інформацію для налагодження.
trace, 56
Наприклад, щоб увімкнути повторюваний вивід журналу, додати префікс "level" і встановити рівень журналювання на "verbose":
ffmpeg -loglevel repeat+level+verbose -i input output
Інший приклад, який увімкне повторюваний вивід журналу без впливу на поточний стан прапора "level" або рівня журналювання:
ffmpeg [...] -loglevel +repeat
За замовчуванням програма записує журнали в stderr. Якщо термінал підтримує кольори, вони використовуються для позначення помилок і попереджень. Кольорове журналювання можна вимкнути, встановивши змінну середовища AV_LOG_FORCE_NOCOLOR, або примусово увімкнути, встановивши змінну середовища AV_LOG_FORCE_COLOR.
-report
Зберігати повну командну строку та вивід журналу у файл із назвою "program-YYYYMMDD-HHMMSS.log" у поточній директорії. Цей файл може бути корисним для звітів про помилки. Це також передбачає "-loglevel debug".
Встановлення змінної середовища FFREPORT на будь-яке значення має той самий ефект. Якщо значення є послідовністю ключ=значення, розділеною ':', ці опції впливатимуть на звіт; значення опцій повинні бути екрановані, якщо вони містять спеціальні символи або роздільник опцій ':' (див. розділ "Цитування та екранування" в посібнику ffmpeg-utils).
Наступні опції розпізнаються:
file
Встановити назву файлу для звіту; %p розширюється до назви програми, %t розширюється до позначки часу, "%%" розширюється до звичайного "%".
level
Встановити рівень деталізації журналу за допомогою числового значення (див. "-loglevel").
Наприклад, щоб вивести звіт у файл із назвою ffreport.log із рівнем журналювання 32 (псевдонім для рівня журналу "info"):
FFREPORT=file=ffreport.log:level=32 ffmpeg -i input output
Помилки в аналізі змінної середовища не є фатальними і не відображатимуться у звіті.
-hide_banner
Придушити вивід банера.
Усі інструменти FFmpeg зазвичай показують повідомлення про авторські права, опції збірки та версії бібліотек. Ця опція може бути використана для придушення виведення цієї інформації.
-cpuflags flags (global)
Дозволяє встановлювати та скидати прапори процесора. Ця опція призначена для тестування. Не використовуйте її, якщо ви не знаєте, що робите.
ffmpeg -cpuflags -sse+mmx ...
ffmpeg -cpuflags mmx ...
ffmpeg -cpuflags 0 ...
Можливі прапори для цієї опції:
x86
mmx
mmxext
sse
sse2
sse2slow
sse3
sse3slow
ssse3
atom
sse4.1
sse4.2
avx
avx2
xop
fma3
fma4
3dnow
3dnowext
bmi1
bmi2
cmov
ARM
armv5te
armv6
armv6t2
vfp
vfpv3
neon
setend
AArch64
armv8
vfp
neon
PowerPC
altivec
Specific Processors
pentium2
pentium3
pentium4
k6
k62
athlon
athlonxp
k8
-cpucount count (global)
Перевизначити виявлення кількості процесорів. Ця опція призначена для тестування. Не використовуйте її, якщо ви не знаєте, що робите.
ffmpeg -cpucount 2
-max_alloc bytes
Встановити максимальний розмір для виділення блоку на купі за допомогою сімейства функцій malloc FFmpeg. Будьте надзвичайно обережні при використанні цієї опції. Не використовуйте, якщо ви не розумієте всіх наслідків цього. За замовчуванням INT_MAX.
AVOptions
Ці опції надаються безпосередньо бібліотеками libavformat, libavdevice і libavcodec. Щоб побачити список доступних AVOptions, використовуйте опцію -help. Вони поділяються на дві категорії:
generic
Ці опції можна встановити для будь-якого контейнера, кодека або пристрою. Загальні опції перераховані в розділі AVFormatContext для контейнерів/пристроїв і в розділі AVCodecContext для кодеків.
private
Ці опції специфічні для даного контейнера, пристрою або кодека. Приватні опції перераховані під відповідними контейнерами/пристроями/кодеками.
Наприклад, щоб записати заголовок ID3v2.3 замість ID3v2.4 за замовчуванням у файл MP3, використовуйте приватну опцію id3v2_version мультиплексора MP3:
ffmpeg -i input.flac -id3v2_version 3 out.mp3
Усі AVOptions кодеків є специфічними для потоку, і тому до них слід додавати специфікатор потоку:
ffmpeg -i multichannel.mxf -map 0:v:0 -map 0:a:0 -map 0:a:0 -c:a:0 ac3 -b:a:0 640k -ac:a:1 2 -c:a:1 aac -b:2 128k out.mp4
У наведеному прикладі багатоканальний аудіопотік відображається двічі для виведення. Перший екземпляр кодується кодеком ac3 із бітрейтом 640k. Другий екземпляр зменшується до 2 каналів і кодується кодеком aac. Для нього вказується бітрейт 128k, використовуючи абсолютний індекс вихідного потоку.
Зверніть увагу: синтаксис -nooption не може бути використаний для булевих AVOptions, використовуйте -option 0/-option 1.
Зверніть увагу: старий недокументований спосіб указання AVOptions для потоку шляхом додавання v/a/s до назви опції тепер застарілий і скоро буде видалений.
Основні опції
-x width
Примусово встановити ширину відображення.
-y height
Примусово встановити висоту відображення.
-fs Запустити в повноекранному режимі.
-an Вимкнути аудіо.
-vn Вимкнути відео.
-sn Вимкнути субтитри.
-ss pos
Перейти до позиції pos. Зверніть увагу, що в більшості форматів неможливо точно переміститися, тому ffplay перейде до найближчої точки пошуку до pos.
pos має бути специфікацією тривалості часу, див. розділ "Тривалість часу" в посібнику ffmpeg-utils(1).
-t duration
Відтворювати аудіо/відео тривалістю duration секунд.
duration має бути специфікацією тривалості часу, див. розділ "Тривалість часу" в посібнику ffmpeg-utils(1).
-bytes
Пошук за байтами.
-seek_interval
Встановити власний інтервал, у секундах, для пошуку за допомогою клавіш вліво/вправо. За замовчуванням 10 секунд.
-nodisp
Вимкнути графічний дисплей.
-noborder
Вікно без рамки.
-alwaysontop
Вікно завжди зверху. Доступно на: X11 з SDL >= 2.0.5, Windows SDL >= 2.0.6.
-volume
Встановити початкову гучність. 0 означає тишу, 100 означає відсутність зменшення або підсилення гучності. Негативні значення розглядаються як 0, значення вище 100 розглядаються як 100.
-f fmt
Примусово встановити формат.
-window_title title
Встановити заголовок вікна (за замовчуванням це ім’я вхідного файлу).
-left title
Встановити позицію x для лівого краю вікна (за замовчуванням вікно розташоване по центру).
-top title
Встановити позицію y для верхнього краю вікна (за замовчуванням вікно розташоване по центру).
-loop number
Зациклити відтворення фільму <number> разів. 0 означає безкінечно.
-showmode mode
Встановити режим відображення. Доступні значення для mode:
0, video
показувати відео
1, waves
показувати аудіохвилі
2, rdft
показувати частотну смугу аудіо за допомогою RDFT ((Обернене) Реальне Дискретне Перетворення Фур’є)
За замовчуванням значення "video", якщо відео відсутнє або не може бути відтворене, автоматично вибирається "rdft".
Ви можете інтерактивно перемикатися між доступними режимами відображення, натискаючи клавішу w.
-vf filtergraph
Створити фільтрограф, указаний у filtergraph, і використати його для фільтрації відеопотоку.
filtergraph - це опис фільтрографа, який застосовується до потоку, і він повинен мати один відеовхід і один відеовихід. У фільтрографі вхід асоціюється з міткою "in", а вихід - з міткою "out". Див. посібник ffmpeg-filters для отримання додаткової інформації про синтаксис фільтрографа.
Ви можете вказати цей параметр кілька разів і перемикатися між указаними фільтрографами разом із режимами відображення, натискаючи клавішу w.
-af filtergraph
filtergraph - це опис фільтрографа, який застосовується до вхідного аудіо. Використовуйте опцію "-filters", щоб показати всі доступні фільтри (включаючи джерела та приймачі).
-i input_url
Читати input_url.
Розширені опції
-stats
Вивести кілька статистичних даних відтворення, зокрема тривалість потоку, параметри кодека, поточну позицію в потоці та дрейф синхронізації аудіо/відео. За замовчуванням відображається, якщо рівень журналювання не нижчий за "info". Його відображення можна примусово увімкнути, вручну вказавши цю опцію. Щоб вимкнути, потрібно вказати "-nostats".
-fast
Некритичні оптимізації, що не відповідають специфікаціям.
-genpts
Генерувати pts.
-sync type
Встановити головний годинник на аудіо ("type=audio"), відео ("type=video") або зовнішній ("type=ext"). За замовчуванням аудіо. Головний годинник використовується для контролю синхронізації аудіо-відео. Більшість медіаплеєрів використовують аудіо як головний годинник, але в деяких випадках (потокове передавання або високоякісне мовлення) необхідно змінити це. Ця опція в основному використовується для налагодження.
-ast audio_stream_specifier
Вибрати бажаний аудіопотік за допомогою указаного специфікатора потоку. Специфікатори потоків описані в розділі "Специфікатори потоку". Якщо ця опція не вказана, вибирається "найкращий" аудіопотік у програмі вже вибраного відеопотоку.
-vst video_stream_specifier
Вибрати бажаний відеопотік за допомогою указаного специфікатора потоку. Специфікатори потоків описані в розділі "Специфікатори потоку". Якщо ця опція не вказана, вибирається "найкращий" відеопотік.
-sst subtitle_stream_specifier
Вибрати бажаний потік субтитрів за допомогою указаного специфікатора потоку. Специфікатори потоків описані в розділі "Специфікатори потоку". Якщо ця опція не вказана, вибирається "найкращий" потік субтитрів у програмі вже вибраного відео- або аудіопотоку.
-autoexit
Вийти після завершення відтворення відео.
-exitonkeydown
Вийти при натисканні будь-якої клавіші.
-exitonmousedown
Вийти при натисканні будь-якої кнопки миші.
-codec:media_specifier codec_name
Примусово використовувати конкретну реалізацію декодера для потоку, визначеного media_specifier, який може приймати значення "a" (аудіо), "v" (відео) і "s" (субтитри).
-acodec codec_name
Примусово використовувати конкретний аудіодекодер.
-vcodec codec_name
Примусово використовувати конкретний відеодекодер.
-scodec codec_name
Примусово використовувати конкретний декодер субтитрів.
-autorotate
Автоматично повертати відео відповідно до метаданих файлу. Увімкнено за замовчуванням, використовуйте -noautorotate, щоб вимкнути.
-framedrop
Пропускати відеокадри, якщо відео не синхронізовано. Увімкнено за замовчуванням, якщо головний годинник не встановлено на відео. Використовуйте цю опцію, щоб увімкнути пропуск кадрів для всіх джерел головного годинника, використовуйте -noframedrop, щоб вимкнути.
-infbuf
Не обмежувати розмір вхідного буфера, читати якомога більше даних із входу якомога швидше. Увімкнено за замовчуванням для потоків у реальному часі, де дані можуть бути втрачені, якщо їх не прочитати вчасно. Використовуйте цю опцію, щоб увімкнути необмежені буфери для всіх входів, використовуйте -noinfbuf, щоб вимкнути.
-filter_threads nb_threads
Визначає, скільки потоків використовується для обробки конвеєра фільтрів. Кожен конвеєр створює пул потоків із такою кількістю потоків, доступних для паралельної обробки. За замовчуванням 0, що означає, що кількість потоків буде визначена кількістю доступних процесорів.
-enable_vulkan
Використовувати рендерер Vulkan замість вбудованого рендерера SDL. Залежить від libplacebo.
-vulkan_params
Конфігурація Vulkan за допомогою списку пар ключ=значення, розділених ":".
-hwaccel
Використовувати апаратне прискорення декодування. Увімкнення цієї опції автоматично вмикає рендерер Vulkan.
Під час відтворення
q, ESC
Вийти.
f Перемкнути повноекранний режим.
p, SPC
Пауза.
m Перемкнути вимкнення звуку.
9, 0
/, *
Зменшити та збільшити гучність відповідно.
a Перемкнути аудіоканал у поточній програмі.
v Перемкнути відеоканал.
t Перемкнути канал субтитрів у поточній програмі.
c Перемкнути програму.
w Перемкнути відеофільтри або режими відображення.
s Перейти до наступного кадру.
Зупинити, якщо потік ще не на паузі, перейти до наступного відеокадру і зробити паузу.
left/right
Пошук назад/вперед на 10 секунд.
down/up
Пошук назад/вперед на 1 хвилину.
page down/page up
Пошук до попередньої/наступної глави. Або, якщо глав немає, пошук назад/вперед на 10 хвилин.
right mouse click
Пошук до відсотка у файлі, що відповідає частці ширини.
left mouse double-click
Перемкнути повноекранний режим.
ДИВ. ТАКОЖ
ffplay-all(1), ffmpeg(1), ffprobe(1), ffmpeg-utils(1), ffmpeg-scaler(1), ffmpeg-resampler(1), ffmpeg-codecs(1), ffmpeg-bitstream-filters(1), ffmpeg-formats(1), ffmpeg-devices(1), ffmpeg-protocols(1),
ffmpeg-filters(1)
АВТОРИ
Розробники FFmpeg.
Для деталей про авторство дивіться історію Git проекту (https://git.ffmpeg.org/ffmpeg), наприклад, ввівши команду git log у директорії вихідного коду FFmpeg або переглянувши онлайн-репозиторій за адресою <https://git.ffmpeg.org/ffmpeg>.
Підтримувачі окремих компонентів перераховані у файлі MAINTAINERS у дереві вихідного коду.
FFPLAY(1)
30 вересня 2025
man ffplay uk i18n
Підписатися на:
Дописати коментарі (Atom)
Немає коментарів:
Дописати коментар