rtsp streaming fails when two NIC's are enabled
Posted: 23 Jan 2007 22:45
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
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