RTP через TCP без RTSP (для приема в FFmpeg) - PullRequest
1 голос
/ 23 апреля 2019

Позвольте мне, пожалуйста, ответить на основной вопрос, который я не могу решить, прочитав документацию по FFmpeg / libavformat.

FFmpeg может использовать аудио / видео с входа RTP по протоколу UDP.И это может также потреблять поток RTSP.В конце RTSP является протоколом управления (через TCP), который согласовывает носитель посредством SDP.Аудио / видео можно передавать:

  1. Используя отдельное UDP-соединение для отправки пакетов RTP.

  2. Путем совместного использования TCP-соединения дляоба, протокол управления и RTP.В этом случае каждый пакет RTP инкапсулируется, добавляя в него несколько байтов следующим образом:

| magic number | channel number | embedded data length | RTP packet |

И кажется, что FFmpeg поддерживает оба метода 1 и 2, описанные выше.

Мои конкретные вопросы следующие:

a.Может ли FFmpeg получать RTP через TCP без RTSP?Я имею в виду: просто пакеты RTP по соединению TCP, инкапсулированные как указано выше в RTSP, или с помощью RFC 4571 «Кадрирование RTP по TCP» (для этого просто необходимо добавить каждый пакет RTP двумя байтами, которые указывают длину пакета).

б.Если ответ на.«да», может ли FFmpeg вести себя как TCP-клиент (и подключаться к удаленной конечной точке, с которой он будет получать RTP через TCP)?или он должен вести себя как TCP-сервер для приема RTP?

...