74 | | |
75 | | ruby nodeHandler.rb -s false test:exp:streaming-panasonic |
76 | | |
77 | | |
78 | | |
79 | | change test:exp portion if the script is being invoked from some other folder |
80 | | |
81 | | structure. After all nodes check in, it will take at most 10 seconds for the |
82 | | |
83 | | streaming to start on the node pairs, except first time. The first time run will |
84 | | |
85 | | involve an apt-get install command to install video clip debian package file. |
86 | | |
87 | | So, this adds at most 2 minutes. Subsequent runs should not have this additional |
88 | | |
89 | | delay. This delay is not a blocking delay for nodeHandler. So, experimenter |
90 | | |
91 | | needs to wait this amount of time after the nodeHandler start script is invoked. |
92 | | |
93 | | |
94 | | |
95 | | Step 3) |
96 | | |
97 | | |
98 | | |
99 | | Use display machine to run three instances of VLC player, and enter URL info of |
100 | | |
101 | | the stream into 'File->Open Network Stream->HTTP' text field. URL format is |
102 | | |
103 | | http://CTRL_IP_of_Node:80XY, where X and Y are coordinates of the node. In |
104 | | |
105 | | current setup, the URLs translate into: |
106 | | |
107 | | http://10.19.1.8:8018 |
108 | | |
109 | | http://10.19.2.5:8025 |
110 | | |
111 | | http://10.19.3.8:8038 |
112 | | |
113 | | Invoking these URLs should bring up three video streaming windows on display |
114 | | |
115 | | machine. With the current setup, there should be perceivable distortion on the |
116 | | |
117 | | streams, especially on the bigger one. |
118 | | |
119 | | |
120 | | |
121 | | Step 4) |
122 | | |
123 | | |
124 | | |
125 | | Log-into node3-2 with 'ssh root@node3-2' command. Execute 'pkill vlc' on the |
126 | | |
127 | | node to stop streaming of the video. After a few seconds, video should freeze on |
128 | | |
129 | | the corresponding VLC window on display machine. Stream can be restarted, if |
130 | | |
131 | | necessary, by executing 'sh execfile' on the node. |
132 | | |
133 | | |
134 | | |
135 | | Step 5) |
136 | | |
137 | | |
138 | | |
139 | | After stopping the stream on one pair, invoke monitor program on node3-8 (or |
140 | | |
141 | | node3-2), by executing 'lin/monitor2 ath1raw 3000 500'. Here, 3000 means that |
142 | | |
143 | | the link is supposed to support 3Mbps bandwidth, and 500 means that the |
144 | | |
145 | | application packet rate is 500 packets/sec. This command should run a process |
146 | | |
147 | | that updates /proc/pkt_rate periodically. After a few updates, re-invoke the |
148 | | |
149 | | streaming by executing 'sh execfile'. Streaming process should start, but |
150 | | |
151 | | pressing play button on the VLC software on display machine should not display |
152 | | |
153 | | the stream, since it is not accepted for routing on the wireless network. |
154 | | |
155 | | |
156 | | |
157 | | Step 6) |
158 | | |
159 | | |
160 | | |
161 | | Stop the monitor program, and manually enter 'echo 40X6000'>/proc/pkt_rate to |
162 | | |
163 | | tell the admission control algorithm that there is enough bandwidth for the |
164 | | |
165 | | video. Re-invoking the stream and trying to see it on display (as explained in |
166 | | |
167 | | Step5) should succeed this time. |
168 | | |
169 | | |
170 | | |
171 | | |
172 | | |
173 | | Troubleshooting |
174 | | |
175 | | |
176 | | |
177 | | If video is not visible on the display machine, check the following things to |
178 | | |
179 | | see what might have gone wrong by logging into a source and destination pair. |
180 | | |
181 | | |
182 | | |
183 | | - At the source and destination, do a 'ps aux'. There should be a group of vlc |
184 | | |
185 | | processes running (at least three or four). Run 'cat execfile' to check IP |
186 | | |
187 | | addresses for streaming client and server are produced correctly. If not, re-run |
188 | | |
189 | | the nodeHandler script to see if problem persists. |
190 | | |
191 | | |
192 | | |
193 | | - Make sure that video clip package is installed correctly by looking into |
194 | | |
195 | | /usr/streams directory. There should be MPEG files in that folder. If not, |
196 | | |
197 | | upload teststream_1.1-2_all.deb to source nodes and install it with |
198 | | |
199 | | 'dpkg -i teststream_1.1-2_all.deb' command. |
200 | | |
201 | | |
202 | | |
203 | | - Make sure that you can ping the destination node's lunar IP address |
204 | | |
205 | | (192.168.42.X) from the source node. If not, try restarting node, since lunar |
206 | | |
207 | | modules can not be reloaded in a healthy manner. |
208 | | |
209 | | |
210 | | |
211 | | - Make sure that display machine VLC client can connect to the stream |
212 | | |
213 | | destination node. Kill the destination vlc instance (at stream destination node) |
214 | | |
215 | | with 'pkill vlc' and invoke it the same way specified in execfile, without -d |
216 | | |
217 | | option. This will enable foreground mode and process should inform whenever |
218 | | |
219 | | display VLC client is connected to the destination node. |
| 90 | If video is not visible on the display machine, check the following things to see what might have gone wrong by logging into a source and destination pair. |
| 91 | * At the source and destination, do a {{{ps aux}}}. There should be a group of vlc processes running (at least three or four). Run {{{cat execfile}}} to check IP addresses for streaming client and server are produced correctly. If not, re-run the nodeHandler script to see if problem persists. |
| 92 | * Make sure that video clip package is installed correctly by looking into /usr/streams directory. There should be MPEG files in that folder. If not, upload teststream_1.1-2_all.deb to source nodes and install it with {{{dpkg -i teststream_1.1-2_all.deb}}} command. |
| 93 | * Make sure that you can ping the destination node's lunar IP address (192.168.42.X) from the source node. If not, try restarting node, since lunar modules can not be reloaded in a healthy manner. |
| 94 | * Make sure that display machine VLC client can connect to the stream destination node. Kill the destination vlc instance (at stream destination node) with {{{pkill vlc}}} and invoke it the same way specified in execfile, without -d option. This will enable foreground mode and process should inform whenever display VLC client is connected to the destination node. |