LINUX.ORG.RU

Не получается вещание в vlc по rtsp

 , ,


0

1

Запускаю, например, так:

$cat example.dv|cvlc - :file-caching=300 :sout='#transcode{vcodec=h264,vb=800,acodec=mpga,ab=128,cnnels=2,samplerate=44100}:rtp{sdp=rtsp://:12554/sn}' :sout-all :sout-keep --ttl 12

На том же самом компьютере или соседнем, соединённом напрямую через кабель

$cvlc rtsp://127.0.0.1:12554/sn

даёт просмотр вещания, хотя и некоторые ошибки сыпятся вроде

core input error: ES_OUT_RESET_PCR called
Frame num change from 6 to 7
decode_slice_header error

Но видео смотрится.

Однако, откуда-нибудь извне посмотреть не получается. Ошибка

live555 demux error: no data received in 10s, aborting

Если попробовать подсоединиться к другому порту (заведомо нерабочему), то сообщения совсем другие, что невозможно установить связь. То есть, чего-то оно там таки коннектится, но упорно не желает нормально работать. Файрвол проверял, вроде ничего такого не блокирую. Во всяком случае на соседнем компе же показ идёт.

Чего-то даже идеи кончились, такое ощущение, что чего-то элементарного не делаю, какой-то опции не задал или задал неправильно.

★★★★★

Последнее исправление: anonymous_incognito (всего исправлений: 1)

Ответ на: комментарий от Andrey_Utkin

Вот для успешного (ну относительно успешного, если не считать некоторых глючков) воспроизведения: http://pastebin.com/XWvVnb8Y

Вот для неуспешного: http://pastebin.com/PbEfZYnX

Кстати, что интересно, в Virtualbox на том же компе тоже воспроизведение неуспешное.

Сравниваю эти два вывода. Такое ощущение, что где-то кто-то что-то всё-таки режет по дороге, но не полностью, то есть, порт открыт. Шиза какая-то :)

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

Похоже, VLC шлёт RTP-поток мультикастом на нулевой порт (wtf?). Поэтому извне физической локальной сети и не работает. Попробуйте коннектиться проигрывателем так

ffmpeg -loglevel debug -rtsp_transport tcp -i rtsp://127.0.0.1:12554/sn

Или колдуйте над серверной командой VLC.

Andrey_Utkin ★★
()
Ответ на: комментарий от Andrey_Utkin
Splitting the commandline.
Reading option '-loglevel' ... matched as option 'loglevel' (set logging level) with argument 'debug'.
Reading option '-rtsp_transport' ... matched as AVOption 'rtsp_transport' with argument 'tcp'.
Reading option '-i' ... matched as input file with argument 'rtsp://127.0.0.1:12554/sn'.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option loglevel (set logging level) with argument debug.
Successfully parsed a group of options.
Parsing a group of options: input file rtsp://127.0.0.1:12554/sn.
Successfully parsed a group of options.
Opening an input file: rtsp://127.0.0.1:12554/sn.
[rtsp @ 0x2171080] SDP:
v=0
o=- 15749236681022485123 15749236681022485123 IN IP4 mf
s=Unnamed
i=N/A
c=IN IP4 0.0.0.0
t=0 0
a=tool:vlc 2.2.1
a=recvonly
a=type:broadcast
a=charset:UTF-8
a=control:rtsp://127.0.0.1:12554/sn
m=audio 0 RTP/AVP 14
b=AS:128
b=RR:0
a=rtpmap:14 MPA/90000/2
a=control:rtsp://127.0.0.1:12554/sn/trackID=0
m=video 0 RTP/AVP 96
b=AS:800
b=RR:0
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1;profile-level-id=64001e;sprop-parameter-sets=Z2QAHqzZQLQSb/wAQAA8QAAAAwBAAAAMo8WLZYA=,aOvssiw=;
a=control:rtsp://127.0.0.1:12554/sn/trackID=1

[rtsp @ 0x2171080] audio codec set to: mp2
[rtsp @ 0x2171080] audio samplerate set to: 90000
[rtsp @ 0x2171080] audio channels set to: 2
[rtsp @ 0x2171080] video codec set to: h264
[rtsp @ 0x2171080] RTP Packetization Mode: 1
[rtsp @ 0x2171080] RTP Profile IDC: 64 Profile IOP: 0 Level: 1e
[rtsp @ 0x2171080] Extradata set to 0x2166320 (size: 42)
[rtsp @ 0x2171080] method SETUP failed: 461 Client error
[rtsp @ 0x2171080] Server: VLC/2.2.1
Date: Mon, 14 Mar 2016 00:41:53 GMT
Content-Length: 0
Cache-Control: no-cache
Cseq: 3

rtsp://127.0.0.1:12554/sn: Protocol not supported

Похоже, VLC шлёт RTP-поток мультикастом на нулевой порт (wtf?).

Почему, вернее что позволило заподозрить? У меня возникло немного другое подозрение, что несмотря на явное даже задание --ttl эта программа шлёт UDP пакеты с TTL=1 и естественно они дропаются по дороге. Почитал, что-то не понял как это проверить или отдельно задать правильную опцию.

Вообще, я особо не извращался с опциями, просто использовал те параметры, что сгенерировал GUI vlc, если выбрать сначала файл, потом протокол rtsp добавить и перекодировку в h264 (без перекодировки глюк: аудио есть, видео почему-то нет).

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

Там в чём-то другом дело. После указания в dst точного номера порта для udp и проброса этих портов в настройках nat для гостевых машин в Virtualbox всё там внутри заработало, при том, что не работает снаружи, даже не знаю, что ещё предпринять.

Поскольку это вероятно более касается уже администрирования вообще, создал тему в другом разделе.

Стриминг, порт-форвардинг и т.п.

anonymous_incognito ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.