LINUX.ORG.RU

Ffmpeg


51

0

Всего сообщений: 47

Самый быстрый декодер VP8: ffvp8

Группа Мультимедиа

Ранее уже была новость про разработку собственного декодера VP8 для FFmpeg. Но на тот момент это была достаточно сырая версия, чтобы говорить о каких-то конкретных результатах и тестировании. Теперь, после завершения первоначального этапа оптимизации, один из основных разработчиков x264 — Jason Garrett-Glaser — представил публике первые результаты тестирования нового декодера. И, надо сказать, они действительно впечатляют:

  • абсолютно во всех тестах ffvp8 оказался быстрее libvpx от Google;
  • в некоторых тестах ffvp8 превзошёл конкурента более чем в 1.5 раза;
  • больше всего преимущество ffvp8 было заметно на 64-битных платформах, на 32-битных платформах преимущество существенно заметно лишь на платформе Windows.

Для тестирования использовались два видеоклипа (Parkjoy и Sintel) с качеством HD 1080p. Команда, при помощи которой проводилось тестирование: time ffmpeg -vcodec {libvpx or vp8} -i input -vsync 0 -an -f null. Была взята последняя версия FFmpeg из SVN. Ниже представлены результаты (в кадрах в секунду) для платформы Linux, результаты для платформ Mac OS X и Windows можно найти по ссылке.

Core i5 520M (2.4Ghz), Linux, 64-bit:

  • Parkjoy ffvp8: 68.29 +/- 0.06
  • Parkjoy libvpx: 41.06 +/- 0.04
  • Sintel ffvp8: 112.38 +/- 0.37
  • Sintel libvpx: 69.64 +/- 0.09

Atom N270 (1.6Ghz), Linux, 32-bit:

  • Parkjoy ffvp8: 15.29 +/- 0.01
  • Parkjoy libvpx: 12.46 +/- 0.01
  • Sintel ffvp8: 26.87 +/- 0.05
  • Sintel libvpx: 20.41 +/- 0.02

Также по ссылке можно прочитать рассказ разработчика о том, как проводилась разработка декодера, и за счёт чего ffvp8 оказался таким быстрым.

>>> Подробности

 ,

MuZHiK-2
()

Собственный декодер VP8 для FFmpeg

Группа Мультимедиа

На днях, следуя принципу “несколько независимых реализаций помогают стандарту развиваться и становиться более полезным для пользователя", Роналд Балтье (Ronald Bultje) и другие разработчики FFmpeg написали собственный декодер VP8. Что это даст FFmpeg по сравнению с libvpx? Оказывается, много что:

  • один и тот же код (а самое главное, и оптимизации) можно использовать как для VP8, так и для декодеров предыдущих версий VPx (степень повторного использования кода для VP5/6 очень высока по сравнению с VP8). Благодаря этому, мультимедиа-плееры для телефонов и мобильных устройств можно сделать компактными и более быстрыми;
  • так как H.264 (в настоящее время - промышленный стандарт кодирования видео) и VP8 очень похожи, то можно использовать один и тот же код (и, конечно же, оптимизации) для реализации H.264 в FFmpeg и декодеров VP8. Опять же, это позволяет сделать мультимедиа-плееры более быстрыми и компактными;
  • так как собственные реализации VP3/Theora и декодеров Vorbis у FFmpeg более быстрые, чем аналоги (например, чем те, что поставляются Xiph в виде libvorbis/libtheora), то, и собственная реализация декодера VP8 также более быстрая, чем libvpx от Google (на данный момент есть оптимизации только для платформ x86 и PPC).

В итоге, у разработчиков FFmpeg получился декодер, который максимально полно старается использовать уже имеющийся код в компонентах FFmpeg. Новый декодер уместился всего лишь в 1400 строк кода в файле vp8.c (включая пробелы и пустые строки) и примерно 450 строк кода для функций обработки цифровых сигналов (собственно, сам математический аппарат, оптимизированный методом SIMD). Новый декодер обеспечивает полную бинарную совместимость на выходе с тем, что выдаёт libvpx для набора тестовых файлов. Для сравнения, декодер VP8 в реализации libvpx занимает порядка 10,000 строк кода (без оптимизаций), плюс более 1000 строк кода для реализации открытого API для доступа к декодеру.

Весьма интересны впечатления разработчиков после реализации VP8:

  • спецификации, предоставленные Google для VP8, не всегда помогали. Например, в спецификациях описан только базовый профиль, остальные же профили используют функции, которых нет в спецификациях, или описание которых неполное. Поэтому, зачастую, было проще читать исходный код libvpx, чем спецификации. Более того, спецификации являются ни чем иным, как копией исходных кодов декодера, поэтому, как спецификация, для профессионала она бесполезна;
  • libvpx полна ассемблерного кода, часть которого не переносится на другие платформы или вообще не используется, поэтому цель такого кода так и осталась неясной;
  • сейчас, когда VP8 уже выпущен, Google так и не выпустила спецификации на предыдущие стандарты VPx, например VP7.

Сейчас работа направлена на оптимизацию декодера, чтобы его производительность превосходила libvpx на различных устройствах (особенно мобильных).

>>> Патч для FFmpeg

 , , vp7, , ,

MuZHiK-2
()

Вышел FFmpeg 0.6

Группа Мультимедиа

На днях был анонсирован выпуск FFmpeg версии 0.6 (кодовое имя «Works with HTML5»). Это первый выпуск с марта прошлого года, когда вышла версия 0.5. Итак, что разработчики успели сделать более чем за год:

  • множество улучшений для видео HTML5: декодеры H.264 и Theora теперь работают значительно быстрее, обновлён декодер vorbis, а также добавлена поддержка libvpx для кодека VP8 и контейнера WEBM;
  • удалена устаревшая подсистема vhook;
  • удалена устаревшая подсистема масштабирования;
  • удалён несвободный код libamr для кодирования/декодирования AMR-NB/WB;
  • добавлена поддержка RTMP в libavformat;
  • опции -formats разделены на -formats, -codecs, -bsfs и -protocols;
  • новый инструмент ffprobe для анализа потоков;
  • добавлена поддержка протоколов RTMP/RTMPT/RTMPS/RTMPE/RTMPTE в библиотеку librtmp;
  • добавлена запись комментариев VorbisComment для файлов FLAC, Ogg FLAC и Ogg Speex;
  • добавлены новые кодеки: Intel Indeo 5, WMA Pro, WMA Voice, HE-AAC, кодирование/декодирование AMR-NB и декодирование AMR-WB средствами библиотек OpenCORE, декодер Electronic Arts Madcow, кодирование субтитров DivX (XSUB), экспериментальное кодирование AAC, демультиплексирование Wave64, декодирование субтитров Bluray (PGS), декодирование MPEG-4 Audio Lossless Coding (ALS), демультиплексор Bink с поддержкой декодирования аудио/видео и многие другие;
  • оптимизации для платформы ARM.

Загружаем новую версию, собираем и радуемся улучшенной мультимедийной поддержке в Linux!

>>> Замечания к выпуску

 , , , ,

MuZHiK-2
()

Вышел FFMpeg 0.5.1

Группа Мультимедиа

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

  • Добавлена поддержка видео декодера Indeo 5
  • Теперь полностью поддерживается Bink, CDG и IFF PBM/ILBM
  • Реализована поддержка RTSP
  • Поддержка формата PGS-субтитров (используется на blu-ray дисках)
  • Добавлена поддержка AMR-NB, Sipro, MPEG-4 ALS и WMA Voice
  • Для AMR-NB/WB возможна поддержка через FOSS библиотеку — OpenCORE
  • Добавлена утилита для извлечения информации о мультимедиа файле — ffprobe
  • AC-3 декодер теперь полностью под LGPL

>>> Подробности

 

Root-msk
()

Уязвимость в FFMpeg (целочисленное переполнение)

Группа Безопасность

На secunia.com появилось сообщение об уязвимости в FFmpeg, которая может привести к компрометации использующего библиотеку приложения.

Уязвимость вызвана целочисленным переполнением и может позволить злоумышленнику провести атаку класса heap-based overflow. Успешная атака позволит выполнить произвольный код в системе.

Уязвимость обнаружена в версии 0.5, однако может присутствовать и в других версиях. Защититься можно, если не запускать воспроизведение потоков из непроверенных источников.

Коммит, устраняющий уязвимость в git-версии: http://git.ffmpeg.org/?p=ffmpeg;a=com...

>>> Сообщение на secunia.com

 ,

name_no
()

FFmpeg 0.5 «Bike Shed»

Группа Open Source

FFmpeg - это полноценное кросс-платформенное средство для записи, конвертирования и передачи аудио- и видеопотоков. FFmpeg содержит libavcodec - одну из лучших библиотек аудио- и видеокодеков.

Прошло очень много времени с последнего релиза, во всех дистрибутивах уже давно используются снапшоты из subversion-репозитория FFmpeg, и наконец-то разработчики решили выпустить ещё один промежуточный релиз - FFmpeg 0.5. Новая версия содержит огромное количество изменений по сравнению с прошлой версией (0.4.8). Основные изменения:

  • Проделана огромная работа для поддержки популярных проприетарных кодеков (как минимум поддержка декодирования)
    1. Декодирование и кодирование
      1. ALAC
      2. Flash Screen Video
      3. Исправлен декодер WMAv2, добавлена поддержка кодера WMAv1/v2
    2. Декодирование
      1. Atrac3
      2. MLP/TrueHD
      3. Улучшена поддержка On2 VP3 и добавлена поддержка VP5/VP6
      4. RealAudio Cooker
      5. RealVideo RV30/40
      6. WMV3/WMV9/VC-1 и поддержка фреймов IntraX8 для WMV2/VC-1
  • Поддержка открытых и свободных кодеков
    1. Декодирование и кодирование
      1. DNxHD
      2. DVCPRO50 (он же DV50)
      3. PCM, закодированный числами с плавающей точкой
      4. GSM-MS
      5. Theora (кодирование через libtheora)
      6. Vorbis
    2. Декодирование
      1. AAC с поддержкой ADTS и скоростью >2x для FAAD (пока без поддержки HE AAC)
      2. Поддержка AC-3, более быстрая реализация, чем liba52 в режиме 5.1, почти в два раза быстрее в режиме стерео; также добавлена поддержка E-AC-3. Теперь liba52 можно считать устаревшей.
      3. DCA
      4. DVCPRO HD (он же DV100)
      5. H.264 с поддержкой PAFF и CQM, плюс многопоточное декодирование, основанное на слайсах (slice-based)
      6. Monkey's Audio (он же MAC, он же APE, также его ошибочно считают как-то относящимся к Apple =))
      7. Поддержка MPEG-2 видео для intra VLC
      8. MPEG-2 4:2:2 encoder
      9. Musepack
      10. QCELP
      11. Shorten
      12. True Audio (TTA)
      13. Wavpack, включая поддержку гибридного режима
  • Поддержка новых форматов контейнеров
    1. Демультиплексоры и мультиплексоры (demuxers && muxers)
      1. GXF
      2. MXF
    2. Демультиплексоры
      1. NullSoft Video (NSV)
    3. Мультиплексоры
      1. Совместимость с iPhone/iPod для MP4/MOV
      2. Matroska (MKV)
      3. NUT
      4. Ogg (только для кодеков FLAC, Theora и Vorbis)
      5. ShockWave Flash (SWF)
  • libavdevice
  • ffserver снова работает
  • Новая система сборки без рекурсии
  • Более чистый, последовательный код
  • Полностью новое API для метаданных
  • И многое многое другое!

Скачать: исходники.tar.bz2.

>>> Подробности

 , , , ,

Deleted
()

FFmpeg: новые форматы

Группа Open Source

Вчера в SVN-репозитории проекта FFmpeg появилась поддержка нескольких новых форматов.

  • QCELP/PureVoice - декодер для речевой информации. Раньше использовался в CDMA-сетях.
  • PCM с плавающей точкой для более точной передачи аудио: декодер + енкодер.
  • Декодер для Nellymoser ASAO - проприетарный одноканальный формат для передачи аудиоданных с низким битрейтом.
  • Формат EA TGQ - использовался в некоторых играх под Sega Saturn и РС от компании Electronic Arts.
  • Добавлен libspeex-декодер.
  • Появился муксер формата MXF (Material eXchange Format). MXF ориентирован на профессиональную обработку видеоматериалов: позволяет прозрачно объединять самые различные потоки аудио-/видеоданных, владеет метаданными и др.
  • Поддержка аудиокодека E-AC-3, также известного под именем Dolby Digital Plus. Битрейты свыше 6.144 Mbit/s, каналы: 13.1, меньше аудиоартефактов и обратная совместимость с существующим AC-3 железом.
  • RealVideo 4.0 - декодер потокового видео, наследует черты от RV-3 и H.264.

>>> Подробности

 , ,

shahid
()