{"id":1396,"date":"2005-11-01T10:26:00","date_gmt":"2005-11-01T14:26:00","guid":{"rendered":"http:\/\/blog.uvm.edu\/waw\/2005\/11\/01\/re-please-try-this-2\/"},"modified":"2005-11-01T10:26:00","modified_gmt":"2005-11-01T14:26:00","slug":"re-please-try-this-2","status":"publish","type":"post","link":"https:\/\/blog.uvm.edu\/waw\/2005\/11\/01\/re-please-try-this-2\/","title":{"rendered":"SMIL : You&#8217;re on Davis WebCamera"},"content":{"rendered":"<p>It is the nature of most webcams that they capture and save to disk   still images as JPEG files. The basic problem: how do you display a   sequence of these JPEG stills successively to suggest to the viewer   live video rather than still imagery? The three most common methods:   <\/p>\n<ul>\n<li>native browser support of &quot;Motion JPEG&quot; MIME encapsulated multi-part   JPEG streams; <\/li>\n<li>Display of &quot;Motion JPEG&quot; using ActiveX technology; <\/li>\n<li>or   Display of &quot;Motion JPEG&quot; using Java technology.  <\/li>\n<\/ul>\n<p>Only &quot;Mozilla&quot; class browsers display  &quot;Motion JPEG&quot; natively. Java   VM is not pre-installed on Windows XP systems. Internet Explorer   supports ActiveX technology, but only if manually enabled by a user   with administrative rights.  <\/p>\n<p>Client has a Windows XP laptop. Client admits to having minimal IT skills and being easily frustrated by things that don&#8217;t work and he doesn&#8217;t understand. Somehow, Java VM was installed on his laptop (and the one in the conference room across the hall from his office). Client searched for examples of other schools and colleges who were   building things like the Davis Center and who had webcams.   Apparently, the ones he originally bookmarked as exemplary were using   Java, because they &quot;just worked&quot; on his laptop. Existing UVM examples   did not work and were considered sub-standard, because his Internet   Explorer security settings disallowed ActiveX. He also purchased some   network cameras that shipped with a Java applet solution, partly   because the examples on the vendors web site &quot;just worked.&quot;  <\/p>\n<p>After I changed his IE security settings, his exemplary list grew to   include ActiveX examples, but his graduate student assistant web   developer had difficulties making the UVM examples work &#8212; including   the ones I developed using his new cameras, both with ActiveX and   Java. The difficulty was the same: either Java was not installed or   the target machine&#8217;s IE setting were not or could not be set correctly.<\/p>\n<p>&nbsp;So, we needed another solution.  Some googling suggested scripting QuickTime Player with Synchronized   Multimedia Integration Language (SMIL, pronounced &quot;smile&quot;). I created   a SMIL file that essentially directed QuickTime to display a sequence   of JPEG images.  One hurdle was that the URL of the image never changes: the image to   display is replaced by a new model every few seconds via FTP upload   from the camera. So the URLs in the SMIL file had to be perturbed by   a random number to appear differently. Another hurdle was that   including more than about 10 or 20 images references in the same SMIL   file created unsatisfactory performance. This was solved by using a   QuickTime specific SMIL extension to reload a new SMIL file at the   completion of the first. The SMIL files are created dynamically (and   refreshed dynamically) by a PHP script; the QuickTime Plug-in is   invoked via HTML.  Of course, QuickTime, too, must be downloaded and installed before   this all works, but I submit that &#8212; especially in the age of the   iPod &#8212; QuickTime is more ubiquitous and less forbidding than Java,   and is unlikely to be as bburdensome upon the user.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>It is the nature of most webcams that they capture and save to disk still images as JPEG files. The basic problem: how do you display a sequence of these JPEG stills successively to suggest to the viewer live video &hellip; <a href=\"https:\/\/blog.uvm.edu\/waw\/2005\/11\/01\/re-please-try-this-2\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":7,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6517,141],"tags":[],"class_list":["post-1396","post","type-post","status-publish","format-standard","hentry","category-projects","category-video"],"_links":{"self":[{"href":"https:\/\/blog.uvm.edu\/waw\/wp-json\/wp\/v2\/posts\/1396","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.uvm.edu\/waw\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.uvm.edu\/waw\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.uvm.edu\/waw\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.uvm.edu\/waw\/wp-json\/wp\/v2\/comments?post=1396"}],"version-history":[{"count":0,"href":"https:\/\/blog.uvm.edu\/waw\/wp-json\/wp\/v2\/posts\/1396\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.uvm.edu\/waw\/wp-json\/wp\/v2\/media?parent=1396"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.uvm.edu\/waw\/wp-json\/wp\/v2\/categories?post=1396"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.uvm.edu\/waw\/wp-json\/wp\/v2\/tags?post=1396"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}