Потоковое потоковое видео в кодированном формате MPEG-4 с веб-камеры с использованием RTP в C++

Я работал над созданием видеопотока из веб-камеры, используя протокол RTP на языке C++ в Linux. Я смог использовать opencv, чтобы брать кадры с веб-камеры и отправлять их кадр за кадром в клиентское приложение, которое показывает эти кадры один за другим, используя один и тот же параметр кадров в секунду.

Но это в основном тип передачи MJPEG, поскольку используемая кодировка - это кодировка JPEG с определенным качеством для каждого кадра. Тем не менее, я хотел бы использовать кодирование MPEG-4 перед передачей видео. После глубокого поиска в Интернете я обнаружил, что ffmpeg является лучшим для этой цели. Но образцы онлайн в основном работают через интерфейс командной строки для захвата видео с веб-камеры и сохранения его в виде видеофайла с заданной кодировкой и форматом.

О чем я здесь спрашиваю. Есть ли возможность кодировать веб-камеру "LIVE" и получать байтовые данные при кодировании потока камеры. Я хотел бы использовать эти байтовые данные для передачи их, например, с помощью RTP. А затем я хотел бы декодировать полученные байтовые данные и показать видео, используя, например, функцию opencv imshow.

Я надеюсь, что я мог бы четко объяснить свой вопрос.

Заранее спасибо,

Твой маад

1 ответ

Да, это возможно. Сам FFmpeg состоит из нескольких библиотек, которые могут использоваться извне для разработки ваших собственных программ.

Вы должны проверить эти ссылки для руководства:

Разработка программ с использованием библиотек FFmpeg

Использование библиотек libav *

Пример использования API libavcodec

Другие вопросы по тегам