Цитата(novartis @ Apr 13 2015, 09:44)
Все еще пытаюсь реализовать задачу.
...
Но vlc выдает теже ошибки, что и прежде.
Подскажите, куда копать, что я делаю не так.
Добрый день!
В вашем случае порядок действий такой:
-поднимаем TCP сервер для RTSP сессии на порту 554; слушаем его, отвечаем на запросы клиента по мере поступления;
минимально нужно реализовать OPTIONS, DESCRIBE, SETUP, PLAY, TEARDOWN;
-поднимаем UDP соединение для RTP потока mjpeg-ов (на каком порту договариваемся с клиентом на этапе SETUP); пример SDP описания (для этапа DESCRIBE):
s=RTSP/RTP stream from MyServer\r\n\
i=N/A\r\n\
t=0 0\r\n\
a=type:unicast\r\n\
a=control:*\r\n\
m=video 0 RTP/AVP 26\r\n\
a=control:track1\r\n\
a=cliprect:0,0,600,800\r\n
(изображение 800х600 тип mjpeg)
-поднимаем UDP соединение для RTСP соединения (на каком порту договариваемся с клиентом на этапе SETUP), дабы обмениваться с клиентом репортами;
-начинаем слать RTP пакеты с PayloadType=26, оформленные в соответствии с
http://tools.ietf.org/html/rfc2435.
Неплохая статья на Хабре, сильно помогла мне:
http://habrahabr.ru/post/117735/VLC удалось уговорить показывать mjpeg поток.
А вот со звуком пока засада. Вроде бы всё просто -звук у меня не пожатый 16-разрядный PCM, тип 11, т.е.:
m=audio 0 RTP/AVP 11\r\n\
a=control:track1\r\n\
a=rtpmap:11 L16/8000/1\r\n
Оформляю RTP пакеты в соответствии с
https://www.ietf.org/rfc/rfc2198.txtVLC жрёт и не ругается, но воспроизводит вместо звука шипение. При этом в меню "Информация о кодеке" всё совпадает, с тем, что хочу передать.
Хотя если заграбить Wireshark - ом, то сборка RTP пакетов в файл и его последующее открывание в звуковом редакторе
дает хороший результат - слышу то, что отсылал.
Перечитал по кругу все касающиеся RFC уже раза 4, не помогает.
Может быть кто сталкивался, на что обратить внимание ещё?