瀏覽器下載Jpeg跟顯示是很基本的功能,可是Server Side要如何把即時的影像源源不絕的傳給瀏覽器,瀏覽器基本上不靠Script是沒辦法跟Server端有互動的,所以第一種方式是利用javascript定時做img
motionjpeg.html
<img id="myjpeg" onload="my_reload()" src="myjpeg.cgi" />
<script type="text/javascript">
my_reload()
{
document.myjpeg.src=myjpeg.cgi;
}
</script>
myjpeg.cgi輸出的內容
Content-Type: image/jpeg\r\n
\r\n
JPEG檔案內容
第二種方式則是利用了類似Push的,讓Server傳送一個連續的資料給Client端,MIME的Content-Type中有一個特別的定義multipart/x-mixed-replace,當瀏覽器讀到這個類型時不會立即斷線,而會不斷的讀取資料,並且將新的Jpeg貼在原來的位置。但是每張Jpeg之間必須有間隔字串讓瀏覽器可以辨識,boundary就是定義分隔字串,只要是資料內不會出現的文字就可以了。
motionjpeg.html
<img src="myjpeg.cgi" />
myjpeg.cgi輸出的內容
Content-type: multipart/x-mixed-replace; boundary=xxx分隔字串xxx
xxx分隔字串xxx\r\n
Content-Type: image/jpeg\r\n
\r\n
Jpeg檔案內容
\r\n
xxx分隔字串xxx\r\n
Content-Type: image/jpeg\r\n
\r\n
Jpeg檔案內容
...
xxx分隔字串xxx\r\n
沒有留言:
張貼留言