[329] | 1 | <html>
|
---|
| 2 | <head>
|
---|
| 3 | <title>py-tcpmultiplexer webcam server - Room 1</title>
|
---|
| 4 | <link href="css/style.css" type="text/css" rel="stylesheet"/>
|
---|
| 5 | <script type="text/javascript" src="js/jquery-1.6.2.min.js"></script>
|
---|
| 6 | <script type="text/javascript" src="js/jquery.jplayer.min.js"></script>
|
---|
| 7 | <script type="text/javascript">
|
---|
| 8 | function changeAudio(wav_uri)
|
---|
| 9 | {
|
---|
| 10 | $("#jplayer").jPlayer({
|
---|
| 11 | ready: function () {
|
---|
| 12 | $(this).jPlayer("stop");
|
---|
| 13 | $(this).jPlayer("setMedia", { wav: wav_uri }).jPlayer("play");
|
---|
| 14 | },
|
---|
| 15 | ended: function (event) {
|
---|
| 16 | $(this).jPlayer("play");
|
---|
| 17 | },
|
---|
| 18 | swfPath: "",
|
---|
| 19 | supplied: "wav"
|
---|
| 20 | });
|
---|
| 21 | }
|
---|
| 22 |
|
---|
| 23 | function changeVideo(mjeg_uri)
|
---|
| 24 | {
|
---|
| 25 | $("#player").attr("src",mjeg_uri);
|
---|
| 26 | $("#player").attr("alt","Video Feed: " + mjeg_uri);
|
---|
| 27 | }
|
---|
| 28 |
|
---|
| 29 | function flipImages()
|
---|
| 30 | {
|
---|
| 31 | player_uri = $("#player").attr("src");
|
---|
| 32 | screen_uri = $("#screen").attr("src");
|
---|
| 33 | $("#player").attr("src", screen_uri);
|
---|
| 34 | $("#screen").attr("src", player_uri);
|
---|
| 35 |
|
---|
| 36 | }
|
---|
| 37 |
|
---|
| 38 | $(document).ready(function(){
|
---|
| 39 | changeVideo('/cam7/video');
|
---|
| 40 | changeAudio('/cam7/audio');
|
---|
| 41 | });
|
---|
| 42 |
|
---|
| 43 | </script>
|
---|
| 44 |
|
---|
| 45 | </head>
|
---|
| 46 | <body>
|
---|
| 47 |
|
---|
| 48 | <!--
|
---|
| 49 | <h1>py-tcpmultiplexer webcam server - Room 1</h1>
|
---|
| 50 | <div>
|
---|
| 51 | <table>
|
---|
| 52 | <tr><td>Select WebCam:</td><td>
|
---|
| 53 | <input type="radio" name="cam" value="img/logo.png" checked="checked">None</input>
|
---|
| 54 | <input type="radio" name="cam" value="/cam1/video">RepRap</input>
|
---|
| 55 | <input type="radio" name="cam" value="/cam2/video">Room_A</input>
|
---|
| 56 | <input type="radio" name="cam" value="/cam3/video">Kitchen</input>
|
---|
| 57 | <input type="radio" name="cam" value="/cam4/video">Occ_telex</input>
|
---|
| 58 | <input type="radio" name="cam" value="/cam5/video">Rick_cam</input>
|
---|
| 59 | <input type="radio" name="cam" value="/cam6/video">Presentation</input>
|
---|
| 60 | <input type="radio" name="cam" value="/cam7/video">Mobile</input>
|
---|
| 61 | </td></tr>
|
---|
| 62 | <tr><td>Select Audio:</td><td>
|
---|
| 63 | <input type="radio" name="sound" value="none" checked="checked" >None</input>
|
---|
| 64 | <input type="radio" name="sound" value="/cam1/audio">Cam1</input>
|
---|
| 65 | <input type="radio" name="sound" value="/cam7/audio">Cam7</input>
|
---|
| 66 | </td></tr>
|
---|
| 67 | </table>
|
---|
| 68 |
|
---|
| 69 | <script type="text/javascript">
|
---|
| 70 | $("input[name='cam']").change(function () {
|
---|
| 71 | changeVideo($("input[name='cam']:checked").val());
|
---|
| 72 | });
|
---|
| 73 | $("input[name='sound']").change(function () {
|
---|
| 74 | changeAudio($("input[name='sound']:checked").val());
|
---|
| 75 | });
|
---|
| 76 | </script>
|
---|
| 77 |
|
---|
| 78 | -->
|
---|
| 79 |
|
---|
| 80 | <table border="2" width="100%">
|
---|
| 81 | <tr>
|
---|
| 82 | <td>
|
---|
| 83 | <img id="logo" src="http://wifisoft.org/svn/logo/WifiSoft_logo.jpg" width="50px"/>
|
---|
| 84 | <img id="player" width="200px" src="img/logo.png" alt="Video feeds" border="1"/><br />
|
---|
| 85 | <input type="button" OnClick="flipImages()" value="Switch view" />
|
---|
| 86 | </td>
|
---|
| 87 | <td rowspan="2">
|
---|
| 88 | <img id="screen" width="100%" src="/cam6/video" alt="Presentation" border="1"/>
|
---|
| 89 | </td>
|
---|
| 90 | </tr>
|
---|
| 91 | <tr>
|
---|
| 92 | <td>
|
---|
| 93 | <iframe src="http://webchat.freenode.net?randomnick=1&channels=occ&uio=d4" width="100%" height="400"></iframe>
|
---|
| 94 | </td>
|
---|
| 95 | </tr>
|
---|
| 96 | </table>
|
---|
| 97 | </div>
|
---|
| 98 |
|
---|
| 99 | <div id="jplayer" />
|
---|
| 100 |
|
---|
| 101 |
|
---|
| 102 | <!--
|
---|
| 103 |
|
---|
| 104 | <hr />
|
---|
| 105 | <p>Tested browsers: <a href="http://www.firefox.com">Mozilla Firefox</a>, <a href="http://www.google.com/chrome">Google Chrome</a> (<em>If no video appear below, you are using unsupported browser</em>)<br />
|
---|
| 106 | <small>Source Code at: <a href="http://rickvanderzwet.nl/svn/personal/py-tcpmultiplexer/">http://rickvanderzwet.nl/svn/personal/py-tcpmultiplexer/</a> build @ <a href="http://opencommunitycamp.org">#occ2011</a> - feedback/comments at <a href="irc://irc.freenode.net/#occ">#occ</a></small>
|
---|
| 107 |
|
---|
| 108 | <p />
|
---|
| 109 | Example stream creation from Webcam or Buildin Camera:
|
---|
| 110 | <table border="1">
|
---|
| 111 | <tr><td>Linux</td><td>:</td><td><tt>vlc -I http v4l:///dev/video0 --sout='#transcode{vcodec=MJPG}:standard{access=http{mime=multipart/x-mixed-replace;boundary=--7b3cc56e5f51db803f790dad720ed50a},mux=mpjpeg,dst=0.0.0.0:9000/webcam}}'</tt>
|
---|
| 112 | </td></tr>
|
---|
| 113 | <tr><td>Mac</td><td>:</td><td><tt>/Applications/VLC.app/Contents/MacOS/VLC qtcapture:// --sout='#transcode{vcodec=MJPG,vfilter=canvas{width=640,height=480}}:standard{access=http{mime=multipart/x-mixed-replace;boundary=--7b3cc56e5f51db803f790dad720ed50a},mux=mpjpeg,dst=0.0.0.0:9000/webcam}}'</tt>
|
---|
| 114 | </td></tr>
|
---|
| 115 | <tr><td>Windows</td><td>:</td><td><tt>???</tt></td></tr>
|
---|
| 116 | <tr><td>iPhone</td><td>:</td><td><tt>???</tt></td></tr>
|
---|
| 117 | <tr><td>Android</td><td>:</td><td><tt><a href="https://market.android.com/details?id=com.pas.webcam">IP Webcam</a></tt></td></tr>
|
---|
| 118 | </table>
|
---|
| 119 | -->
|
---|
| 120 |
|
---|
| 121 | </body>
|
---|
| 122 | </html>
|
---|