реклама на сайте
подробности

 
 
> как засунуть mjpeg в udp?
novartis
сообщение Apr 2 2015, 20:24
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 375
Регистрация: 9-10-09
Из: Свердловский регион
Пользователь №: 52 845



Всем добрый день.

Возникла задача передавать jpeg кадры по ethernet, и именно по udp, да так, чтобы эти кадры, как видео, потом можно было бы смотреть на Андроид устройстве распространенными приложениями (типа IPTV).
Не могу постигнуть, как это осуществить.
Как обернуть данные и подсунуть в кадр udp?

Несколько часов гуглил, дошел до Udp Multicast, но в голове уже каша.

Укажите верное направление.

Для начала хочу все это дело реализовать на Qt. Алгоритм такой: нажал кнопочку, программа читает jpeg фото и в цикле засылает ее по udp.
На андроиде стоит IPTV, в нем хочу прописать источник: udp://@192.168.1.6:1234
здесь 192.168.1.6 и 1234 - ip-адрес и порт компа, с которого отправляются udp-пакеты.

Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
novartis
сообщение Apr 13 2015, 06:44
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 375
Регистрация: 9-10-09
Из: Свердловский регион
Пользователь №: 52 845



Все еще пытаюсь реализовать задачу.
Написал на qt приложение. Оно поднимает udp сервер.
Host ip=192.1.1.10. Client ip=192.1.1.20. Port=60000.
Формирую rtp пакеты. В rtp засовываю jpeg данные.
В wireshark мониторю трафик.
На ноуте поставил vlc.
В нем открываю url - rtp://192.168.1.20:60000.
В ответ выдается:
SDP required.
A description in sdp format is required to receive the rtp stream. Note that rtp://URIs cannot work with dynamic rtp payload format (26).

И еще в логе:
Unspecified payload format (26)
A valid sdp is needed to parse this rtp stream.

Что он хочет от меня?

Стал читать про sdp.
В результате (а вдруг получится?) перед каждым rtp пакетом с самым первым фрагментом jpeg добавил udp-sdp пакет с содержимым:
v=0
o=user 1111 22222 IN IP4 192.168.1.10
s=sessname
m=video 60000 RTP/AVP 29

Но vlc выдает теже ошибки, что и прежде.
Подскажите, куда копать, что я делаю не так.

Go to the top of the page
 
+Quote Post
ksv198
сообщение Apr 13 2015, 08:53
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 177
Регистрация: 25-08-05
Из: Ставрополь
Пользователь №: 7 964



Цитата(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.txt
VLC жрёт и не ругается, но воспроизводит вместо звука шипение. При этом в меню "Информация о кодеке" всё совпадает, с тем, что хочу передать.
Хотя если заграбить Wireshark - ом, то сборка RTP пакетов в файл и его последующее открывание в звуковом редакторе
дает хороший результат - слышу то, что отсылал.
Перечитал по кругу все касающиеся RFC уже раза 4, не помогает.
Может быть кто сталкивался, на что обратить внимание ещё?
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd August 2025 - 05:44
Рейтинг@Mail.ru


Страница сгенерированна за 0.01381 секунд с 7
ELECTRONIX ©2004-2016