LINUX.ORG.RU

RTSP публикация

 , , , ,


0

1

Приветствую all! ))

Итакс продолжаю изучать вопрос RTSP публикация надежна?

Вновь уточню, что требуется послать rtp только при запросе с rtsp сервера.

Поскольку в свое поделие rtsp сервера так же выполняю публикацию подготовленного видео потока (Как забирается RTP поток у сервера RTSP?), чтобы организовать отдельный поток сервиса с очередью через локальный интерфейс с его внешними буферами (все штатными либами ффмпега без заморочек про сдп, временные базы, синхронизации потоков и прочее), то запушил так же штатно на внешний халявный rtsp-simple-server, который выполняет роль видео прокси в чужом проекте (с мыслями его перепроектировать).

И значит в tcpdump такой обмен вижу после установления tcp подключения

- моя утилита
OPTIONS rtsp://имя_внешнего_хоста:слушающий_порт/блаблабла RTSP/1.0
CSeq: 1
User-Agent: Lavf59.25.100

- сервер
RTSP/1.0 200 OK
CSeq: 1
Public: DESCRIBE, ANNOUNCE, SETUP, PLAY, RECORD, PAUSE, GET_PARAMETER, TEARDOWN
Server: gortsplib

затем

- утилита
ANNOUNCE rtsp://имя_внешнего_хоста:слушающий_порт/блаблабла RTSP/1.0
Content-Type: application/sdp
CSeq: 2
User-Agent: Lavf59.25.100
Content-Length: 305

- сервер ответ 0 длины, видимо tcp-ое подтверждение доставки, которое вижу после каждой посылки

затем

- утилита
v=0
o=- 0 0 IN IP4 127.0.0.1
s=No Name
c=IN IP4 адрес_сервера
t=0 0
a=tool:libavformat LIBAVFORMAT_VERSION
m=video 0 RTP/AVP 96
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1; sprop-parameter-sets=Z0LAKNoB4AiflmoCAgKAAAADAIAAAApHjBlQ,aM4NyA==; profile-level-id=42C028
a=control:streamid=0

- сервер
RTSP/1.0 200 OK
CSeq: 2
Server: gortsplib
Session: 545498661

затем

- утилита
SETUP rtsp://имя_внешнего_хоста:слушающий_порт/блаблабла/streamid=0 RTSP/1.0
Transport: RTP/AVP/TCP;unicast;interleaved=0-1;mode=record
CSeq: 3
User-Agent: Lavf59.25.100
Session: 545498661

- сервер
RTSP/1.0 200 OK
CSeq: 3
Server: gortsplib
Session: 545498661
Transport: RTP/AVP/TCP;unicast;interleaved=0-1

затем

- утилита
RECORD rtsp://имя_внешнего_хоста:слушающий_порт/блаблабла RTSP/1.0
Range: npt=0.000-
CSeq: 4
User-Agent: Lavf59.25.100
Session: 545498661

- сервер
RTSP/1.0 200 OK
CSeq: 4
Server: gortsplib
Session: 545498661

ПОСЛЕ этого поделие на основе либ ффмпега начинать слать RTP пакеты по ранее установленному TCP соединению на тот же порт.

т.е. как бэ сервер не говорит «публикации» PLAY только когда требуется, что кажется проблемой…

Что же делать как быть!?

★★★

Последнее исправление: wolverin (всего исправлений: 1)
Ответ на: комментарий от anonymous

хотелось бы rtsp перевернуть, т.е. выполнить rtsp согласование с видео прокси сервисом и когда с него запрашивают поток - начинать пушить rtp через него, сейчас штатно получается только все время писать на сервер

wolverin ★★★
() автор топика