FFmpeg

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
FFmpeg
ТипМультимедійна бібліотека
АвторФабріс Беллар, Боббі Бінгем (libavfilter)
РозробникFFmpeg team
Перший випуск20 січня 2000 [1]
Стабільний випуск6.0 "Von Neumann"[2] (27 лютого 2023; 19 місяців тому (2023-02-27))
Платформаx86, ARM, PowerPC, MIPS, DEC Alpha, Blackfin, AVR32, SH-4 та SPARC; може бути скомпільований для інших настільних комп’ютерів
Операційна системаБагатоплатформове ПЗ
Мова програмуванняС та мова асемблера
Стан розробкиактивний
Ліцензія LGPL-2.1 та новішої або GPL-2.0 та новішої; не розповсюджується, якщо скомпільовано з будь-яким програмним забезпеченням з ліцензією, несумісною з GPL
Онлайн-документаціяffmpeg.org/documentation.html
Репозиторійgit.ffmpeg.org/ffmpeg.git
Вебсайтffmpeg.org

FFmpeg — це комплекс вільних комп'ютерних програм та програмних бібліотек для обробки відео, аудіо та інших мультимедійних файлів і потоків. У його основі лежить сам інструмент командного рядка ffmpeg, призначений для обробки відео та аудіофайлів. Проєкт широко використовується для перекодування форматів, базового редагування (обрізка та конкатенація), масштабування відео, ефектів постпродакшн відео та для дотримання стандартів (SMPTE[en], ITU).

FFmpeg також включає інші інструменти: ffplay, простий медіа програвач та ffprobe — інструмент командного рядка для відображення медіа-інфомації. Серед вхідних бібліотек є libavcodec, бібліотека аудіо-/відео- кодеків, яка використовується багатьма комерційними та безкоштовними програмними продуктами, libavformat (Lavf)[3], бібліотека мультиплексування та демуксування аудіо/відео контейнерів, а також libavfilter, бібліотека для покращення та редагування фільтрів за допомогою фільтр-граф, схожий на GStreamer.[4]

FFmpeg є частиною робочого процесу багатьох інших програмних проєктів, а його бібліотеки є основною частиною медіапрогравачів, таких як VLC, також були включені в основу обробки для YouTube і Bilibili.[5] У комплект входять кодери та декодери для багатьох форматів аудіо та відео файлів, що робить його дуже корисним для перекодування поширених і незвичайних медіафайлів.

FFmpeg публікується під LGPL-2.1 та новішої версії або GPL-2.0 та новішої, залежно від того, які параметри ввімкнено.[6]

Історія

[ред. | ред. код]

Проєкт був започаткований Фабрісом Белларом (використовуючи псевдонім «Жерар Лантау») у 2000 році, а з 2004 по 2015 рік його очолював Міхаель Нідермайєр. Деякі розробники FFmpeg також були частиною проєкту MPlayer, а сам FFmpeg був розміщений на сервері проєкту MPlayer.

Назва проєкту навіяна групою стандартів відео MPEG разом із «FF» для «швидкої перемотування».[7] У логотипі використовується зигзагоподібний візерунок, який показує, як відеокодеки MPEG обробляють ентропійне кодування.

13 березня 2011 року група розробників FFmpeg вирішила розділити проєкт під назвою Libav.[8][9][10] Подія була пов’язана з проблемою в управлінні проєктами, у якій розробники не погодилися з керівництвом FFmpeg.[11][12]

10 січня 2014 року двоє співробітників Google оголосили, що протягом попередніх двох років у FFmpeg було виправлено понад 1000 помилок за допомогою fuzz-тестування.

У січні 2018 року програму командного рядка ffserver, який є давнім компонентом FFmpeg, було видалено.[13] Розробники відмовилися від програми, посилаючись на високі зусилля по обслуговуванню через використання внутрішніх інтерфейсів прикладного програмування.[14]

Проєкт публікує новий випуск у середньому кожні три місяці. Хоча версії випуску доступні на вебсайт для завантаження, розробники FFmpeg рекомендують користувачам компілювати програмне забезпечення з вихідного коду, використовуючи останню збірку з їх вихідного коду системи контролю версій Git.[15]

Історія кодеків

[ред. | ред. код]

Наразі в рамках проєкту FFmpeg створено два формати кодування відео з відповідними кодеками та один формат контейнера. Два відеокодеки – це FFV1 (без втрат якості) та Snow (без втрат або з втратами). Розвиток відеокодека Snow зупинився, а його формат бітового потоку ще не завершено, що робить його експериментальним з 2011 року. Власним форматом мультимедійного контейнера є NUT, який більше активно не розвивається, але все ще підтримується.[16]

Влітку 2010 року розробники FFmpeg Фіона Глейзер, Рональд Бултьє та Девід Конрад анонсували декодер ffvp8. За допомогою тестування вони визначили, що ffvp8 швидший, ніж власний декодер Google libvpx.[17] Починаючи з версії 0.6 FFmpeg також підтримує WebM і VP8.[18]

У жовтні 2013 року до FFmpeg були додані власний відеокодек VP9[19], декодер OpenHEVC, декодер високоефективне кодування відео H.265 (відомий ще як HEVC) з відкритим програмним кодом.[20] У 2016 році власний кодер AAC вважався стабільним, що призвело до зняття підтримки двох зовнішніх кодеків AAC від VisualOn та FAAC. FFmpeg 3.0 (під назвою «Einstein») зберіг підтримку для кодера Fraunhofer FDK AAC.[21] Серед помітних змін в порівнянні з попередніми версіями було поліпшено підтримку апаратного стиснення AAC, поліпшене апаратне пришвидшення стиснення інших алгоритмів. Проте було порушено сумісність програмного та двійкового інтерфейсу з попередніми версіями.[22] Починаючи з версії 3.4 «Cantor» FFmpeg підтримує формат зображення FITS.[23] З листопада 2018 року у версії 4.1 «al-Khwarizmi» AV1 може мультиплікувати в MP4, Matroska та WebM.[24][25]

Компоненти

[ред. | ред. код]

Інструменти командного рядку

[ред. | ред. код]
  • ffmpeg – програма командного рядка для конвертування одного формату аудіо чи відео у інший. Вона також дозволяє захоплювати і кодувати відео в режимі реального часу від декількох апаратних і програмних джерел,[26] таких як карта захоплення ТБ.
  • ffplay – простий медіа програвач, який використовує SDL та бібліотеки FFmpeg.
  • ffprobe – інструмент командного рядка для зображення медіа інформації (тексту, CSV, XML, JSON), див. також Mediainfo.

Бібліотеки

[ред. | ред. код]
  • libswresample – бібліотека, що містить функції редискретизації аудіо.
  • libavresample – бібліотека, що містить функції редискретизації аудіо з проєкту Libav project, подібна до libswresample із бібліотеки ffmpeg.
  • libavcodec – бібліотека, що містить усі власні аудіо/відео кодери і декодери FFmpeg. Більшість кодеків розроблені з нуля, щоб забезпечити найкращу продуктивність і можливість повторного використання коду.
  • libavformat (Lavf)[27] – бібліотека, що містить мультиплексори і демультиплексори для форматів контейнерів аудіо/відео.
  • libavutil – допоміжна бібліотека, що містить функції спільні для різних частин FFmpeg. Ця бібліотека містить хеш-функції, шифри, LZO декомпресор і Base64 кодер/декодер.
  • libpostproc – бібліотека, що містить старіші функції пост-обробки відео відео на базі H.263.
  • libswscale – ця бібліотека містить функції для масштабування зображення відео і конвертації колірного простору/формату пікселів.
  • libavfilter – є заміною для vhook, що дозволяє перевіряти чи модифікувати відео/аудіо між процесами декодування і кодування. Фільтри були портовані із багатьох проєктів, включаючи MPlayer і AviSynth.
  • libavdevice – бібліотека, що містить аудіо/відео io через внутрішні та зовнішні пристрої.

Підтримуване обладнання

[ред. | ред. код]

Процесори

[ред. | ред. код]

FFmpeg моє програмні реалізації алгоритмів стиснення та розпакування відео та аудіо. Таким чином їх можна компілювати та запускати на різних наборах інструкцій процесора.

Багато поширених наборів інструкцій підтримуються FFmpeg, включаючи x86 (IA-32 та x86-64), PPC (PowerPC), ARM, DEC Alpha, SPARC та MIPS.[28]

Обладнання спеціального призначення

[ред. | ред. код]

Існує безліч інтегральних схем (ASIC) для стиснення та декомпресії аудіо/відео. Ці ASIC можуть частково або повністю розвантажити обчислення з центрального процесора. Замість повної реалізації алгоритму для використання подібного ASIC потрібен лише API.[29]

Виробник ASIC призначення підтримується FFmpeg? Деталі
AMD UVD декодування Так через VDPAU API та VAAPI[30]
VCE кодування Так через VAAPI, вважається експериментальним
Amlogic Amlogic Video Engine декодування ?
BlackMagic DeckLink кодування/декодування Так прийом та відтворення в режимі реального часу
Broadcom Crystal HD декодування Так
Qualcomm Hexagon кодування/декодування Так hwaccel[31]
Intel Intel Clear Video декодування Так
Intel Quick Sync Video кодування/декодування Так
Nvidia PureVideo / NVDEC декодування Так через VDPAU API від версії FFmpeg 1.2 (застарілий);

через CUVID API від версії FFmpeg 3.1

NVENC кодування Так починаючи з версії FFmpeg 2.6

Використання з утилітою FFmpeg

[ред. | ред. код]

Прискорення апаратне декодування включається за допомогою опції -hwaccel. Декодування починається у звичайному режимі, але якщо декодований потік підтримує апаратне забезпечення, тоді декодер призначає всю значну обробку цьому апаратному забезпеченню, таким чином прискорюючи процес декодування. Якщо потоки, які можна декодувати через апаратне забезпечення не виявлено (як це відбувається з непідтримуваним кодеком або профілем), тоді вони будуть декодовані програмним забезпеченням. Параметр -hwaccel_device застосовується, коли апаратне забезпечення потребує певного пристрою для роботи, особливо якщо доступно декілька графічних карт.

Підтримувані кодеки та формати

[ред. | ред. код]

Формати зображень

[ред. | ред. код]

FFmpeg підтримує багато поширених та деякі незвичайні формати зображень.

Формат зображення PGMYUV є саморобним варіантом двійкового (P5) формату PGM Netpbm. FFmpeg також підтримує 16-бітову глибину форматів PGM і PPM, а також двійковий (P7) формат PAM з або без альфа-каналу, глибиною 8 або 16 біт для pix_fmts monob, grey, gray16be, rgb24, rgb48be, ya8, rgba, rgb64be.

Підтримувані формати

[ред. | ред. код]

На додаток до форматів FFV1 і Snow, які були створені та розроблені з FFmpeg, проєкт також підтримує такі формати:

Група Тип формату Назва формату
ISO/IEC/ITU-T Відео MPEG-1 Part 2, H.261 (Px64), H.262/MPEG-2 Part 2, H.263, MPEG-4 Part 2, H.264/MPEG-4 AVC, HEVC/H.265[32] (MPEG-H Part 2), MPEG-4 VCB (також відомий як VP8), Motion JPEG, IEC DV відео та CD+G
Аудіо MP1, MP2, MP3, AAC, HE-AAC, MPEG-4 ALS, G.711 μ-law, G.711 A-law, G.721 (також відомий як G.726 32k), G.722, G.722.2 (також відомий як AMR-WB), G.723 (також відомий як G.726 24k і 40k), G.723.1, G.726, G.729, G.729D, IEC DV аудіо та Direct Stream Transfer (також відомий як Super Audio CD)
Субтитри MPEG-4 Timed Text (також відомий як MPEG-4 Part 17 або 3GPP Timed Text)
Зображення JPEG, Lossless JPEG, JPEG-LS, JPEG 2000, JPEG XL,[33] PNG, CCITT G3 та CCITT G4
Alliance for Open Media Відео AV1[34]
EIA Субтитри EIA-608
CEA Субтитри CEA-708
SMPTE Відео SMPTE 314M (також відомий як DVCAM і DVCPRO), SMPTE 370M (також відомий як DVCPRO HD), VC-1 (також відомий як WMV3), VC-2 (відомий як Dirac Pro), VC-3 (також відомий як AVID DNxHD)
Аудіо SMPTE 302M
Зображення DPX
ATSC/ETSI/DVB Аудіо Full Rate (GSM 06.10), AC-3 (Dolby Digital), Enhanced AC-3 (Dolby Digital Plus) та DTS Coherent Acoustics (також відомий як DTS або DCA)
Субтитри DVB Subtitling (ETSI 300 743)
DVD Forum/Dolby Аудіо MLP / Dolby TrueHD
Субтитри DVD-Video субтитри
Xperi/DTS, Inc/QDesign Аудіо DTS Coherent Acoustics (також відомий як DTS або DCA), DTS Extended Surround (також відомий як DTS-ES), DTS 96/24, DTS-HD High Resolution Audio, DTS Express (також відомий як DTS-HD LBR), DTS-HD Master Audio, QDesign Music Codec 1 та 2
Blu-ray Disc Association Субтитри PGS (Presentation Graphics Stream)
3GPP Аудіо AMR-NB, AMR-WB (також відомий як G.722.2)
3GPP2 Аудіо QCELP-8 (також відомий як SmartRate або IS-96C), QCELP-13 (також відомий як PureVoice або IS-733) та Enhanced Variable Rate Codec (EVRC. також відомий як IS-127)
World Wide Web Consortium Відео Анімовані GIF
Субтитри WebVTT
Зображення GIF та SVG (через librsvg)
IETF Відео FFV1
Аудіо iLBC (через libilbc), Opus та Comfort noise
International Voice Association Аудіо DSS-SP
SAC Відео AVS відео, AVS2 відео (через libdavs2) та AVS3 відео (через libuavs3d)
Microsoft Відео Microsoft RLE, Microsoft Video 1, Cinepak, Microsoft MPEG-4 v1, v2 і v3, Windows Media Video (WMV1, WMV2, WMV3/VC-1), WMV Screen та Mimic кодек
Аудіо Windows Media Audio (WMA1, WMA2, WMA Pro та WMA Lossless), XMA (XMA1 і XMA2), MSN Siren, MS-GSM та MS-ADPCM
Субтитри SAMI
Зображення Windows Bitmap, WMV Image (WMV9 Image і WMV9 Image v2), DirectDraw Surface та MSP
Interactive Multimedia Association Аудіо IMA ADPCM
Intel / Digital Video Interactive Відео RTV 2.1 (Indeo 2), Indeo 3, 4 and 5 та Intel H.263
Аудіо DVI4 (також відомий як IMA DVI ADPCM), Intel Music Coder та Indeo Audio Coder
RealNetworks Відео RealVideo Fractal Codec (також відомий як Iterated Systems ClearVideo), 1, 2, 3 та 4
Аудіо RealAudio v1 – v10
Субтитри RealText
Apple / Spruce Technologies Відео Cinepak (Apple Compact Video), ProRes, Sorenson 3 Codec, QuickTime Animation (Apple Animation), QuickTime Graphics (Apple Graphics), Apple Video, Apple Intermediate Codec та Pixlet
Аудіо ALAC
Зображення QuickDraw PICT
Субтитри Spruce subtitle (STL)
Adobe Flash Player (SWF) Відео Screen video, Screen video 2, Sorenson Spark та VP6
Аудіо Adobe SWF ADPCM і Nellymoser Asao
Adobe / Aldus Зображення TIFF, PSD та DNG
Xiph.Org Відео Theora
Аудіо Speex, Vorbis, Opus та FLAC
Субтитри Ogg Writ
Sony Аудіо Adaptive Transform Acoustic Coding (ATRAC1, ATRAC3, ATRAC3Plus та ATRAC9)[35] та PSX ADPCM
NTT Аудіо TwinVQ
Google / On2 / GIPS Відео Duck TrueMotion 1, Duck TrueMotion 2, Duck TrueMotion 2.0 Real Time, VP3, VP4, VP5, VP6, VP7, VP8, VP9[36] та анімовані WebP
Аудіо DK ADPCM Audio 3/4, On2 AVC та iLBC (через libilbc)
Зображення WebP
Epic Games / RAD Game Tools Відео Smacker відео та Bink відео
Аудіо Blink аудіо
CRI Middleware Аудіо ADX ADPCM та HCA
Nintendo / NERD Відео Mobiclip відео
Аудіо GCADPCM (також відомий як ADPCM THP), FastAudio та ADPCM IMA MOFLEX
DSP Group Аудіо Truespeech
Electronic Arts / Criterion Games / Black Box Games / Westwood Studios Відео RenderWare TXD, Madcow, CMV, TGV, TGQ, TQI, Midivid VQ (MVDV), MidiVid 3.0 (MV30), Midivid Archival (MVHA) та Vector Quantized Animation (VQA)
Аудіо Electronic Arts ADPCM variants
Netpbm Зображення PBM, PGM, PPM, PNM, PAM та PFM
MIT/X Consortium/The Open Group Зображення XBM, XPM та xwd
HPE / SGI / Silicon Graphics Відео Silicon Graphics RLE 8-бітне відео, Silicon Graphics MVC1/2
Зображення Silicon Graphics Image
Oracle/Sun Microsystems Зображення Sun Raster
IBM Відео IBM UltiMotion
Avid Technology / Truevision Відео Avid 1:1x, Avid Meridien, Avid DNxHD та DNxHR
Зображення Tagra
Autodesk / Alias Відео Autodesk Animator Studio Codec та FLIC
Зображення Alias PIX
Activision Blizzard / Activision / Infocom Аудіо ADPCM Zork
Konami / Hudson Soft Відео HVQM4 Video
Аудіо Konami MTAF, and ADPCM IMA HVQM4
Grass Valley / Canopus Відео HQ, HQA, HQX and Lossless
Vizrt / NewTek Відео SpeedHQ
Зображення Vizrt Binary Image
Academy Software Foundation / ILM Зображення OpenEXR
Mozilla Corporation Відео APNG
Matrox Відео Matrox Uncompressed SD (M101) / HD (M102)
AMD/ATI Відео ATI VCR1/VCR2
Asus Відео ASUS V1/V2 кодек
Commodore Відео CDXL кодек
Kodak Зображення Photo CD
Blackmagic Design / Cintel Зображення Cintel RAW
Houghton Mifflin Harcourt / The Learning Company / ZSoft Corporation Зображення PCX
Australian National University Зображення X-Face
Bluetooth Special Interest Group Аудіо SBC та mSBC
Qualcomm / CSR Аудіо QCELP, aptX та aptX HD

Дані можна передавати без обробки через -c copy. Одним зі способів є вирізання відеозапису без необхідності часу та обробки перекодування.

Муксери

[ред. | ред. код]

Вихідні формати (формати контейнерів та інші способи створення вихідних потоків) у FFmpeg називаються «муксерами» (від слова muxers). FFmpeg підтримує наступні:[37]

  • AIFF
  • ASF
  • AVI а також інформацію на вході з AviSynth
  • BFI
  • CAF
  • FLV
  • GIF
  • GXF, General eXchange Format, SMPTE 360M
  • HLS, HTTP Live Streaming
  • IFF
  • Базовий формат медіафайлу ISO (включаючи QuickTime, 3GP and MP4)
  • Matroska (включаючи WebM)
  • Maxis XA
  • MPEG-DASH
  • MPEG program stream
  • MPEG transport stream (включаючи AVCHD)
  • MXF, Material eXchange Format, SMPTE 377M
  • MSN Webcam потік
  • NUT
  • Ogg
  • OMA
  • RL2
  • Базовий сегмент потока, для створення сегментованих відеопотоків
  • Smooth Streaming
  • TXD
  • WTV

Піксельні формати

[ред. | ред. код]

FFmpeg підтримує багато форматів пікселів.[38] Деякі з цих форматів підтримуються лише в якості вхідних (від англ. input) форматів.

Тип Колірна модель Упакований піксель Планарність Палітра
Без альфа-каналу З альфа-каналом Без альфа-каналу З альфа-каналом Кольорове перемежування З альфа-каналом
Монохромія Бінарне (1-бітна монохромія) monoblack, monowhite
Відтінки сірого 8/9/10/12/14/16 bpp[p 1] 16/32bpp
RGB RGB 1:2:1 (4-бітний колір) 4bpp
RGB 3:3:2 (8-бітний колір) 8bpp
RGB 5:5:5 (High color) 16bpp
RGB 5:6:5 (High color) 16bpp
RGB/BGR 24/30[p 2]/48bpp 32[p 3]/64bpp 8bit->32bpp
GBR [p 4] 8/9/10/12/14/16bpc 8/10/12/16bpc
RGB з рухомою комою GBR 32bpc 32bpc
YUV YVU 4:1:0 (9bpp (YVU9))[p 5]
YUV 4:1:0 9bpp
YUV 4:1:1 8bpc (UYYVYY) 8bpc (8bpc (NV11))
YVU 4:2:0 (8bpc (YV12))[p 5] 8 (NV21)
YUV 4:2:0 8[p 6]/9/10/12/14/16bpc 8/9/10/16bpc 8 (NV12)/10 (P010)/16bpc (P016)
YVU 4:2:2 (8bpc (YV16))[p 5] (8bpc (NV61))
YUV 4:2:2 8 (YUYV[p 7] і UYVY)/10bpc (Y210)[p 8] 8[p 9]/9/10/12/14/16bpc 8/9/10/12/16bpc 8 (NV16)/10 (NV20 and P210)/16bpc (P216)
YUV 4:4:0 8/10/12bpc
YVU 4:4:4 (8bpc (YV24))[p 5] 8bpc (NV42)
YUV 4:4:4 (10 (Y410) і 16bpc (Y416)) 16bpc[p 10] 8[p 11]/9/10/12/14/16bpc 8/9/10/12/16bpc 8 (NV24)/10 (P410)/ 16bpc (P416)
XYZ XYZ 4:4:4 [p 12] 12bpc
Баєра BGGR/RGGB/GBRG/GRBG 8/16bppp
  1. англ. bits per pixel (кількість біт на піксель)
  2. 10-бітові кольорові компоненти з 2-бітовим заповненням (X2RGB10)
  3. Також підтримуються RGBx (rgb0) і xBGR (0bgr).
  4. використовується в YUV-центрованих кодеках, таких як H.264
  5. а б в г YVU9, YV12, YV16 та YV24 підтримуються як кодек «rawvideo» в FFmpeg.
  6. I420 також відомий яка YUV420P
  7. також відомий як YUY2 в Windows
  8. UYVY 10bpc без заповнення підтримується як «bitpacked» кодек в FFmpeg. UYVY 10bpc з 2-бітовим заповненнямм підтримується як кодек «v210» в FFmpeg. 16bpc (Y216) підтримується як кодек «targa_y216» в FFmpeg.
  9. I422 також відомий як YUV422P
  10. 8bpc (AYUV) не підтримується
  11. I444 також відомий як YUV444P
  12. використовується в JPEG2000

FFmpeg не підтримує IMC1-IMC4, AI44, CYMK, RGBE, Log RGB та інші формати. Він також ще не підтримує ARGB 1:5:5:5, 2:10:10:10 або інші формати бітових полів BMP, які зазвичай не використовуються.

Підтримувані протоколи

[ред. | ред. код]

Відкриті стандарти

[ред. | ред. код]

Стандарт де-факто

[ред. | ред. код]
  • RTSP через TLS[40][41]
  • Icecast протокол
  • Adobe RTMP, RTMPT, RTMPE, RTMPTE та RTMPS
  • RealMedia RTSP/RDT
  • ZeroMQ (через libzmq)
  • RIST (через librist)

Додатки

[ред. | ред. код]

Юридичні аспекти

[ред. | ред. код]

FFmpeg містить понад 100 кодеків,[42] більшість із яких використовує ті чи інші методи стиснення. Багато таких методів стиснення можуть бути предметом юридичних претензій щодо патентів на програмне забезпечення.[43] Такі претензії можуть мати позовну силу в таких країнах, як Сполучені Штати Америки, які запровадили патенти на програмне забезпечення, але вважаються такими, що не мають позовної сили або є недійсними, наприклад, у країнах-членах Європейського Союзу.[44] Термін дії патентів на багато старіших кодеків, включаючи AC3 і всі кодеки MPEG-1 і MPEG-2, закінчився.

FFmpeg ліцензується згідно з ліцензією LGPL, але якщо певна збірка FFmpeg пов’язана з будь-якою бібліотекою GPL (зокрема, x264), тоді весь двійковий файл ліцензується під ліцензією GPL.

Проєкти, які використовують FFmpeg

[ред. | ред. код]

FFmpeg використовується програмним забезпеченням, таким як Blender, Cinelerra-GG Infinity, HandBrake, Kodi, MPC-HC, Plex, Shotcut, VirtualDub2 (форк VirtualDub),[45] медіаплеєр VLC, xine і YouTube.[46][47] Він керує відтворенням відео та аудіо в Google Chrome[47] і версії Firefox для Linux.[48] Було розроблено інтерфейс графічного інтерфейсу для FFmpeg, включаючи Multimedia Xpert[49] і XMedia Recode.

FFmpeg використовується ffdshow, FFmpegInterop, плагіном GStreamer FFmpeg, фільтрами LAV і OpenMAX IL для розширення можливостей кодування та декодування відповідних мультимедійних платформ.

У рамках місії НАСА Марс 2020 FFmpeg використовується марсоходом Perseverance для стиснення зображень і відео перед відправкою на Землю.[50]

Деякі приклади застосування

[ред. | ред. код]

Примітка: Важливо, щоб параметри були вказані в правильному порядку (наприклад, вхід, відео, фільтри, аудіо, вихід). Якщо цього не зробити, параметри можуть бути пропущені або запобігти виконанню FFmpeg.[51]

Переглянути інформацію про будь-який медіафайла:[52]

$ ffprobe вхідний-файл.mkv

Об’єднання потрібних файлів, наприклад VOB-файли, в один потік і мультиплексування їх у MPEG-2:

$ cat вхідний-0.VOB вхідний-1.VOB вхідний-2.VOB | ffmpeg -i - вихідний_відео_файл.mp2

Мультиплексування одного формата в інший, в данном прикладі MPEG-4 в AVI та MPEG-3 в WAV:

$ ffmpeg -i вхідний_відео_файл.mp4 вихідний_відео_файл.avi

$ ffmpeg -i вхідний_аудіо_файл.mp3 вихідний_аудіо_файл.wav

Примітки

[ред. | ред. код]
  1. Інформація про перший релізи програми (англ.) . Процитовано 20 грудня 2000 року.
  2. Інформація про релізи програми (англ.) . Процитовано 21 серпня 2023.
  3. FFmpeg: I/O and Muxing/Demuxing Library. www.ffmpeg.org (англ.) . Архів оригіналу за 11 грудня 2021. Процитовано 4 червня 2022.
  4. Libavfilter Documentation. ffmpeg.org (англ.) . Архів оригіналу за 23 березня 2022. Процитовано 4 червня 2022.
  5. ijkplayer (англ.) , bilibili, 4 червня 2022, архів оригіналу за 15 квітня 2022, процитовано 4 червня 2022
  6. FFmpeg License and Legal Considerations. www.ffmpeg.org (англ.) . Архів оригіналу за 15 червня 2022. Процитовано 4 червня 2022.
  7. Bellard, Fabrice (Sat Feb 18 19:38:28 CET 2006). [Ffmpeg-devel] FFmpeg naming and logo (англ.) . Архів оригіналу за 4 червня 2022. Процитовано 4 червня 2022.
  8. Libav. www.libav.org (англ.) . Архів оригіналу за 22 червня 2022. Процитовано 4 червня 2022.
  9. Gmane -- Mail To News And Back Again. article.gmane.org (англ.) . 7 листопада 2016. Архів оригіналу за 7 листопада 2016. Процитовано 7 листопада 2016.
  10. A Group Of FFmpeg Developers Just Forked As Libav. www.phoronix.com (англ.) . Архів оригіналу за 19 червня 2022. Процитовано 4 червня 2022.
  11. What happened to FFmpeg « Kostya's Boring Codec World (англ.) . Архів оригіналу за 7 квітня 2022. Процитовано 4 червня 2022.
  12. The FFmpeg/Libav situation. blog.pkh.me (англ.) . Архів оригіналу за 15 червня 2022. Процитовано 4 червня 2022.
  13. ffserver – FFmpeg. trac.ffmpeg.org (англ.) . Архів оригіналу за 14 квітня 2022. Процитовано 4 червня 2022.
  14. FFmpeg. ffmpeg.org (англ.) . Процитовано 4 червня 2022.
  15. FFmpeg Releases. ffmpeg.org (англ.) . Архів оригіналу за 23 червня 2022. Процитовано 4 червня 2022.
  16. NUT - MultimediaWiki. wiki.multimedia.cx (англ.) . Архів оригіналу за 16 квітня 2022. Процитовано 9 червня 2022.
  17. Diary Of An x264 Developer » Announcing the world’s fastest VP8 decoder: ffvp8. http://x264dev.multimedia.cx (англ.) . 30 вересня 2010. Архів оригіналу за 30 вересня 2010.
  18. FFmpeg Goes WebM, Enabling VP8 for Boxee & Co. newteevee.com (англ.) . 17 червня 2010. Архів оригіналу за 20 червня 2010. ...with VLC, Boxee, MythTV, Handbrake and MPlayer being some of the more popular projects utilizing FFmpeg...
  19. Native VP9 decoder is now in the Git master branch : FFmpeg. Launchpad (англ.) . 3 жовтня 2013. Архів оригіналу за 9 березня 2016. Процитовано 9 червня 2022.
  20. Stahie, Silviu (16 жовтня 2013). FFmpeg Now Features Native HEVC/H.265 Decoder Support. softpedia (англ.) . Архів оригіналу за 9 червня 2022. Процитовано 9 червня 2022.
  21. FFmpeg. ffmpeg.org (англ.) . Процитовано 9 червня 2022.
  22. FFmpeg 3.0 Is a Massive Release with DXVA2-Accelerated VP9 Decoding, New Filters. news.softpedia.com (англ.) . 24 березня 2016. Архів оригіналу за 24 березня 2016. Процитовано 9 червня 2022.
  23. FFmpeg. ffmpeg.org (англ.) . Процитовано 9 червня 2022.
  24. FFmpeg. ffmpeg.org (англ.) . Процитовано 9 червня 2022.
  25. Good News: AV1 Encoding Times Drop to Near-Reasonable Levels. Streaming Media Magazine (англ.) . 4 березня 2019. Процитовано 9 червня 2022.
  26. Zdanevich, Vitaly (19 травня 2020), English: See more at https://wiki.gentoo.org/wiki/Equery (англ.) , процитовано 9 червня 2022
  27. FFmpeg: I/O and Muxing/Demuxing Library. www.ffmpeg.org (англ.) . Процитовано 9 червня 2022.
  28. FATE. fate.ffmpeg.org (англ.) . Процитовано 9 червня 2022.
  29. HWAccelIntro – FFmpeg. trac.ffmpeg.org (англ.) . Процитовано 9 червня 2022.
  30. Hardware/VAAPI – FFmpeg. trac.ffmpeg.org (англ.) . Процитовано 9 червня 2022.
  31. HEVC Video Encoder User Manual (PDF). Qualcomm Developer Network (англ.) . Архів оригіналу (PDF) за 16 квітня 2021. Процитовано 9 червня 2022.
  32. Stahie, Silviu (16 жовтня 2013). FFmpeg Now Features Native HEVC/H.265 Decoder Support. softpedia (англ.) . Процитовано 23 червня 2022.
  33. FFmpeg Lands JPEG-XL Support. www.phoronix.com (англ.) . Процитовано 23 червня 2022.
  34. git.ffmpeg.org Git - ffmpeg.git/commit. git.ffmpeg.org (англ.) . Процитовано 23 червня 2022.
  35. git.videolan.org Git - ffmpeg.git/commit. git.videolan.org (англ.) . Процитовано 23 червня 2022.
  36. Native VP9 decoder is now in the Git master branch : FFmpeg. Launchpad (англ.) . Процитовано 23 червня 2022.
  37. FFmpeg Formats Documentation. ffmpeg.org (англ.) . Процитовано 23 червня 2022.
  38. FFmpeg: libavutil/pixfmt.h File Reference. ffmpeg.org (англ.) . Архів оригіналу за 29 листопада 2021. Процитовано 25 червня 2022.
  39. van Kesteren, Anne (1 вересня 2010). Internet Drafts are not Open Standards. annevankesteren.nl (англ.) . Архів оригіналу за 2 вересня 2010. Процитовано 22 березня 2015.
  40. draft-ietf-mmusic-rfc2326bis-40. datatracker.ietf.org (англ.) . Архів оригіналу за 9 липня 2017. Процитовано 26 червня 2022.
  41. rtsp: Support tls-encapsulated RTSP - git.videolan.org Git - ffmpeg.git/commit. videolan.org (англ.) . Архів оригіналу за 18 жовтня 2016. Процитовано 26 червня 2022.
  42. General Documentation. ffmpeg.org (англ.) . Архів оригіналу за 20 липня 2022. Процитовано 21 липня 2022.
  43. FFmpeg License and Legal Considerations. ffmpeg.org (англ.) . Архів оригіналу за 15 липня 2022. Процитовано 21 липня 2022.
  44. Office, European Patent. The European Patent Convention. www.epo.org (англ.) . Архів оригіналу за 4 червня 2022. Процитовано 21 липня 2022.
  45. VirtualDub2 / Wiki / Home. sourceforge.net (англ.) . Архів оригіналу за 7 серпня 2020. Процитовано 21 липня 2022.
  46. Google’s YouTube Uses FFmpeg | Breaking Eggs And Making Omelettes. Breaking Eggs And Making Omelettes | Topics On Multimedia Technology and Reverse Engineering (англ.) . 9 лютого 2011. Архів оригіналу за 8 квітня 2022. Процитовано 21 липня 2022.
  47. а б FFmpeg-based Projects. trac.ffmpeg.org (англ.) . Архів оригіналу за 13 липня 2022. Процитовано 21 липня 2022.
  48. Firefox Enables FFmpeg Support By Default. www.phoronix.com (англ.) . Архів оригіналу за 28 квітня 2022. Процитовано 21 липня 2022.
  49. Multimedia Xpert - Atlas Informatik. www.atlas-informatik.ch (англ.) . Архів оригіналу за 17 квітня 2022. Процитовано 21 липня 2022.
  50. Maki, J. N.; Gruel, D.; McKinney, C.; Ravine, M. A.; Morales, M.; Lee, D.; Willson, R.; Copley-Woods, D.; Valvo, M. (24 листопада 2020). The Mars 2020 Engineering Cameras and Microphone on the Perseverance Rover: A Next-Generation Imaging System for Mars Exploration. Space Science Reviews (англ.) . Т. 216, № 8. с. 137. doi:10.1007/s11214-020-00765-9. ISSN 1572-9672. PMC 7686239. PMID 33268910. Архів оригіналу за 21 лютого 2021. Процитовано 21 липня 2022.{{cite news}}: Обслуговування CS1: Сторінки з PMC з іншим форматом (посилання)
  51. FFmpeg - ArchWiki. wiki.archlinux.org (англ.) . Процитовано 21 липня 2022. It is important that parameters are specified in the correct order (e.g. input, video, filters, audio, output). Failing to do so may cause parameters being skipped or will prevent FFmpeg from executing.
  52. ffprobe Documentation. ffmpeg.org. Процитовано 21 липня 2022.

Посилання

[ред. | ред. код]