according to Google, my command line was missing 'mux=ts' in the sdp string. the new command line i'm using is:
cvlc -vvv v4l2:///dev/video0 --sout '#rtp{sdp=rtsp://10.0.0.161:8554/test.sdp,mux=ts}'
this does change some behavior but it's still broken.
the new VLC player log is:
https://pastebin.com/raw/FzNJQ9eD
The console shows everything it did before, but when I Open Network Stream on the remote VLC, it also prints:
Code: Select all
[00007fce84001300] main stream out debug: net: connecting to [10.0.0.8]:51536
[00007fce84001300] main stream out debug: net: connecting to [10.0.0.8]:51537 from [10.0.0.161]:49807
[00007fce84001300] main stream out debug: net: connecting to [10.0.0.8]:51538
[00007fce84001300] main stream out debug: net: connecting to [10.0.0.8]:51539 from [10.0.0.161]:50763
there is a ten second wait between the two connecting attempts.
and then the remote VLC player just stops - no error and no playing - and gives me the option to press Play again.
the new tcpdump (with verbose) is here
https://pastebin.com/raw/jnzUF3jv
basically it goes (twice):
Code: Select all
client: OPTIONS
server: OK, Public: DESCRIBE,SETUP,TEARDOWN,PLAY,PAUSE,GET_PARAMETER
client: DESCRIBE rtsp://10.0.0.161:8554/test.sdp RTSP/1.0
server: OK
client: SETUP rtsp://10.0.0.161:8554/test.sdp/trackID=0 RTSP/1.0
server: OK, Transport: RTP/AVP/UDP;unicast;client_port=51536-51537;server_port=49806-49807;ssrc=7E42D0D8;mode=play
client: PLAY rtsp://10.9.0.161:8554/test.sdp RTSP/1.0
server: OK
<client sends tcp packet to server, immediately followed by udp packet, then waits a few seconds>
<client sends tcp packet to server, immediately followed by udp packet, then waits a few seconds>
<client sends tcp packet to server, immediately followed by udp packet, then waits a few seconds>
client: TEARDOWN rtsp://10.9.0.161:8554/test.sdp RTSP/1.0
the server never responds to the client's messages after the last OK.