Воспроизведение RTP с использованием VLC
В настоящее время у меня есть приложение для Android, которое захватывает видео с камеры и передает его по RTP. Я не пользуюсь RTSP.
Я создал файл SDP, который описывает канал RTP. Я могу открыть файл SDP в Quicktime 7 и вижу поток, пытаясь открыть файл SDP в VLC, не работает. Я получаю следующую ошибку:
Ошибка live555: данные не получены в течение 10 секунд, прерывание
Я наблюдаю за RTP-пакетами с помощью Wireshark и могу видеть пакеты в сети (см. Пример ниже):
281956 2545.589171000 10.0.1.25 10.0.1.150 UDP 1442 Source port: 54405 Destination port: 51372
В Quicktime 7, похоже, нет проблем с привязкой к порту назначения в SDP и воспроизведении потока, но я вижу следующий пакет ICMP при попытке использовать VLC:
286674 2925.162140000 10.0.1.150 10.0.1.25 ICMP 70 Destination unreachable (Port unreachable)
Мой файл SDP содержит:
v=0
o=- 1360349812962 1360349812962 IN IP4 10.0.1.25
s=Unnamed
i=N/A
c=IN IP4 10.0.1.150
t=0 0
a=recvonly
m=video 51372 RTP/AVP 96
b=RR:0
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1;profile-level-id=42c01e;sprop-parameter sets=Z0LAHukBQHsg,aM4G4g==;
Что мне нужно сделать, чтобы поток воспроизводился в VLC? Я пытался использовать аргумент "--rtp-client-port=51326" при запуске VLC, но, похоже, это не имеет значения.
ОБНОВЛЕНИЕ 1
Похоже, что VLC (по крайней мере, так, как я его использую) не использует клиентский порт, указанный вами в SDP, он всегда назначает свой собственный порт, который ожидает доставки пакетов RTP. Я изменил свой подход, чтобы позволить мне захватывать порт из VLC и запускать мой канал RTP, используя этот порт в качестве пункта назначения, и он работал. Это не идеальное решение.
Кто-нибудь знает, как заставить VLC использовать порт назначения в файле SDP?
1 ответ
VLC использует порт, указанный в параметре ниже (51372), в качестве порта назначения.
m = видео 51372 RTP/AVP 96
Я попробовал это с захватом аудио.
Вам просто нужно воспроизвести этот файл sdp без каких-либо параметров с этой конфигурацией SDP.