2011-11-16 113 views
0

我創建了一個C#程序,它將屏幕捕獲爲Jpeg圖像並將其保存到文件中。然後使用HTML5的Canvas,我使用這段代碼拉入圖像並顯示它,每8毫秒更新一次,以使它看起來像一個視頻。可能使用JavaScript從C#流式傳輸圖像(視頻)?

<html> 
    <head> 
     <script type="application/javascript"> 
      function draw() { 
       var c=document.getElementById("myCanvas"); 
       var cxt=c.getContext("2d"); 
       var img=new Image(); 
       img.src="C://wamp/www/test.jpg?" + new Date().getTime(); 

       img.onload = function() { 
        cxt.drawImage(img, 0, 0); 
       }; 
      } 

      function start() { 
       setInterval("draw()",15); 
      } 
     </script> 
    </head> 
    <body onLoad="start()"> 
     <canvas id="myCanvas" width="1024" height="720"></canvas> 
    </body> 
</html> 

本地這樣做提供了良好的畫面(有些不連貫,但還是不錯的),但這樣做在互聯網上是沒有用的。有沒有辦法直接從C#程序流式傳輸圖像,而不是使用文件?它會更新足夠快,以獲得好的照片嗎?還是應該在C#程序中壓縮圖像?只是尋找如何使這項工作的任何指針。謝謝您的幫助! :)

回答

1

如果你能夠編寫該遞送方法,它應該不會比在你的應用程序:)

一個HTML5的視頻元素連接到一個端點更糟,但它可能會涉及轉換JPEG-圖像到飛行h264;)

+0

http://en.wikipedia.org/wiki/MJPEG#M-JPEG_over_HTTP –

+0

謝謝基督徒!看着它,雖然我不認爲M-JPEG會起作用,因爲我也想捕獲來自用戶的輸入。是否可以壓縮jpg圖像,然後解壓縮以便在畫布上顯示? –

+0

也許「壓縮」是錯誤的詞,因爲它們已經被壓縮了,對嗎?有什麼方法可以使它們在kb中變小? –