Перейти к содержанию
Fire Monkey от А до Я
  • 0

TVideoCaptureDevice, трансляция в потоке


Alex7wrt

Вопрос

Добрый день.

В FMX есть компоненты TVideoCaptureDevice и TCameraComponent. Эти компоненты имеют событие OnSampleBufferReady, которое генерирует кадры видео в битмап. 

Вот мне и интересно, есть ли способ добиться  конвертации этих битмапов в  формат для youtube или других сервисов (может быть h264) и отправки в потоке?

Ссылка на комментарий

Рекомендуемые сообщения

  • 0

Добрый!

Есть. Можно использовать сторонние библиотеки и модули, но цена у них приличная, а можно самому сделать. Вот на счет "самому" - будет непросто))) Очень непросто)

Ссылка на комментарий
  • 0

Спасибо за наводку. Может подскажете пару ссылок на случай "сделай сам"?
Может быть есть алгоритмы как перекодировать массив пикселей в кадр формата h264? Или что-то типа того? Там наверное не все так просто и следующий кадр зависит от предыдущего

Изменено пользователем Alex7wrt
Ссылка на комментарий
  • 0

На случай "своими руками", я бы порекомендовал Вам копать в сторону WebRTC. Разумеется все зависит от конечных задач, стоящих перед Вашей программой. Судя по всему - это организация потокового видео в режиме реального времени на соответствующие сервисы. А это значит, что:

- нужно организовать формирование и передачу RTMP (RTSP) потока, с чем в Delphi (если о нем речь идет) есть определенные сложности) (в ситуации с С++ будет немного проще);

- нужно использовать кодеки (encoder), формат которых поддерживается теми системами, на которых вы хотите видеть воспроизведение потока. Аналогично, как и в вопросе с rtmp-потоком, ситуация с реализацией в Delphi будет сложнее (хотя тоже можно);

- что касается конвертации кадров из одного формата в другой, то тут все немного проще. В интернете полно алгоритмов описывающих конвертацию битмапа из одного формата в другой. Разумеется - не все так просто. Поскольку необходимо не просто конвертировать кадры, перед тем как передать их энкодеру, но еще и правильно от энкодера получить сам поток и передать его. После энкодера, конечно, идут не просто "кадры". В зависимости от настроек энкодера, сначала идет "ключевой кадр" (и он повторяется с определенной периодичностью), а за ним последовательность "фреймов" - "описывающих" лишь изменения в "ключевом кадре".

Кратко как-то так...

В любом случае, я бы порекомендовал Вам сначала пошарить по ресурсу, описывающему работу с потоковым видео. Просто понять как это работает, в принципе. Ну и многое можно там же подчерпнуть. Например, просто как  оптимальнее настроить энкодер для трансляции того или иного видео.

Ссылка на комментарий
  • 0
1 час назад, krapotkin сказал:

ну или сходить на митов.ком и купить если нужно для коммерческого проекта

Как называется компонент?

Изменено пользователем Rusland
Ссылка на комментарий
  • 0

Называется VideoLab (библиотека для работы с видео)

Проблем с ним несколько.

Во-первых - это только под Windows (уточним, насколько я знаю, сейчас Митов занимается созданием кроссплатформенной версии библиотеки, и вроде у него уже есть "наброски" (разумеется - под FMX), но когда появится релиз - не знаю).

Во-вторых - непосредственно сама эта либа работать с RTMP не может. Так-что прийдется использовать фильтры, которые еще найти надо будет, если они есть )))

Изменено пользователем AlexG
Ссылка на комментарий
  • 0
3 минуты назад, Rusland сказал:

Вот я и смотрю что VideoLab VCL only ) Ну что ж, подождем FMX

Нет нет. Есть и под FMX. Смотрите на странице загрузки - Firemonkey and VCL, Current Version Installers.

Но проблемы все те же останутся. Только Windows и сложность организации rtmp-потоков.

Ссылка на комментарий
  • 0
59 минут назад, Rusland сказал:

Какой-то заброшенный форум )

Есть такое дело. Он (Боян Митов) один автор сего продукта. Делает его ооооочень давно. В последнее время ударился в создание компонент и библиотек для работы с Arduino (почитать все новости можно в блоге). Недавно объявил о том, что скоро появится версия VideoLab для FMX с поддержкой не только Windows, но и MacOS и Android.

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...