Выбор библиотеки / фреймворка для захвата и записи видео - PullRequest
1 голос
/ 19 декабря 2011

В одном из предпринятых нами проектов мы ищем библиотеку для захвата и записи видео. Наши исследования (основанные на поиске в Google) показывают, что vlc (libvlc), ffmpeg (libavcodec) и gstreamer - это три популярные библиотеки с открытым исходным кодом и мультимедийные фреймворки, доступные для них. Как эти библиотеки сравниваются по следующим параметрам:

  1. Лицензионная политика, разрешающая использование в коммерческом продукте без необходимости открывать исходный код любого из компонентов продукта, использующего библиотеку
  2. Возможность эффективного использования в многопоточной среде (библиотека должна быть поточно-ориентированной)
  3. Прост в использовании и обслуживании
  4. Документация: API должен быть хорошо документирован ... это относительно ...:)

Наше основное намерение заключается в том, чтобы иметь возможность захватывать видеопотоки RTSP (в кодировке H.264 / MPEG-2 / MJPEG), преобразовывать эти потоки в необработанные видео / кадры, чтобы их можно было использовать для анализа / обработки и затем для сжатия эти кадры и сохранить его на диске в виде файла MP4 (с использованием кодировки MPEG2 / H.264).

P.S. Мы понимаем, что FFmpeg также является одним из компонентов vlc, поскольку vlc использует библиотеку libavcodec. То же самое относится и к gstreamer? Есть ли у него зависимость ffmpeg?

Жду ваших ответов.

С уважением,

Саураб Ганди

1 Ответ

4 голосов
/ 21 декабря 2011

Я предлагаю вам использовать Gstreamer.

Gstremer - это мультимедийный фреймворк, в котором так много плагинов для различных задач. Плагин - это один тип библиотеки. И для захвата rtsp , конвертирования необработанного видео и мультиплексирования в mp4 - все это, я думаю, вы легко найдете лучший плагин в Gstermer. Вам просто нужно написать одну заявку для этого.

   1. Licensing policy to allow use within a commercial product without
   the need to open source any of the components of the product that is 
   using the library

Я не знаю много об этом

   2. Ability to be used effectively in a multi-threaded environment 
    (library should be inherently thread-safe)

да Гстремер внутренне позаботится обо всех потоках.

 3. Easy to use and maintain

да Gstremer прост в использовании и обслуживании

 4. Documentation: API should be well documented...this is relative...:)

да, у Gstremer очень хорошо документированный API

Нет, среда Gstermer не зависит от ffmpeg.but На самом деле gstremer имеет несколько плагинов, основанных на ffmpeg. то есть gst-ffmpeg

...