LINUX.ORG.RU

FFmpeg 8.1

 codecs, , ,

FFmpeg 8.1

0

2

После более полугода разработки состоялся выпуск 8.1 проекта FFmpeg, с кодовым именем «Hoare» (в честь сэра Чарльза Хоара (11 января 1934 — 5 марта 2026)).

Это набор свободных библиотек и утилит с открытым исходным кодом, позволяющих записывать, конвертировать и передавать цифровые аудио- и видеозаписи в различных форматах. Название происходит от названия экспертной группы MPEG и FF, означающего «fast forward».

Проект состоит из следующих компонентов:

  • ffmpeg — консольная утилита для конвертирования видеофайла из одного формата в другой и захвата видео в реальном времени.
  • ffplay — простой медиаплеер, основанный на SDL2 и библиотеках FFmpeg.
  • ffprobe — консольная утилита, позволяющая собирать и отображать информацию о медиафайлах (как MediaInfo) и мультимедиапотоках, доступных устройствах, кодеках, форматах, протоколах и др.
  • libavcodec — библиотека со всеми аудио/видеокодеками. Большинство кодеков было разработано «с нуля» для обеспечения наилучшей производительности.
  • libavformat — библиотека с мультиплексорами и демультиплексорами для различных аудио- и видеоформатов.
  • libavutil — вспомогательная библиотека со стандартными общими подпрограммами для различных компонентов ffmpeg.
  • libpostproc — библиотека стандартных подпрограмм обработки видео.
  • libswscale — библиотека для масштабирования видео.
  • libavfilter — позволяет изменять видеопоток между декодером и кодером «на лету».

Основные изменения:

  • добавлена экспериментальная поддержка декодирования xHE-AAC MPEG-H с использованием библиотеки libmpeghdec;
  • добавлен парсинг EXIF-метаданных;
  • реализована поддержка парсинга и перенаправления метаданных LCEVC (Layered Coding for Efficient Video Coding);
  • кодирование и декодирование ProRes и декодирование DPX с помощью Vulkan;
  • D3D12: кодирование H.264/AV1, фильтры масштабирования (scale_d3d12), оценки движения (mestimate_d3d12) и чересстрочной развёртки (deinterlace_d3d12);
  • для платформ Rockchip добавлено аппаратное кодирование H.264 и HEVC;
  • добавлена поддержка пространственного аудиоформата IAMF: режим проекции, мультиплексирование и демультиплексирование объёмного звучания Ambisonic;
  • новые фильтры и форматы: фильтр drawvg для рендеринга SVG и фильтр vpp_amf для обработки видео через AMD AMF; добавлен демуксер формата hxvs.

В этом выпуске много внутренних изменений и исправлений ошибок. Ведётся работа над предстоящей переработкой swscale. Кодеки на основе Vulkan, а также некоторые фильтры, больше не зависят от компиляции GLSL во время выполнения, что ускоряет их инициализацию. В блоге Khronos опубликована дополнительная статья о реализации кодеков на основе Vulkan Compute, содержащая технические подробности реализации и планы на будущее.

>>> Скачать

>>> Подробности на ffmpeg.org

★★★★★

Проверено: dataman ()
Последнее исправление: dataman (всего исправлений: 8)

ffplay version 3.3
built with gcc 6

Зачем это тут?

dataman ★★★★★
()
Ответ на: комментарий от hobbit

К слову, вот не было-бы скобок, я долго думал-бы, кто такой Ноаге, пока не догнал, что это на англ. :)

SkyMaverick ★★★★★
()
Ответ на: комментарий от dataman

Ну жоска ты конечно, лучше уж так, чем вообще никак?)

Моя теория в том, что @splinter метит в черепашки модераторы, поэтому пишет много новостей, что в целом то хорошо, чем плохо.

XMPP ★★
()
Ответ на: комментарий от XMPP

нет спасибо, я уже когда-то был модератором. Мне не нравится, что некогда ценный для меня ресурс информационно «остывает».

splinter ★★★★★
() автор топика
Последнее исправление: splinter (всего исправлений: 1)
Ответ на: комментарий от splinter

Понял, мотивация оказалась иной, но не менее хорошей!

XMPP ★★
()

Спасибо за ликбез к новости.

mikhalich ★★
()

владельцы rockchip наверное очень рады, в остальном - хорошо что проект не стоит на месте.

Sylvia ★★★★★
()
Ответ на: комментарий от splinter

Мне не нравится, что некогда ценный для меня ресурс информационно «остывает».

Два чая этому пятизвёздному!

hobbit ★★★★★
()
Ответ на: комментарий от hobbit

Огорчает только, что API неоднократно ломали…

Есть такое, зачем-то переименовали поле channels в ch_layout.nb_channels. Приходится теперь дефайны делать для старой/новой версии библиотеки.

Skullnet ★★★★★
()

Архитектура инициализации контекста в libavcodec меня огорчает - как будто писалось чисто для консольной утилиты-only, а про какие-то приложения никто даже и не думал. Дело в том что нельзя сделать так чтобы контекст инициализировался в «отложенном» режиме. Например, у меня есть радио через HTTP(S), пока avformat_open_input не настроится на рабочий поток, дальше работа приложения не пойдёт (например, при инициализации контекста вдруг упал Интернет или поток недоступен). Обойти это нельзя никак. Как-то ускоряю работу через запуск инициализаций avformat_open_input в разных потоках. Самое интересное, что переподключение при прерывании работает в отдельном потоке как надо, но «defered context initialization» не завезли.

Ах да, по этой проблеме ходил на IRC, сказали что «ну такая блокирующая архитектура у нас, deal with it».

Skullnet ★★★★★
()
Последнее исправление: Skullnet (всего исправлений: 4)
Ответ на: комментарий от splinter

Мне не нравится, что некогда ценный для меня ресурс информационно «остывает».

Обычное же дело: мы меняемся, «вырастаем» из «ресурсов», ресурсы... не меняются... для нас... с нашей точки (подо)зрения... :)

Это естественные процессы. Так было, так есть, так будет... есть... ;))

Но «за попытку» - спасибо! :)

Somebody ★★★★
()
Последнее исправление: Somebody (всего исправлений: 2)
Ответ на: комментарий от Somebody

Обычное же дело: мы меняемся, «вырастаем» из «ресурсов», ресурсы… не меняются… :)

Это естественные процессы. Так было, так есть, так будет…есть… ;))

Но «за попытку» - спасибо! :)

Вроде слова какие-то сказал, а по факту - ничего по делу. Как в тех мемах про волка.

Bfgeshka ★★★★★
()
Ответ на: комментарий от Bfgeshka

Ну или ты не в состоянии понять... «Как в тех мемах», да...

Somebody ★★★★
()

Основные изменения

А кто-нибудь знает где посмотреть полный лист изменений? Я с ходу не нашёл. Конкретно интересует какие именно Rockchip’ы поддерживаются.

Jullyfish
()

кто-нибудь пробовал управлять ffmpeg через zmq? поделитесь ощущениями

gagarin0
()
Ответ на: комментарий от splinter

Но постить новости из автопереводчика - весьма плохой способ.

firkax ★★★★★
()
Ответ на: комментарий от Sylvia

Они за 15+ лет, которые я плюс/минус плотно с ним занимаюсь, очень хорошо двинулись в плане API и достаточно продуманно действуют в плане сохранения ABI. Второе, правда, зачастую ценой создания объектов в куче.

hatred ★★★★
()
Ответ на: комментарий от hobbit

К сожалению, придумать всё на 100 лет вперёд не всегда получается. Да и тащить тонну кода для легаси не всегда есть силы и желание. Я где-то в 2010-2011 для своей задачи запилил библиотечку-враппер на плюсцах для либ ffmpeg, пожалуй даже сейчас сможет собраться с древними версиями. Но даже мне иногда уже тянутся руки старое выбрасывать.

Самое существенное, что было, это разделение кодирования/декодирования на push/pull механизм. Но к тому моменту почти все аппаратные кодеки таким образом работали.

Остальные изменения API достаточно просто и быстро правились. Ну и грамотное версионирование очень помогает.

hatred ★★★★
()
Ответ на: комментарий от hatred

Но даже мне иногда уже тянутся руки старое выбрасывать.

Я пока креплюсь и леплю условную компиляцию. Хотя с тем, как её правильно лепить, пришлось подразобраться (до создания той темы я собственные символические имена лепил, но сейчас вроде как навёл порядок).

hobbit ★★★★★
()
Ответ на: комментарий от hobbit

Собственные имена тоже иногда нужны :)

мне приходится на этапе конфигурации собирать информацию о версиях библиотеки, фиксировать её на момент сборки, так как часть условий применяется в .h файлах, а часть в бинарном коде. Что бы не получилось: либу собрал, а потом обновился ffmpeg, в результате в .h файлы могут включиться ветки, которым нет соответствия в бинарном коде. Примерно так: https://github.com/h4tr3d/avcpp/blob/master/src/avcpp/avconfig.h.in

А вообще, тебе там верно сказали: у каждой компоненты своя версия и для кода и оной приходится делать проверки ну а сами дефайны в libxxx/version.h.

hatred ★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.