Page 1 of 1

rtsp streaming fails when two NIC's are enabled

Posted: 23 Jan 2007 22:45
by andrewaggb
Hi,

I am a developer from VideoJet Inc, we use ip cameras from vivotek that have rtsp streaming capabilities. I have successfully connected to these cameras using VLC 0.86a for windows, the vlc firefox plugin for windows, and using quicktime, realplayer, our own viewing software, etc in windows.

In linux I can connect to these cameras using our own rtsp client software (we have our own(not lib555)) and also using vivotek's own rtsp client software. Using VLC in linux (Fedora Core 6 - using either the livna build or my own build of vlc) fails to display the rtsp stream when I have eth0 enabled, and the mozilla-vlc plugin shows (no video) with one or both interfaces enabled. VLC in linux does connect to the rtsp stream, and I can see the rtsp information in the terminal including the play command receiving the 200 ok, but no video is displayed when I have eth0 enabled. If I disabled eth0, everything goes the same, the rtsp play command gets 200 ok, but I do get video.

my ethernet configuration can be seen below, eth0 is dhcp, eth1 is static at 192.168.240.1

eth1 runs a dhcp server (dhcpd 3.0.3)

eth0 Link encap:Ethernet HWaddr 00:0C:6E:B4:37:E3
inet addr:192.168.1.192 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::20c:6eff:feb4:37e3/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:278662 errors:0 dropped:0 overruns:0 frame:0
TX packets:413580 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:142660972 (136.0 MiB) TX bytes:334886697 (319.3 MiB)
Interrupt:20 Base address:0xc000

eth1 Link encap:Ethernet HWaddr 00:04:E2:32:E8:1B
inet addr:192.168.240.1 Bcast:192.168.240.255 Mask:255.255.255.0
inet6 addr: fe80::204:e2ff:fe32:e81b/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1146388 errors:0 dropped:0 overruns:0 frame:0
TX packets:865764 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1147664599 (1.0 GiB) TX bytes:49329566 (47.0 MiB)
Interrupt:18 Base address:0x8000

my routing table is as follows:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
255.255.255.255 * 255.255.255.255 UH 0 0 0 eth1
192.168.240.0 * 255.255.255.0 U 0 0 0 eth1
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
169.254.0.0 * 255.255.0.0 U 0 0 0 eth0
239.0.0.0 * 255.0.0.0 U 0 0 0 eth0
default 192.168.1.3 0.0.0.0 UG 0 0 0 eth0

FYI: I have tried deleting the routes 169.254.0.0, 239.0.0.0, and 255.255.255.255 and it doesn't make any difference.

The Camera in question is located at rtsp://192.168.240.4:20109/live.sdp
I have also tried connecting to a camera at rtsp://192.168.1.88:20505/live.sdp with no success.

When I disable eth0 (ifdown eth0) I am able to connect using the vlc player to the camera at 192.168.240.4, if I disable eth1 I am still not able to connect to the camera at 192.168.1.88.

I have ip tables running, but it is set to allow all outgoing, eth0 is running masquerade, eth1 is trusted. I was running as root when I tried this.

I hope this information is helpful. I plan on trying out lib555's rtsp client and server libraries soon, so maybe I will learn something that can help with this issue in linux - or at least my install linux :-)

Posted: 26 Jan 2007 21:48
by xtophe
Well all you debugging points to live555.

Maybe running vlc in strace will show how it access the network and what it does wrong.

running the live555 client directly is indeed a good idea to see if it comes from live555